Jekyll多目录网站

时间:2014-03-03 22:31:27

标签: jekyll

我正在将我的网站转移到Jekyll,因为Wordpress太过臃肿,而且很容易用于简单的博客+投资组合。然后我面临一个问题,我无法解决文档(甚至是示例,因为它们非常简单)。

我希望网站的目标网页位于/(确定),目录/blog/上的博客和/blog/post-title/的帖子(好吧,我认为)和我的工作在/portfolio//portfolio/job-title/处有工作,但我无法创建最后一个目录。

我尝试在_jobs目录中创建portfolio目录,然后使用

循环遍历它
{% for job in site.jobs %}
  ...html...
{% endfor %}

由于博客示例使用相同的语法,但使用posts而不是jobs。我该怎么做才能访问这个portfolio/_jobs目录并循环浏览文件?

Jekyll文件夹的树如下:

.
├── blog
│   ├── index.html
│   └── _posts
│       ├── 2013-02-19-hello-world.markdown
│       └── 2014-03-01-welcome-to-jekyll.markdown
├── _config.yml
├── css
│   ├── main.css
│   └── syntax.css
├── _includes
│   ├── footer.html
│   ├── header.html
│   └── sidebar.html
├── _layouts
│   ├── default.html
│   ├── job.html
│   └── post.html
├── portfolio
│   ├── index.html
│   └── _jobs
│       └── jekyll-portfolio.markdown

1 个答案:

答案 0 :(得分:2)

Jekyll不像你的例子那样简单地支持这个,it is coming in 2.0 however

您可以将一个键/值对添加到子页面的YAML标题中,以表示它应该出现在主组合索引页面上。我有一个类似的设置,我用它来定义哪些页面应该出现在我的网站的主导航中。

投资组合页面的URL自定义只能通过使用每个子页面的YAML标题中的permalink设置来实现。

portfolio / jobs / jekyll-portfolio.markdown等

---
group: jobs
---

图集/ index.html中

<ul>
{% for node in site.pages %}
    {% if 'jobs' == node.group %}
    <li><a href="{{node.url}}">{{node.title}}</a></li>
    {% endif %}
{% endfor %}
</ul>

如果您更改if条件以对URL进行子字符串匹配,则可以避免要求group属性,但此解决方案更容易理解。