2014-08-31 20 views
9

我一直在玩Pandoc。Pandoc - 在生成之前插入頁面目錄

無論如何要在生成的目錄之前插入頁面嗎?

例如:

  • 扉頁
  • 插入自定義頁面001
  • 插入自定義頁面002
  • 內容

提前感謝(生成)表!

+3

是的,看看http://johnmacfarlane.net/pandoc/README.html#templates – mb21 2014-09-02 14:20:09

回答

7

對於這個答案,我會假設你正在生成降價,儘管這個過程對於其他文件格式也是一樣的。

關鍵的洞察力是Pandoc使用模板來確定最終放置。它具有默認模板,如果您修改它們,您可以更改部分的順序。

  1. 查找默認的模板

    > pandoc -D markdown 
    $if(titleblock)$ 
    $titleblock$ 
    
    $endif$ 
    $for(header-includes)$ 
    $header-includes$ 
    
    $endfor$ 
    $for(include-before)$ 
    $include-before$ 
    
    $endfor$ 
    $if(toc)$ 
    $toc$ 
    
    $endif$ 
    $body$ 
    $for(include-after)$ 
    
    $include-after$ 
    $endfor$ 
    

    您不需要這個下一步,但如果你很好奇這些文件住,要求廢話文件類型作品(雖然我」敢肯定有一個更好的方法):

    > pandoc -D nonsense 
    pandoc: Could not find data file /usr/local/.../templates/default.nonsense 
    
  2. 複製和修改默認模板

    > pandoc -D markdown > modified.markdown 
    

    使用你最喜歡的文本編輯器,你可以打開modified.markdown把$body$放在$toc$之前。

    $body$ 
    $if(toc)$ 
    $toc$ 
    $endif$ 
    
  3. 使用修改後的模板

    > pandoc --template modified.markdown <... rest of your command ...> 
    
+0

我不確定這是OP所要求的:他們希望在TOC之前添加一些自定義頁面,但不是整個主體,它應該仍然出現在後面。 – scoa 2016-10-04 19:55:16

+1

是的,這個答案並沒有真正考慮到在TOC之後身體仍然會**。我想在Markdown中創建一個應該在TOC之前出現的標題頁。這可能嗎? – 2016-12-08 12:21:38

1

我猜你想創建一個標題頁或頭信息的HTML文件。解決方案是在多個步驟中完成。

首先您將標題頁一起編譯爲任何其他頁面到一個html。 。

pandoc \ 01_HEADER.markdown -o了header.html

然後你包含了header.html身前:

pandoc -s -S -B --toc 。\ header.html。\ 02_Document.markdown -o complete_doc.html

完成。


的pandoc幫助各國它的可能性,使多部分文件可能,既-B和-H的工作,但我認爲-B是在我的情況更正確。

-H FILENAME   --include-in-header=FILENAME      
    -B FILENAME   --include-before-body=FILENAME     
    -A FILENAME   --include-after-body=FILENAME     

在我來說,我有一個樣式做並獲得一個完美的文檔:

pandoc -s -S -c .\res\github-pandoc.css .\01_HEADER.markdown -o header.html 
pandoc -s -S --toc --toc-depth=2 -c .\res\github-pandoc.css -B .\header.html .\02_Document.markdown -o complete_document.html