From: David G. <go...@py...> - 2004-10-21 13:51:54
|
[Felix Wiemann] > $ rst2pseudoxml.py --report=1 2> /dev/null > .. class:: fancy > > 2. foo > 3. bar > <document source="<stdin>"> > <system_message class="fancy" level="1" line="3" source="<stdin>" type="INFO"> > <paragraph> > Enumerated list start value not ordinal-1: "2" (ordinal 2) > <enumerated_list enumtype="arabic" prefix="" start="2" suffix="."> > <list_item> > <paragraph> > foo > <list_item> > <paragraph> > bar > > The class isn't applied to the enumerated list, because the list > issues an informational system message to which the class gets > applied. Interesting :-) This is a perfect example of how test-driven development shines. When we discover an edge case like that, we should add a test case to catch it. > Solution: > > The class directive function has to skip nodes which the class is > presumable not intended to be applied to, because they are > *auto-generated*. Alternative solution: Change all system messages so they occur *after* the element to which they refer. It's simpler, easier to implement, and makes the Docutils output more consistent. > Which are: system_directive, pending, Decorative, generated (and > some table things like colspec or tgroup). Most of those aren't relevant; that situation ("class" attribute applied via "class" directive) either couldn't happen, or wouldn't make sense in the source text. -- David Goodger <http://python.net/~goodger> |