Jekyll菜单的构建时间长

时间:2017-06-23 09:42:50

标签: optimization build menu jekyll

我目前在Jekyll有一个导航菜单,它运行良好,除了......它不能很好地扩展。 我有大约250个帖子,创建我的网站需要45秒,其中35个仅用于导航菜单!

导航菜单本身是基本的,列出所有帖子,按月分组,按月分组。 但是每次我创建一个新帖子时都会使用这个帖子,如果我使用增量构建,每个帖子只会有一个导航菜单到旧帖子,而不是我之后创建的新帖子。

所以这是我的问题:

  • 我可以在构建网站时捕获菜单,因此只创建一次菜单并在模板中使用我捕获的变量吗?

OR

  • 我可以创建一个html文件,我将包含在我的模板中,只是更新该文件会更新我的旧帖子'导航菜单?

我目前创建菜单的代码是:

{% assign curYear= site.time | date: '%Y' %}
{% assign curMonth= site.time | date: '%-m' | minus: 1 %}
{% assign months = "Janvier|Février|Mars|Avril|Mai|Juin|Juillet|Août|Septembre|Octobre|Novembre|Décembre" | split: "|" %}
<div class="l1">{{ curYear }}</div>
<div class="l2">{{ months[curMonth] }}</div>
{% for cpage in site.posts %}
{% assign postYear = cpage.date | date: "%Y" %}
{% assign postMonth = cpage.date | date: "%-m" | minus: 1 %}
{% if postYear != curYear %}
{% assign curYear= postYear %}
<div class="l1">{{ curYear }}</div>
{% endif %}
{% if postMonth != curMonth %}
{% assign curMonth= postMonth %}
<div class="l2">{{ months[curMonth] }}</div>
{% endif %}
{% if cpage.url == page.url %}
{% assign active= "class='active'" %}
{% else %}
{% assign active= "" %}
{% endif %}
<div class="l3">
<a href="{{ cpage.url | prepend: site.baseurl }}" {{active}} >{{ cpage.title }}</a>
</div>
{% endfor %}

最终呈现是包含月份的年份列表,其中包含博客帖子。 当我使用jekyll的--profile选项时,我有:

    Filename                                            | Count |     Bytes |   Time
    ----------------------------------------------------+-------+-----------+-------
    _layouts/blog.html                                  |   183 | 39809.20K | 38.175
    _includes/menu-left-blog.html                       |   183 | 37879.87K | 37.902

感谢任何帮助,

感谢您阅读:)

0 个答案:

没有答案