Jekyll集合子文件夹问题:合并多MD文件生成HTML时未渲染Markdown
解决Jekyll集合合并时Markdown未渲染问题
问题根源
在note布局中直接调用note_section的content属性时,Jekyll默认输出原始Markdown文本,不会自动渲染——只有单独生成note_section页面时,布局才会触发Markdown转HTML的处理流程。
解决方案
1. 使用markdownify过滤器处理内容
在你的note布局文件里,给section.content加上markdownify过滤器,强制转换Markdown为HTML:
{% for section in site.note_sections %} {% if section.path contains page.section_folder %} <div class="collapsible-section"> <h3>{{ section.title }}</h3> {{ section.content | markdownify }} </div> {% endif %} {% endfor %}
2. 检查note_section的Front Matter
确保_note_sections下的Markdown文件没有禁用渲染的配置,正确的Front Matter示例:
--- layout: note_section title: "Python基础语法" section_folder: "python-basics" ---
不要添加render: false这类会阻止渲染的字段。
3. 验证路径匹配逻辑
确认page.section_folder和section.path的匹配规则准确,比如子文件夹为_note_sections/python-basics/时,要保证只匹配该路径下的section文件,避免引入无关内容导致渲染异常。
4. 处理含Liquid标签的内容
如果note_section里包含Liquid标签(如{% ... %}),需要先通过liquify解析Liquid,再用markdownify转换:
{% capture raw_content %}{{ section.content }}{% endcapture %} {{ raw_content | liquify | markdownify }}
收尾步骤
运行jekyll clean清理缓存,再执行jekyll build重新生成站点,避免旧缓存导致的渲染问题。
内容的提问来源于stack exchange,提问作者AlgoManiac
相关产品推荐
相关产品推荐

