В выводе HTML, сгенерированном rst2html, разделы на всех уровнях имеют класс «section». Могу ли я его настроить? - PullRequest
2 голосов
/ 10 июля 2011

Извините за мой плохой английский, пожалуйста, дайте мне немного пациента. Спасибо!

Таким образом, если я хочу применить свой собственный CSS к выводу html, я просто не могу использовать разные стили для раздела и подраздела верхнего уровня, потому что они имеют одинаковое имя класса?

Как решить эту проблему, если я хочу применить разные стили к разделам на разных уровнях?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

Я решил эту проблему, написав свой собственный первый писательский класс Inheriting documentstils.writers.html4css1.Writer и в своем конструкторе назначил ему экземпляр класса HTMLTranslator Inheriting documentstils.writers.html4css1.HTMLTranslator к его атрибуту translationator_class.

В частности, в моем классе HTMLTranslator метод visit_section переопределяется ::

def visit_section(self, node):
    self.section_level += 1
    self.body.append(
        self.starttag(node, 'div', CLASS='section section%d' % self.section_level))

Таким образом, секция на уровне 2 получит класс section section2.

0 голосов
/ 19 июля 2011

Вы можете попробовать директиву class.Это специфическая для HTML директива, которая позволяет устанавливать произвольный класс для элементов, следующих за ней.Полное описание здесь: http://docutils.sourceforge.net/docs/ref/rst/directives.html#class

Вот пример:

Regular header
==============

.. class:: myclass

Section with a class myclass
****************************

Regular paragraph
...