如何在Eleventy Liquid模板中结合slugify过滤器生成绝对URL?
在Eleventy Liquid模板中生成带slug的绝对URL
要实现将书籍标题slugify后与路径拼接,再转为绝对URL,你需要用**append过滤器**完成字符串拼接,再链式调用其他过滤器,正确写法有两种:
写法一:链式过滤器直接输出
{{ '/books/' | append: book.title | slugify | url }}
执行顺序:
- 用
append把/books/和book.title拼接成完整路径字符串 - 对拼接后的字符串执行
slugify处理 - 最后用
url过滤器转为绝对URL
写法二:先赋值再输出(更易读)
{% assign book_full_path = '/books/' | append: book.title | slugify %} {{ book_full_path | url }}
先把拼接并slugify后的路径赋值给变量,再对变量使用url过滤器,适合路径逻辑更复杂的场景
你之前写法无效的原因
- 不能在
{{ }}输出标签里嵌套{% %}标签或另一个{{ }}标签,Liquid语法不支持这种嵌套 - 直接把
/books/和book.title连写会被识别为一个不存在的变量,而非字符串拼接
内容的提问来源于stack exchange,提问作者Chris Barr
相关产品推荐
相关产品推荐

