2008-08-20 8 views
25

Ich schreibe einige Dokumentation in Markdown, und erstellen Sie eine separate Datei für jeden Abschnitt des Dokuments. Ich möchte in der Lage sein, alle Dateien auf einmal in HTML zu konvertieren, aber ich kann niemanden finden, der dasselbe versucht hat. Ich bin auf einem Mac, also würde ich denken, dass ein einfaches Bash-Skript in der Lage sein sollte, damit umzugehen, aber ich habe noch nie etwas in bash gemacht und hatte kein Glück. Es scheint wie es sollte einfach sein, etwas zu schreiben, damit ich einfach ausführen konnte:Wie kann ich Markdown-Dokumente in HTML en masse konvertieren?

markdown-batch ./*.markdown 

Irgendwelche Ideen?

Antwort

17

Dies ist, wie Sie es in Bash tun würden.

for i in ./*.markdown; do perl markdown.pl --html4tags $i > $i.html; done; 

Natürlich benötigen Sie die Markdown script.

+7

Diese Lösung ist gut, aber 'index.md' wird zu 'index.md.html'. Wenn Sie lieber "index.html" werden möchten, verwenden Sie Folgendes: 'for i in ./*.md; do perl Markdown.pl --html4tags $ i> Ausgabe/$ {i%. *}. html; done; ' – Maxime

1

Ich benutze dies in einer BAT-Datei:

@echo off 
for %i in (*.txt) python markdown.py "%i" 
+6

Sie sind Wegthema: Diese Frage markiert 'bash'. –

36

Verwenden Sie pandoc - es ist ein Befehlszeilenprogramm, mit dem Sie von einem Format in ein anderes konvertieren können. Dieses Tool unterstützt Markdown zu HTML und zurück.

z. zu erzeugen HTML von Markdown, laufen:

pandoc -f markdown index.md > index.html 
+3

+1 für Pandoc ... da er es in Abschnitte schreibt, kann man mit pandoc die notwendigen Abschnitte in einer html-Datei zusammenfügen, falls nötig. – Mica

+0

'für i in /some/directory/*.md; tu pandoc -f markdown -t html -s "$ i"> "$ i" .html; done; 'Um alle Dateien in einem Ordner zu konvertieren. – eridani

-1

// mit Bash in mac

for i in *.md; do asciidoc $i; done; 
+0

Dies beantwortet die Frage nicht - die Frage fragt nach Markdown, nicht nach AsciiDoc (obwohl die beiden ähnlich sind). Außerdem müssen Sie den Wert "$ i" angeben, sonst funktioniert dies nicht für Dateien mit Sonderzeichen im Namen. – sleske