Jekyll中仅为textual分类文章引入disqus.html失效问题
排查Jekyll中Disqus模板条件判断不生效的问题
嘿,我来帮你搞定这个Disqus模板不显示的问题~ 咱们一步步排查可能的原因:
1. 最容易踩的坑:上下文变量用错了
如果这段代码是放在单篇文章的模板(比如post.html)里,那你用post.category就错啦!在单篇文章的页面中,当前文章的所有属性都是存在page变量里的,post变量是用来遍历站点所有文章时用的。
把条件判断改成这样试试:
{% if page.category == "textual" %} {% include disqus.html %} {% endif %}
2. 分类可能是数组形式存储的
很多人会在文章的front matter里用复数的categories(比如categories: [textual]或者多行列表),这时候page.category会是一个数组,直接用==判断字符串肯定匹配不上。这时候要用contains过滤器检查数组里是否包含目标分类:
{% if page.categories contains "textual" %} {% include disqus.html %} {% endif %}
另外要注意,如果你在front matter里写的是category: textual(单数),那一定要确认拼写是category而不是categories,Jekyll对变量名是严格区分的哦!
3. 核对文章的Front Matter设置
打开你标记为textual分类的文章,看看开头的Front Matter是不是正确设置的:
--- title: 你的文章标题 category: textual # 或者 categories: textual ---
别犯低级错误,比如把textual拼写成textuals,或者大小写写错(比如Textual),这些都会导致条件判断失效。
4. 试试清空Jekyll缓存
有时候Jekyll的缓存会让你的修改不生效,执行下面的命令清空缓存后重新构建:
jekyll clean && jekyll serve
按照上面的步骤排查,应该就能解决问题啦!
内容的提问来源于stack exchange,提问作者dawn
相关产品推荐
相关产品推荐

