2012-02-16 17 views
9

Primero, déjenme decir: me encanta el descuento. Verdaderamente me encanta. Es simple, es elegante, es sexy, es todo lo que deseo en un lenguaje de marcado. Si pudiera, lo propondría :)markdown a html usando un css especificado

Hasta ahora lo he estado usando de una manera muy agradable y simple, Vim + python-markdown = vista previa rápida en mi navegador de elección.

Pero, tiene un inconveniente ... la hoja de css está codificada en algún lugar dentro del complemento, y no puedo cambiarla. Nota: Conozco cero pitón, o algo muy parecido.

¿Hay una reducción del precio de plug-in formatos- -Varios que le permite especificar una página css a utilizar, por lo que podría tener varios y crear varias versiones de un mismo documento mediante el que yo deseo en ese momento?

Sería algo como

markdown my-document-in.markdown css-sheet.css cool-looking-document.html 
+1

+1 por amor al descuento. yo también. – mauris

+0

@thephpdeveloper - No, en serio, es una cosa realmente hermosa. Simple pero muy útil. Si tuviera soporte matemático (para ecuaciones) probablemente me lo propondría. – Rook

+0

@ldigas Ingrese kramdown. – Jonas

Respuesta

6

Usando https://github.com/trentm/python-markdown2/ (específicamente https://raw.github.com/trentm/python-markdown2/master/lib/markdown2.py), escribí un pequeño script que cuando se llama como generator.py input.markdown styles.css pretty.html (suponiendo que lo guardó como generator.py) utiliza la biblioteca de Python-markdown2 para convertir el marcado en HTML, incrusta el archivo css en la parte superior y lo escribe en pretty.html.

import markdown2 
import os, sys 


output = """<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="utf-8"> 
    <style type="text/css"> 
""" 

cssin = open(sys.argv[2]) 
output += cssin.read() 

output += """ 
    </style> 
</head> 

<body> 
""" 
mkin = open(sys.argv[1]) 
output += markdown2.markdown(mkin.read()) 

output += """</body> 

</html> 
""" 

outfile = open(sys.argv[3]) 
outfile.write(output) 
outfile.close()` 

Copie juntos el archivo vinculado de github y el código anterior en una carpeta y debería funcionar correctamente. Lo he probado localmente y funciona. Espero que pueda ayudarte también.

+3

Tenga en cuenta que dado que las cadenas son inmutables en python, usar '+ =' es algo horrible de hacer, en cuanto al rendimiento. Como de todos modos está abriendo el archivo, mejor simplemente escriba cada pieza por separado. –

Cuestiones relacionadas