2008-08-20 13 views
25

Estoy escribiendo algunos documentos en Markdown y creando un archivo separado para cada sección del documento. Me gustaría poder convertir todos los archivos a HTML de una vez, pero no puedo encontrar a nadie que haya probado lo mismo. Estoy en una Mac, así que creo que un simple script bash debería ser capaz de manejarlo, pero nunca he hecho nada en bash y no he tenido suerte. Parece que debería ser simple escribir algo para poder ejecutar:¿Cómo puedo convertir los documentos de Markdown a HTML en masa?

markdown-batch ./*.markdown 

¿Alguna idea?

Respuesta

17

Ésta es la forma en que lo haría en Bash.

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

Por supuesto, se necesita el Markdown script.

+7

Esta solución es buena, pero 'index.md' se convertirá en' index.md.html'. Si prefiere que se convierta en 'index.html', use esto:' for i in ./*.md; hacer perl Markdown.pl --html4tags $ i> output/$ {i%. *}. html; hecho; ' – Maxime

1

yo uso esto en un archivo .bat:

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

Usted es fuera de tema: esta pregunta se etiqueta 'bash'. –

36

Use pandoc - es una herramienta de línea de comandos que le permite convertir de un formato a otro. Esta herramienta es compatible con Markdown a HTML y viceversa.

E.g. para generar HTML a partir de rebajas, ejecuta:

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

+1 para pandoc ... ya que él lo está escribiendo en secciones, use pandoc para concatenar las secciones necesarias en un archivo html, si es necesario. – Mica

+0

'for i in /some/directory/*.md; hacer pandoc -f markdown -t html -s "$ i"> "$ i" .html; hecho; 'Convertir todos los archivos dentro de una carpeta. – eridani

-1

// usando Bash en mac

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

Esto no responde la pregunta: la pregunta se refiere a Markdown, no a AsciiDoc (aunque los dos son similares). Además, debe citar el '$ i'; de lo contrario, esto no funcionará para los archivos con caracteres especiales en el nombre. – sleske