2014-08-31 10 views
9

Ho giocato con Pandoc.Pandoc - Inserimento di pagine prima generato Indice

È comunque necessario inserire pagine prima del sommario generato?

Ad esempio:

  • Titolo Pagina
  • Inserire personalizzata pagina 001
  • Inserire personalizzata pagina 002
  • (Generated) Sommario

Molte grazie in anticipo!

+3

sì, date un'occhiata al http://johnmacfarlane.net/pandoc/README.html#templates – mb21

risposta

7

Per questa risposta, assumerò che stiate generando markdown, sebbene il processo sia lo stesso anche per altri formati di file.

L'intuizione chiave è che Pandoc utilizza i modelli per determinare il posizionamento finale. Dispone di modelli predefiniti e se li si modifica, è possibile modificare l'ordine delle sezioni.

  1. Trova il modello predefinito

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

    Non avrete bisogno di questo per il prossimo passo, ma se siete curiosi dove questi file vivere chiedendo un tipo di file senza senso lavori (anche se io' m che ci sia un modo migliore):

    > pandoc -D nonsense 
    pandoc: Could not find data file /usr/local/.../templates/default.nonsense 
    
  2. copiare e modificare il modello predefinito

    > pandoc -D markdown > modified.markdown 
    

    Utilizzando l'editor di testo preferito, è possibile aprire modified.markdown per inserire $body$ prima dello $toc$.

    $body$ 
    $if(toc)$ 
    $toc$ 
    $endif$ 
    
  3. Utilizzare il modello modificato

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

Non sono sicuro che questo sia ciò che l'OP sta chiedendo: vogliono aggiungere alcune pagine personalizzate prima del sommario, ma non l'intero corpo, che dovrebbe comunque apparire dopo. – scoa

+1

Sì, questa risposta non tiene conto del fatto che il corpo dovrebbe ancora venire ** dopo ** il sommario. Mi piacerebbe creare un frontespizio in Markdown che dovrebbe arrivare prima del sommario. È possibile? –

1

sto indovinando che si desidera creare un file HTML con Titolo pagina o informazioni di intestazione. La soluzione è farlo in più di un passaggio.

Prima di compilare la pagina del titolo insieme a qualsiasi altra pagina su un html. .

Pandoc \ 01_HEADER.markdown -o header.html

Poi si comprendono che header.html prima che il corpo:

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

Fatto.


L'aiuto Pandoc afferma che di possibilità per rendere possibile i documenti più parti, sia -B e il lavoro -H, ma penso -B è più corretto nel mio caso.

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

Nel mio caso lo faccio con un foglio di stile e ottenere un documento perfetto:

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 
Problemi correlati