2016-03-31 5 views
3

Ich habe angefangen, mit Inline-Fußnoten in Markdown:Haben pandoc Fußnoten am Ende der Seite oder Abschnitt in HTML?

Some text^[an aside here]. More text. 

Wenn ich pandoc verwenden exportieren sie am Ende des gesamten Dokuments erscheinen in HTML, sondern in PDF sie am Ende der Seite angezeigt. Ich bevorzuge sie am Ende der Seite, und ich frage mich, ob es eine Möglichkeit gibt, sie so in HTML zu bekommen?

Ich realisiere End-of-Page würde mit HTML kompliziert werden; Ende des Abschnitts würde genauso gut für mich funktionieren. In der Tat könnte es nützlich sein, sie am Ende des Abschnitts im PDF anstatt am Ende der Seite anzuordnen. (Ich habe versucht --- als Abschnitt Pause, aber die Fußnoten immer noch am Ende des Dokuments.)

(Ich habe auch versucht, die pdf, dann pdf2html, die Art von funktioniert, aber ist wirklich . hart an den Augen Pandoc scheint nicht pdf zu hTML zu unterstützen, erhalte ich "Can not Byte dekodieren '\ xd0' ...")


(Dies ist kein Duplikat: Generate inline rather than list-style footnotes in Pandoc Markdown output? Diese Frage ist über die Art und Weise, wie Fußnoten gehandhabt werden, wenn zu Abschriftenformat von einem anderen Format bewegt wird.)

+0

Mögliche Duplikate von [Inline-Fußnoten anstelle von Listenstil in der Pandoc Markdown-Ausgabe generieren?] (Http://stackoverflow.com/questions/33984689/generate-inline-rather-than-list-style-footnotes-in- pandoc-markdown-output) – Waylan

Antwort

0

Keine Ahnung, wie man das für eine (gedruckte) Seite macht (ich suche selbst), aber für Fußnoten nach Abschnitt, könnten Sie nicht einfach das Eingabedokument in die Abschnitte vor zerlegen, die Sie an Pandac übergeben, und dann die Teile wieder zusammenbauen?

z. Angenommen, Ihre Abschlags-Datei wie diese (myfile.md) aussieht:

Some text with a footnote.^[First note.] 
---- 
Some more text with a footnote.^[Second note.] 
---- 
And a third passage.^[Third note.] 

Dann nutzen Sie könnten beispielsweise die folgende PHP-Skript (obwohl ich bin sicher, dass es eine Million Möglichkeiten, dies zu tun), das heißt, pandoc-sections.php.

<?php 

$input_file = $argv[1]; 

if (!file_exists($input_file)) { 
    exit('File not found.'); 
} 

$chunks = preg_split('/\n-----*\n/',file_get_contents($input_file)); 

for ($i=0; $i<count($chunks); $i++) { 
    $chunk = $chunks[$i]; 
    $idprefix = "section" . ($i+1); 

    $descriptorspec = array(
     0 => array("pipe", "r"), // stdin 
     1 => array("pipe", "w"), // stdout 
     2 => array("pipe", "w") // stderr 
    ); 

    $pandoc_process = proc_open('pandoc --id-prefix=' . 
     $idprefix, $descriptorspec, $pipes); 

    if (is_resource($pandoc_process)) { 
     fwrite($pipes[0], $chunk); 
     fclose($pipes[0]); 
     echo stream_get_contents($pipes[1]); 
     fclose($pipes[1]); 
     fclose($pipes[2]); 
     proc_close($pandoc_process); 
    } 

}  

?> 

Dann

php pandoc-sections.php myfile.md

Und Sie erhalten laufen:

<p>Some text with a footnote.<a href="#section1fn1" class="footnote-ref" id="section1fnref1"><sup>1</sup></a></p> 
<section class="footnotes"> 
<hr /> 
<ol> 
<li id="section1fn1"><p>First note.<a href="#section1section1fnref1" class="footnote-back">↩</a></p></li> 
</ol> 
</section> 
<p>Some more text with a footnote.<a href="#section2fn1" class="footnote-ref" id="section2fnref1"><sup>1</sup></a></p> 
<section class="footnotes"> 
<hr /> 
<ol> 
<li id="section2fn1"><p>Second note.<a href="#section2section2fnref1" class="footnote-back">↩</a></p></li> 
</ol> 
</section> 
<p>And a third passage.<a href="#section3fn1" class="footnote-ref" id="section3fnref1"><sup>1</sup></a></p> 
<section class="footnotes"> 
<hr /> 
<ol> 
<li id="section3fn1"><p>Third note.<a href="#section3section3fnref1" class="footnote-back">↩</a></p></li> 
</ol> 
</section> 

nach Bedarf anpassen.

+0

Hey, ich habe gerade einen Fehler bei der Handhabung von Backlinks durch Pandoc entdeckt, wenn die Option "--id-prefix" verwendet wird. Ich werde einen Fehlerbericht einreichen. Sie reparieren sehr schnell Dinge. – frabjous