2012-07-03 63 views
1

我想使用Jekyll生成一些模板頁面,然後將使用Perl腳本使用HTML::TemplatePerl模塊。是否有可能讓Jekyll單獨留下HTML :: Template的標籤,並完全忽略它們?您可以將自定義html標籤添加到Jekyll嗎?

例如:

<tr>    <td>Name:    </td> <td><TMPL_VAR NAME=NAME> </td> </tr> 
<tr class="alt"> <td>Email:    </td> <td><TMPL_VAR NAME=EMAIL></td> </tr> 

我想要的網頁得到呈現爲與<TMPL_VAR NAME=...>位.html文件呆着,後來後端Perl腳本會利用這個文件作爲模板文件和將填寫<TMPL_VAR NAME=...>位的位置。

+0

你們能解釋一下爲什麼你們投下了這個問題嗎? – slm

回答

1

使用我從another question得知我問&在stackoverflow上回答,這些似乎是你的3個選項。其中一個@Alan W. Smith偶然發現了這個問題的答案。

選項#1: - HTML::Template有一個名爲vanguard_compatibility_mode ...從perldocs文檔

vanguard_compatibility_mode開關 - 如果設置爲1,模塊將希望看到s表示 樣子在%NAME%除標準語法外。還設置die_on_bad_params => 0 如果你不在Vanguard Media試圖使用舊的格式模板,不要擔心這一個 。默認爲0。

選項#2 - HTML::Template還支持註釋塊嵌入模板標籤,使你的代碼是HTML標準,就像這樣:<!-- TMPL_NAME NAME=FNAME -->

再次從perldocs文檔:

如果您對有效的HTML感興趣,並希望您的模板符合有效的 HTML語法,則可以選擇以HTML註釋的形式鍵入模板標籤。這個 可能對希望在HTML :: Template處理之前驗證其模板的HTML語法 或使用DTD精通編輯工具的HTML作者有用。

<!-- TMPL_VAR NAME=PARAM1 -->

這第二個選項沒有原來的我,直到我設置die_on_bad_params => 0的構造工作。

選項#3:.md(降價)更改Jekyll文件的名稱.html(香草HTML)。這個選項可以讓Jekyll使用ReXML作爲它的XML解析器。我不確定,但如果您從ReXML切換到Nokogiri,我認爲這也可以解決此問題,但我不完全確定您可以用這種方式重新配置Jekyll

結論:最後,我想選項#2是用最好的一個,因爲它不會限制您使用內Jekyll.md文件的能力。

2

您可以通過創建具有.html擴展名的源頁面來保留HTML(包括標準HTML和模板集)。當你這樣做時,jekyll(至少從0.11.2開始)不會混淆源HTML。您仍然可以使用YAML前置物品並放入液體標籤。例如,這可以作爲擴展名爲.html的源文件。

--- 
layout: default 
title: This is the post title 
categories: ["miscellaneous"] 
--- 

{{ page.title }} 

<table> 
<tr>    <td>Name: </td> <td><TMPL_VAR NAME=NAME> </td> </tr> 
<tr class="alt"> <td>Email: </td> <td><TMPL_VAR NAME=EMAIL></td> </tr> 
</table> 

從那裏,你可以傳遞給你的二級處理,完整的HTML :: Template標記。

相關問題