четверг, 10 июня 2010 г.

Sphinx и русский язык. Нюанс

Для тех, кто не в курсе: Sphinx - это система генерации документации на (и для) python.

Что бы добиться правильного русского текста в генерируемом html, нужно исходные rst-тексты оформлять в кодировке utf8 и не трогать настройки кодировки в conf.py. В частности не стоит раскоментировать строку source_encoding:

# The encoding of source files.
# source_encoding = 'utf8'
Раскоментирование этой строки дает неприятный нюанс: если файл начинается с utf-префикса, то символы utf-префикса (0xEF 0xBB 0xBF) будут считаться обычными символами, в результате чего sphinx начинает неправильно обрабатывать визуально вроде правильный синтаксис rts. Например, если в самом начале файла есть текст:
Заголовок
=========
то перед "Заголовок" присутствуют еще 3 символа (невидимых), в итоге sphinx ругается, что "Заголовок" короче, чем "=========".

Комментариев нет: