При использовании documenttils.core.publish_string вместо publish_cmdline аргумент `settings_overrides`, содержащий специфичные для HTML параметры, не действует! - PullRequest
2 голосов
/ 23 июля 2011

Ниже мой код

from docutils.core import publish_string
from docutils.writers.html4css1 import Writer as HisWriter

args = {
    'stylesheet' : '/home/wonder/lab/css/note.css',
    'stylesheet-path' : None,
}

src = 'ccav'
print publish_string(src, writer=HisWriter(), settings_overrides=args)

Я получил следующую ошибку:

AssertionError: stylesheet and stylesheet_path are mutually exclusive.

Итак, я изменяю args на:

args = {
    'stylesheet-path' : '/home/wonder/lab/css/note.css',
    'stylesheet' : None,
}

Сейчас, Нет ошибок.Но таблица стилей, вставленная в вывод HTML, не является содержимым /home/wonder/lab/css/note.css.Это по-прежнему /usr/local/lib/python2.7/dist-packages/docutils/writers/html4css1/html4css1.css.

То есть, в отличие от опций указания в командной строке при использовании publish_cmdline, аргумент settings_overrides, содержащий параметры, специфичные для HTML, не действует при использовании publish_string.

1 Ответ

2 голосов
/ 23 июля 2011
from docutils.core import publish_string
from docutils.writers.html4css1 import Writer as HisWriter

src = 'ccav'
args = {
    'stylesheet_path' : '/path/to/your/stylesheet'

}
print publish_string(src, writer=HisWriter(), settings=None, settings_overrides=args)

Вам нужно сделать settings = None и использовать stylesheet_path вместо stylesheet, чтобы игнорировать встроенную таблицу стилей.

Редактировать: Обратите внимание, что я нашел этот ответ в источникеодного из примеров сценариев, который поставляется с distutils, поэтому, хотя settings = None кажется плохим, это не так.

...