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問題,但我還沒有找到一個更好的方法來做到這一點。它分爲三部分。任何關於如何做得更好的建議也值得讚賞。 –
這是一個內容功能表!我會在今天晚上挖。 –