Могу ли я добавить «Smartypants» в реструктурированный текст? - PullRequest
5 голосов
/ 20 августа 2010

Я использую restructuredText, и мне нравится то, что smartypants делает для Markdown.Есть ли способ включить то же самое для restructuredText?

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

Вы пробовали smartypants.py ? Я не знаю, насколько хорошо он реализован, тем более, насколько хорошо он работает для ваших конкретных случаев использования, но, похоже, он точно нацелен на вашу цель, unicode-ification некоторых конструкций ascii (однако, он работает на HTML, поэтому я предполагаю, вы бы запустили его после restructuredText или любого другого компонента «производитель HTML»).

Если это не работает для вас, пользователь отправил патч на python-markdown2, который он называет «этим патчем SmartyPants» - он был принят и с месяца назад является частью текущее исходное дерево python-markdown2 ( r259 или лучше). Это может предложить более плавное плавание (например, если вы только что получили и построили python-markdown2 как «только для чтения» svn tree ). Или вы можете подождать следующего загружаемого релиза (с мая этого года не было, и этот патч был принят в середине июля), но кто знает, когда это произойдет.

1 голос
/ 22 августа 2010

Как говорит Алекс Мартелли, мне нужны 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
...