2012-02-16 14 views
9

In primo luogo, lasciami dire - I love markdown. Veramente lo adoro. È semplice, è elegante, è sexy, è tutto ciò che desidero in un linguaggio di markup. Se potessi, lo proporrei :)markdown in html utilizzando un css specificato

Finora l'ho usato in modo molto semplice e semplice, Vim + python-markdown = anteprima veloce nel mio browser di scelta.

Ma, ha uno svantaggio ... il foglio css è hardcoded da qualche parte all'interno del plugin, e non posso cambiarlo. Nota: conosco zero python, o qualcosa di molto vicino ad esso.

C'è una riduzione dei prezzi per -Vari plug formats- che permette di specificare una pagina CSS da usare, in modo che potessi avere diversi e creare diverse versioni dello stesso documento utilizzando quella che auguro a quel tempo?

Andrebbe qualcosa come

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

+1 per amare il ribasso. anch'io. – mauris

+0

@thephpdeveloper - No, sul serio, è una cosa davvero bella. Semplice ma così utile. Se avesse il supporto matematico (per le equazioni), probabilmente lo proporrei. – Rook

+0

@ldigas Immettere kramdown. – Jonas

risposta

6

Utilizzando https://github.com/trentm/python-markdown2/ (in particolare https://raw.github.com/trentm/python-markdown2/master/lib/markdown2.py), ho scritto un piccolo script che quando viene chiamato come generator.py input.markdown styles.css pretty.html (supponendo è stato salvato come generator.py) utilizza la libreria python-markdown2 per convertire il markdown in HTML, incorpora il file css in alto e lo scrive in 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()` 

Copia il file collegato da github e il codice sopra in una cartella e dovrebbe funzionare correttamente. L'ho provato localmente e funziona. Spero che possa aiutarti anche tu.

+3

Si noti che poiché le stringhe sono immutabili in python, usare '+ =' è una cosa orribile da fare, in termini di prestazioni. Dal momento che stai aprendo il file di output in ogni caso, è meglio scrivere solo ogni pezzo separatamente. –

Problemi correlati