Jekyll中Markdown链接语法失效求助(v3.7.2)
看起来你遇到的是Markdown语法完全不被解析的情况——不管是外部链接、Liquid驱动的内部链接还是{% link %}标签,都直接输出原始代码,没有转成可点击的链接。下面是几个最可能的原因和对应的解决办法:
检查Markdown渲染器配置
Jekyll 3.7.2默认用kramdown作为Markdown渲染器,如果你在_config.yml里修改过markdown选项(比如换成了redcarpet或其他工具),可能会导致解析异常。打开你的_config.yml,确保有这一行:markdown: kramdown保存后重启Jekyll服务,再测试链接效果。
确认页面布局没有阻止渲染
如果你的页面用了自定义布局,且布局里错误地用了{{ content | raw }}输出内容,raw过滤器会完全阻止Liquid和Markdown的解析,导致原始文本直接显示。检查布局文件(比如_layouts/default.html),确保输出内容的代码是{{ content }},没有额外的raw过滤器。检查文件扩展名
Jekyll只会自动解析.md或.markdown结尾的文件为Markdown内容。如果你的文件扩展名是.txt、.html(纯HTML文件不会解析Markdown)或者其他非标准后缀,Markdown语法自然不会被处理。把文件名改成.md再试。禁用安全模式运行Jekyll
如果你启动Jekyll时加了--safe参数,这个模式会禁用很多默认插件和渲染功能,包括Markdown的正常解析。试试不带--safe运行:jekyll serve或者
jekyll build,再查看生成的页面。清理缓存重新生成
Jekyll有时候会缓存旧的生成内容,导致修改后没有生效。手动删除项目根目录下的_site文件夹,然后重新运行jekyll serve或jekyll build,确保是完全重新生成的页面。测试最小化页面
新建一个简单的测试页面test.md,内容如下:--- layout: default --- External link test: [Google](https://google.com) Internal link test: [Sample Page]({{ site.baseurl }}/sample-page.html) Link tag test: [Collection Item]({{ site.baseurl }}{% link _my_collection/my-file.md %})访问这个测试页面,如果链接能正常渲染,说明问题出在你原来的页面内容上(比如有特殊字符、
{% raw %}标签包裹了链接等),可以逐步排查原页面的内容。
内容的提问来源于stack exchange,提问作者sareed

