使用指定的CSS将Markdown转换为HTML

13

首先,让我说一下 - 我喜欢Markdown。真的很喜欢它。它简单优雅,性感迷人,是我期望在标记语言中拥有的一切。如果可以的话,我会向它求婚 :)

到目前为止,我一直以非常好和简单的方式使用它,Vim + python-markdown = 在我选择的浏览器中快速预览。

但是,它有一个缺点...... css样式表在插件的某个地方被硬编码了,我无法更改它。注意:我不懂Python,或者说跟不上。

是否有一种Markdown转换为-各种格式-的插件,可以让您指定要使用的css页面,这样我就可以创建多个版本的同一文档并在需要时使用所需的版本?

大致应该是这样的

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

2
+1 爱用 Markdown。我也是。 - mauris
@thephpdeveloper - 不开玩笑,这真的是一件非常美妙的事情。简单而又非常有用。如果它有数学支持(用于方程式),我可能会向它求婚。 - Rook
@Jonas - 现在看来,文档中没有关于输入所选CSS样式表的任何内容。你能给几个提示吗? - Rook
@applicative - 你为什么删除了答案?我查看了Pandoc,确实是一个很棒的项目。 - Rook
我会将这个作为评论而不是答案添加,因为你可能会因为我的建议而讨厌我!跨平台编辑器“Sublime Text 2”通过名为“Markdown Preview”的插件具有此功能。 CSS位于插件文件夹中,很容易进行编辑。有趣的是,ST2是用Python编写的。 - Julian Knight
1个回答

7
使用 https://github.com/trentm/python-markdown2/(特别是https://raw.github.com/trentm/python-markdown2/master/lib/markdown2.py),我编写了一个小脚本,当调用 generator.py input.markdown styles.css pretty.html 时(假设您将其保存为 generator.py),它使用 python-markdown2 库将 markdown 转换为 HTML,将 css 文件嵌入到顶部并将其写入 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()`

将链接的文件从Github复制到一个文件夹中,再将上面的代码一起复制进去,应该就可以正常运行了。我已经在本地测试过了,可以正常工作。希望它也能帮助到你。

3
请注意,在Python中,由于字符串是不可变的,使用+=会严重影响性能。既然你已经打开了输出文件,最好还是分别写入每个片段。 - mic_e

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接