2011-06-05 145 views
0

我已經開始將一個簡單的網站遷移到Jekyll。我有一套模板可以讓所有的東西都繼承,所以我所要做的就是填充實際的內容。但是,在移動內容時,我發現其中的一些需要修改之前由模板指定的標籤。使用html模板的正確方法?

例如,我有一個'main'模板,它指定了一切,包括開頭的<body>標籤。我的一個網站的頁面使用了一些JavaScript來修改html5畫布,因此其開始標記必須是<body onload="startDrawing();">之類的內容。現在,擁有一個完全獨立的模板似乎很愚蠢,其中唯一的變化就是這個單一的標籤,但同樣愚蠢的是從模板中刪除該標籤,並且每個頁面都手動指定開始的<body>標籤。解決這個問題的正確方法是什麼?

回答

0

在需要特殊的onload命令的個人頁面,添加一行到YAML frontmatter:


--- 
... your existing frontmatter ... 
special_command: onload="startDrawing();" 
--- 

然後,在默認的模板,改變

<body>

<body {{ page.special_command }}>

在具有該YAML frontmatter的頁面上,它將呈現內容。在他們的frontmatter中沒有那個「special_command」行的頁面上,它不會呈現任何內容。您將在這些頁面上留下一個額外的空間,但仍然將W3規範作爲有效代碼傳遞(或者,至少當我通過代碼運行時,它通過了驗證器)。

+0

感謝您接受它。 對於未來的讀者來說,這很明顯,您不需要在那裏使用「special_command」作爲文本。你可以使用「custom_js」或「onload」或其他任何你喜歡的東西。 – charliepark 2011-07-01 11:07:56

0

我對Jekyll一無所知,但我傾向於爲包含畫布的頁面設置單獨的模板。這是一個特殊情況,除非Jekyll能夠用一些特殊的語法來解釋它,否則我覺得爲這種情況設置不同的模板會更加清晰。

相關問題