2014-08-31 22 views

Odpowiedz

7

Dla tej odpowiedzi, zakładam, że generujesz przecenę, chociaż proces jest taki sam dla innych formatów plików.

Kluczowym wnioskiem jest to, że Pandoc korzysta z szablonów w celu ustalenia ostatecznego miejsca docelowego. Ma domyślne szablony i jeśli je modyfikujesz, możesz zmienić kolejność sekcji.

  1. Znajdź Domyślny szablon

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

    nie trzeba będzie to w następnym etapie, ale jeśli jesteś ciekaw, gdzie żyją te pliki, prosząc o pracach plik typu nonsense (chociaż ja” m pewien, że istnieje lepszy sposób):

    > pandoc -D nonsense 
    pandoc: Could not find data file /usr/local/.../templates/default.nonsense 
    
  2. skopiować i zmodyfikować domyślny szablon

    > pandoc -D markdown > modified.markdown 
    

    Używając swojego ulubionego edytora tekstu, możesz otworzyć modified.markdown, aby umieścić $body$ przed $toc$.

    $body$ 
    $if(toc)$ 
    $toc$ 
    $endif$ 
    
  3. pomocą zmodyfikowanego szablonu

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

Nie jestem pewien, czego żąda OP: chcą dodać niestandardowe strony przed TOC, ale nie całe ciało, które powinno pojawić się później. – scoa

+1

Tak, ta odpowiedź nie bierze pod uwagę, że ciało powinno wciąż przychodzić ** po ** spisie treści. Chciałbym stworzyć stronę tytułową w Markdown, która powinna nadejść przed TOC. czy to możliwe? –

1

Domyślam chcesz utworzyć plik HTML z tytułem strony lub informacji nagłówka. Rozwiązaniem jest zrobienie tego w więcej niż jednym kroku.

Najpierw należy skompilować stronę tytułową razem z innymi stronami do jednego html. .

pandoc \ 01_HEADER.markdown -o header.html

Wtedy to że header.html przed ciała:

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

Gotowe.


Pomoc pandoc stwierdza, że ​​to możliwości, aby dokumenty wieloczęściowe możliwe, zarówno -B i -H pracy, ale myślę, -B jest bardziej poprawne w moim przypadku.

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

W moim przypadku to zrobić za pomocą arkusza stylów i uzyskać doskonały dokument:

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