markdown to html using a specified css
Question: First, let me say - I love markdown. Truly love it. It's simple, it's elegant,
it's sexy, it's everything I wish for in a markup language. If I could, I'd
propose to it :)

So far I've been using it in a very nice and simple way, Vim + [python-
markdown](http://www.freewisdom.org/projects/python-markdown/) = fast preview
in my browser of choice.

But, it has one drawback ... the css sheet is hardcoded somewhere inside the
plugin, and I can't change it. _Note: I know zero python, or something very
close to it._

**Is there a markdown to -various formats- plugin that lets you specify a css
page to use, so that I could have several and create several versions of the
same document using the one I wish at that time?**

It would go something like

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


Answer: Using <https://github.com/trentm/python-markdown2/> (specifically
<https://raw.github.com/trentm/python-markdown2/master/lib/markdown2.py>), I
wrote a small script which when called as `generator.py input.markdown
styles.css pretty.html` (assuming you saved it as generator.py) uses the
python-markdown2 library to convert the markdown to HTML, embeds the css file
in the top and writes it to 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()`
    

Copy the linked file from github and the code above into a folder together and
it should run fine. I've tested it locally and it works. Hope it can help you
too.

