mar*_*tin 5 jekyll github-pages
由于 Jekyll-Scholar 在 Github 页面上不可用,我正在尝试找到一种解决方法来拥有某种参考书目功能,使用 kramdown 脚注和包含。我想留在 Github Pages 工作流程中,而不是在本地编译网站。
我有一个包含所有参考文献的集合_data/biblio.yaml:
- authors: Me, Her and Him
title: A Serious Article
key: ref1
Run Code Online (Sandbox Code Playgroud)
在page1.md我有:
This is a sentence with a citation[^1]
[^1]:
{% include citation.html key="ref1" %}
Run Code Online (Sandbox Code Playgroud)
我有_includes/citation.html一个引用模板:
{% assign citation = site.data.biblio | where:"key", include.key | first %}
<span class="cit-authors">{{citation.authors}}</span>, <span class="cit-title">{{citation.title}}</span>
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为编译后引用会在脚注定义之前呈现,而不是在脚注定义内:
<p>
<span class="cit-authors">Me, Her and Him</span>, <span class="cit-title">A Serious Article</span>
</p>
<div class="footnotes">
<ol>
<li id="fn:1">
<p><a href="#fnref:1" class="reversefootnote">↩</a></p>
</li>
</ol>
</div>
Run Code Online (Sandbox Code Playgroud)
期望的结果显然是将包含的内容包含在<li>块内。
这不起作用有什么原因吗?有什么方法可以让它按预期工作吗?
在 中_includes/citation.html,您的分配语句引入了无用的换行符,这会破坏 kramdown 解析。
您可以删除 allocate 和 html 之间的换行符
{% assign citation = site.data.biblio | where:"key", include.key | first %}<span class="cit-authors">{{citation.authors}}</span>, <span class="cit-title">{{citation.title}}</span>
Run Code Online (Sandbox Code Playgroud)
或使用新的液体空白控件( {%- tag -%})
{%- assign citation = site.data.biblio | where:"key", include.key | first -%}
<span class="cit-authors">{{citation.authors}}</span>, <span class="cit-title">{{citation.title}}</span>
Run Code Online (Sandbox Code Playgroud)