我正在使用 Markdown 檔案創建一系列網頁(稱這種混亂的網站可能會令人不悅)。我使用通用模板以相似的外觀顯示每個頁面:它們都具有相同的頁眉、頁腳等。
我想添加一個導航選單,以便鏈接到其他頁面。我可以很容易地生成選單本身,我不知道如何將它插入到頁面中。
我嘗試的是以下內容:
options.yml(由 Python 腳本生成):
metadata:
title: My very excellent title
navigation: <a href="index.html">Home</a><a href="other.html">Other page</a>
standalone: true
template: template.html
template.html:
<!doctype HTML>
<title>$title$</title>
<header>Yeepee, header!</header>
<nav>$navigation$</nav>
<main>$body$</main>
<footer>Best footah evah</footer>
然后我運行腳本:(pandoc -d options.yml index.md -o index.html其他檔案也一樣,在 Python 腳本的回圈中)
結果是 my 的內容metadata.navigation在插入之前被轉義,導致類似于 的東西<a href="index.html">Home</a><a href="other.html">Other page</a>,這在實踐中確實很安全,但在那里對我沒有幫助。
我想要的是另一個模板,比如說navigation.html,它包含使用 pandoc 時要包含在我的主模板中的導航選單。
如果這不可能,我想使用與上述相同的技術,但使用“未轉義”navigation引數(我不喜歡它,因為它會給專案帶來重大的安全問題)。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
有兩種解決方案:
在默認檔案中使用
variables而不是。metadata變數被逐字插入,而元資料將被轉義。要在模板中插入檔案
navigation.html,請使用${navigation.html()}. Pandoc 使用doctemplates包作為模板,有關更多詳細資訊,請參閱“partials”上的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467081.html
上一篇:盡管編譯時間常數為static_assert,但專用模板*not*斷言
下一篇:C 在函式模板中傳遞函式指標
