2014-08-31 13 views
9

Tôi đã chơi đùa với Pandoc.Pandoc - Chèn trang trước khi tạo Mục lục

Có cách nào để chèn trang trước Mục lục được tạo không?

Ví dụ:

  • Tiêu đề Trang
  • Insert Custom Page 001
  • Insert Custom Page 002
  • (tạo) Table of Contents

Nhiều cảm ơn trước!

+3

vâng, có một cái nhìn tại http://johnmacfarlane.net/pandoc/README.html#templates – mb21

Trả lời

7

Đối với câu trả lời này, tôi sẽ giả sử bạn đang tạo ra markdown, mặc dù quá trình này là giống nhau cho các định dạng tệp khác.

Thông tin chi tiết chính là Pandoc sử dụng mẫu để xác định vị trí cuối cùng. Nó có các mẫu mặc định và nếu bạn sửa đổi chúng, bạn có thể thay đổi thứ tự các phần.

  1. Tìm template mặc định

    > 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$ 
    

    Bạn sẽ không cần điều này cho bước tiếp theo, nhưng nếu bạn tò mò nơi những tập tin này sống, yêu cầu cho một loại tập tin vô nghĩa công trình (mặc dù tôi m chắc chắn có một cách tốt hơn):

    > pandoc -D nonsense 
    pandoc: Could not find data file /usr/local/.../templates/default.nonsense 
    
  2. Sao chép và sửa đổi các mẫu mặc định

    > pandoc -D markdown > modified.markdown 
    

    Sử dụng trình chỉnh sửa văn bản yêu thích của bạn, bạn có thể mở modified.markdown để đặt $body$ trước số $toc$.

    $body$ 
    $if(toc)$ 
    $toc$ 
    $endif$ 
    
  3. Sử dụng các mẫu sửa đổi

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

Tôi không chắc chắn đây là những gì OP đang yêu cầu: họ muốn thêm một số trang tùy chỉnh trước TOC, nhưng không phải toàn bộ nội dung, mà vẫn sẽ xuất hiện sau đó. – scoa

+1

Có, câu trả lời này không thực sự đưa vào tài khoản rằng cơ thể vẫn nên đến ** sau ** TOC. Tôi muốn tạo một trang tiêu đề trong Markdown mà nên đến trước TOC. Điều này có thể không? –

1

Tôi đoán bạn muốn tạo một file HTML với Tiêu đề trang hoặc thông tin Header. Giải pháp là làm điều đó trong nhiều hơn một bước.

Trước tiên, bạn biên dịch Trang Tiêu đề cùng với bất kỳ trang nào khác thành một html. .

pandoc \ 01_HEADER.markdown -o header.html

Sau đó, bạn bao gồm mà header.html trước khi cơ thể:

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

Xong.


Trợ giúp pandoc khẳng định khả năng tạo nhiều tài liệu có thể, cả công việc B và -H, nhưng tôi nghĩ rằng -B chính xác hơn trong trường hợp của tôi.

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

Trong trường hợp của tôi, tôi làm điều đó với một kiểu và có được một tài liệu hoàn hảo:

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 
Các vấn đề liên quan