TL; DR:我可以说某种方式为{% include %}
生成一次内容,只需在多个位置生成内容,而无需在每个位置重新生成内容?Jekyll:生成包含一次并将其包含到所有页面
我正与Jekyll建立一个相当大的文档站点,它现在有50多篇文章。它有一个侧栏,列出所有文章。侧边栏内置在一个单独的sidebar.html中,然后将其包含在网站的每个页面中,其中default.html中的内容为{% include sidebar.html %}
。
我现在的问题是,每一篇文章都单独运行sidebar.html的代,所以我有超过50代的代码片段。我添加的每篇文章都增加了另一个传递,并使所有传递速度稍慢,因为生成侧边栏必须解析项目中的每篇文章。
生成时间已经从基本零增加到超过100秒了,如果我删除了{% include sidebar.html %}
,那么它会下降到5秒。当我得到所有的文章,我估计有大约100-200。那么我应该在未来对所有文章进行版本管理,这意味着从长远来看可以容易地有超过1000篇文章。在这一点上,如果在一个文件中更改一个字母需要一个小时来重新生成jekyll serve
和jekyll build
中的文件,我不会感到惊讶。
我想要做的是在构建过程的开始阶段构建一次sidebar.html,并在生成所述页面时将其戳出到每个页面。这可能吗?
生成50篇文章的内容表不需要很长时间。你可以展示你的代码吗? –
我把它放在pastebin:http://pastebin.com/KBKbQr4P。我在那里简单地解释了它为什么会这样做,并注意到已经存在的一些perfo问题,但我还没有找到一个更好的方法来做到这一点。它分为三部分。任何关于如何做得更好的建议也值得赞赏。 –
这是一个内容功能表!我会在今天晚上挖。 –