Jekyll集合获取原始文件片段异常:item.content返回处理后HTML而非原文本
解决Jekyll集合中获取原始文本而非处理后HTML的问题
嘿,我明白你为啥困惑了——Jekyll作为静态站点生成器,默认会自动处理集合里的文件内容(比如把Markdown转成HTML),所以item.content返回的是处理后的结果,而非原始文本。要直接输出文件的原始内容,其实只需要换个属性调用就行:
解决方案:使用raw_content属性
把你的模板代码改成这样:
--- layout: default --- {% for item in site.fragments %} {{ item.raw_content }} {% endfor %}
item.raw_content会直接返回对应集合文件里的原始未处理文本,不管你的文件是纯文本、Markdown还是其他格式,都不会经过Jekyll的解析转换,完全符合你想要直接拼接原始内容的需求。
补充说明:集合配置的小细节
你的_config.yml里的集合配置是有效的,不过也可以写成更灵活的键值对形式(如果不需要为每个fragment生成单独页面,建议加上output: false来优化构建速度):
collections: fragments: output: false
这个配置不会影响你获取原始内容,只是避免Jekyll为集合里的每个文件生成单独的HTML页面。
内容的提问来源于stack exchange,提问作者glopes
相关产品推荐
相关产品推荐

