2008-08-20 10 views
25

J'écris de la documentation dans Markdown et je crée un fichier séparé pour chaque section du document. Je voudrais être en mesure de convertir tous les fichiers en HTML en une seule fois, mais je ne peux pas trouver quelqu'un d'autre qui a essayé la même chose. Je suis sur un Mac, donc je pense qu'un simple script bash devrait être capable de le gérer, mais je n'ai jamais rien fait dans bash et n'ai pas eu de chance. Il semble qu'il devrait être simple d'écrire quelque chose pour que je puisse simplement exécuter:Comment convertir des documents Markdown en HTML en masse?

markdown-batch ./*.markdown 

Des idées?

Répondre

17

Voici comment vous le feriez dans Bash.

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

Bien sûr, vous avez besoin de Markdown script.

+7

Cette solution est bonne mais 'index.md' deviendra' index.md.html'. Si vous préférez que cela devienne 'index.html', utilisez ceci:' for i in ./*.md; fais perl Markdown.pl --html4tags $ i> sortie/$ {i%. *}. html; done; ' – Maxime

1

J'utilise ceci dans un fichier .bat:

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

Vous êtes hors sujet: cette question est étiqueté 'bash'. –

36

Utilisez pandoc - c'est un outil de ligne de commande qui vous permet de convertir d'un format à un autre. Cet outil prend en charge Markdown au format HTML et retour.

E.g. pour générer HTML à partir de Markdown, exécutez:

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

+1 pour pandoc ... puisqu'il l'écrit en sections, utilisez pandoc pour concaténer les sections nécessaires en un fichier html, si nécessaire. – Mica

+0

'pour i dans /some/directory/*.md; faire pandoc -f démarquer -t html -s "$ i"> "$ i" .html; done; 'Convertir tous les fichiers dans un dossier. – eridani

-1

// en utilisant Bash mac

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

Cela ne répond pas à la question - la question porte sur Markdown, pas sur AsciiDoc (même si les deux sont similaires). En outre, vous devez citer le '$ i', sinon cela ne fonctionnera pas pour les fichiers avec des caractères spéciaux dans le nom. – sleske

Questions connexes