首页 > 解决方案 > 使用 Jekyll 忽略 markdown 文件中的一行

问题描述

有没有办法忽略 Jekyll 引擎的降价文档中的文本行?

在主 README.md 上,我有一个指向我生成的页面 url ala 的链接, View the [Docs as a Website](https://gitpages.mycompany.com/myrepo/)该链接指向我们的企业版 github.io 页面,该页面由 Jekyll 提供支持,读取 /docs/ 文件夹。

出于显而易见的原因,我不想在页面站点上显示它,因为查看器已经在那里,如果用户继续点击它,它最终会陷入无限循环。

有没有办法让它显示在代码视图 readme.md 上,但不在渲染的 jekyll 版本上?

标签: jekyllgithub-enterprise

解决方案


解决方案 :

如果您希望 Jekyll 跳过处理行(甚至单个字符)到烘焙的 /_site/ 输出中,请使用 Liquid{% comment %}标签:

{% comment %} 

     Character or lines for Jekyll to skip.

{% endcomment %}


例子 :

之前:
没有 {% comment %} + HTML 渲染的代码

之后:
代码 w/ {% comment %} + HTML 渲染


解释 :

如果 markdown.md 页面Front Matter顶部有 Jekyll,那么 Jekyll 会将其处理为 markdown.html 页面(有关更多信息,请参阅 Jekyll 的文档)。

Jekyll 处理的页面可以包含 Liquid 代码(特别是Jekyll 的 Liquid 实现)。

Liquid 带有{% comment %}标签。它适用于 Jekyll。

来自 Liquid 的评论标签文档

评论

允许您将未渲染的代码留在 Liquid 模板中。不会打印打开和关闭注释块中的任何文本,也不会执行其中的任何 Liquid 代码。

如果 Jekyll 处理你的 markdown.md 页面,它将处理所有 Liquid 语句,并且会从输出文件中完全省略{% comment %}tag + {% endcomment %}tag + 以及介于两者之间的所有内容。

被标签包裹的文本{% comment %}不需要特别包含 Liquid,Jekyll 就可以排除它。输出页面中的所有内容都将被省略:例如 <html> 元素、其他代码、明文等。


注意事项:

如果你有不正确的 Liquid 语法,Jekyll 仍然会抛出一个错误,即使它在一个注释标签内。

以下会导致错误,并且 Jekyll 不会构建:

{% comment %} 

     Character or lines for Jekyll to skip.
     {% assign abc 

{% endcomment %}

为了防止这种情况,要么确保 (1) 注释标签内的所有代码都是有效的 Liquid,要么 (2) 通过将代码包装在标签内来防止 Jekyll 评估代码{% raw %}

{% comment %} 
     {% raw %}

     Character or lines for Jekyll to skip.
     {% assign abc 

     {% endraw %}
{% endcomment %}

然后评论中的所有内容都将成功地从 Jekyll 输出的 /_site/ 文件中排除。

有关更多信息,请参阅Liquid 的原始标签文档。


或者:

如果你只是想从站点的 GitHub 仓库链接
-> 到 Jekyll + GitHub Pages 生成的站点

  1. 登录
  2. https://github.com// user-or-org _repository-name
  3. 单击“编辑”按钮(在“克隆或下载”上方和“设置”下方)
  4. 在提示“此存储库的网站(可选)”的第二个文本字段中将 URL 添加到您的 GitHub Pages 网站,然后单击“保存”
  5. 从您的 README.md 中删除 URL

推荐阅读