我可以将“Smartypants”添加到restructuredText吗?

时间:2010-08-19 23:22:05

标签: python restructuredtext

我使用restructuredText,我喜欢smartypants为Markdown做的事情。有没有办法为restructuredText启用相同的东西?

2 个答案:

答案 0 :(得分:2)

你试过smartypants.py吗?我不知道它的实现有多好,更不用说它对你的特定用例的效果如何,但它似乎确实针对你的目标,一些ascii结构的unicode -ification(然而,它运行在HTML上,所以我猜你在 restructuredText或其他“HTML制作人”组件之后运行

如果这对您不起作用,则用户已向{python-markdown2}提交了patch,他称之为“此SmartyPants补丁” - 它已被接受,并且自一个月前以来它已成为当前的一部分python-markdown2的源树(r259或更好)。这可能会提供更顺畅的航行(例如,如果您只是将python-markdown2构建为只读svn tree)。或者,您可以等待下一个可下载的版本(自5月以来没有版本,并且该补丁在7月中旬被接受),但是谁知道什么时候会发生。

答案 1 :(得分:1)

Alex Martelli说,smartyPants是我需要的。但是,我正在寻找有关如何使用它的更详细的信息。所以这是一个Python脚本,它读取在第一个命令行参数中命名的文件,将其转换为HTML,使用Pygments为sourcecode,然后将其传递给smartypants进行美化。

#!/usr/bin/python
# EASY-INSTALL-SCRIPT: 'docutils==0.5','rst2html.py'
"""
A minimal front end to the Docutils Publisher, producing HTML.
"""

try:
    from ulif.rest import directives_plain
    from ulif.rest import roles_plain
    from ulif.rest import pygments_directive

    import locale
    locale.setlocale(locale.LC_ALL, '')
except:
  pass

from docutils.core import publish_doctree, publish_from_doctree
from smartypants import smartyPants
import sys


description = ('Personal docutils parser with extra features.')

doctree = publish_doctree(file(sys.argv[1]).read())
result = publish_from_doctree(doctree, writer_name='html')
result = smartyPants(result)
print result