jekyll中的author.name + URL问题

时间:2017-08-06 15:46:08

标签: jekyll liquid

我回到jekyll项目上工作。当我第一次开始这个项目时,我在这个页面上询问如何在jekyll帖子中提取作者姓名,并建议使用此代码:

   {{ site.data.authors[page.author].name }}

......工作得很好。现在我的目标是创建一个作者页面来显示作者信息。 我有一个authors.yml文件(在_data文件中),其项目结构如下:

john_doe:    
name: John Doe    
email: john@website.com

我使用了Jekyll指南,我的代码在authors.md页面中是这样的:

<ul>
    {% for author in site.data.authors %}
    <li>
        {{ author.name }}
    </li>
    {% endfor %}
</ul> 

我知道代码的第一部分是有用的,因为我有一个子弹点显示每个作者,即列表项。然而,列表项在没有作者姓名的情况下返回空(最终我想从yml中提取更多信息,但因为我无法完成第一步......)

我尝试切换到这种结构,但没有成功:

   - name : john_doe 
   - email: john@email.com

第二个问题:我还使用navigation.yml文件设置了额外页面的链接,链接的排序如下:

- title: A propos
  url: /about/
  excerpt: ""

这些网址在本地工作得很好,但是在把它推到回购后没有这么好运......

如果有人有任何想法......我被卡住了! 我的回购:https://github.com/piapandelakis/piapandelakis.github.io

1 个答案:

答案 0 :(得分:1)

使用以下内容创建数据文件_data/authors.yml

john_doe:    
  name: John Doe    
  email: john@website.com
rms:
  name: Richard Stallman
  email: rms@gnu.org

除了能够遍历所有作者之外,这种结构还有一个好处,你可以随时随地访问它们中的任何一个。

在作者rms的帖子中,您可以显示其信息:

---
author: rms
---

{% assign author = site.data.authors[page.author] %}
<div> Author: {{ author.name }}
</div>

显示所有作者的列表:

{% for author in site.data.authors %}
{{author[1].name}} <br>
{% endfor %}