Github 页面上的 Jekyll:如何在脚注中包含外部内容?

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">&#8617;</a></p>
    </li>
  </ol>
</div>
Run Code Online (Sandbox Code Playgroud)

期望的结果显然是将包含的内容包含在<li>块内。

这不起作用有什么原因吗?有什么方法可以让它按预期工作吗?

Dav*_*uel 3

在 中_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)