2015-05-29 16 views
0

我正在使用PanDoc將大量markdown(.md)文件轉換爲html。我正在使用以下Windows命令行:PanDoc:如何爲html標題標記的內容分配一級Atx樣式標題(markdown)

for %%i in (*.md) do pandoc -f markdown -s %%~ni.md > html/%%~ni.html 

在測試運行中,html看起來很好,除了標題標記 - 它是空的。這裏是.MD文件的開頭的例子:

#Topic Title 
- [Anchor 1](#anchor1) 
- [Anchor 2](#anchor2) 
<a name="anchor1"></a> 
## Anchor 1 

有沒有一種方法,我可以告訴PanDoc解析

#Topic Title 

,這樣,在HTML輸出文件,我會得到:

<title>Topic Title</title> 

還有其他我想解析的.md標籤,我認爲解決這個問題將幫助我解決其餘的問題。

回答

1

我不相信Pandoc支持這個開箱即用的。 Pandoc documentation的相關部分聲明:

模板可能包含變量。變量名稱是以字母開頭的字母數字序列,-_。由$標誌包圍的變量名稱將被替換爲其值。例如,字符串$title$

<title>$title$</title> 

將被替換爲文檔標題。

它接着說:

一些變量是由pandoc自動設置。這些稍微變化取決於輸出格式,但是包括元數據字段(例如標題,作者,和日期),以及執行以下操作:

並且進行以列出一組變量(其中沒有一個是相關的你的問題)。但是,以上報價表明title變量是一個元數據字段。元數據字段可以在pandoc_title_blockyaml_metadata_block中定義,或作爲command line option傳入。

的文檔注意:

...你也可以保存在單獨的YAML文件的元數據,並把它傳遞給pandoc作爲參數,用你的降價文件一起...

所以,你有幾個選擇:

  1. 編輯每個文檔添加元數據定義每個文檔的標題(這也可能會被腳本)。
  2. 編寫腳本來提取標題(可能是在第一行尋找#header的正則表達式)並將其作爲命令行選項傳遞給Pandoc。

如果您打算開始在您創建的新文檔中包含元數據,那麼第一個選項可能就是要走的路。運行腳本一次批量編輯文檔,然後完成。但是,如果您無意爲任何文檔添加元數據,我會考慮第二種選擇。你已經在運行一個循環,所以只需在你的循環中調用Pandoc之前獲得標題(雖然我不知道如何在Windows腳本中做到這一點)。

+0

感謝您的回覆。我花了很多時間閱讀文檔,我擔心我會得到這個確切的答案,但希望有一個「技巧」,我錯過了。 –