我在html文件中使用以下液体标签逻辑。
{% assign custom_share = true %}
{% for p in site.pages_list %}{% if page.url == p[1] %}
{% assign custom_share = false %}
{% endif %}{% endfor %}
{% if custom_share %}
This page is not in the list.
{% endif %}
我的jekyll _config.yml
有一个像这样的变量pages_list
pages_list:
About: '/about'
Archive: '/archive'
Feed: '/atom.xml'
Email: '/subscribe-via-email'
当我jekyll serve
这些液体标签正常工作时,它似乎无法在github页面上运行。谁知道为什么?
答案 0 :(得分:1)
访问您的网页列表可以使用site.pages_list
,而不是site.github.pages_list
变量。
site.github
仅包含github pages上提供的元数据。
请注意,可以在github-metadata gem的帮助下在本地访问这些元数据。
另一个原因可能是您在Github页面上使用当前版本的jekyll不支持的extensionless url see dependencies version here)
答案 1 :(得分:0)
问题在于Github Pages如何处理链接。
page.url
在本地生成/about
或/archive
等值,但在Github Pages上,它会生成/about.html
或/archive.html
等值,即使浏览器显示的是{{site.url}}/about
而非{{site.url}}/about.html
等链接。
修复使用过滤器。像这样的东西:
{% assign custom_share = true %}
{% assign link = page.url | remove: ".html" %}
{% for p in site.pages_list %}{% if link == p[1] %}
{% assign custom_share = false %}
{% endif %}{% endfor %}
{% if custom_share %}
This page is not in the list.
{% endif %}