diff options
Diffstat (limited to 'docutils')
| -rw-r--r-- | docutils/HISTORY.txt | 12 | ||||
| -rw-r--r-- | docutils/RELEASE-NOTES.txt | 7 | ||||
| -rw-r--r-- | docutils/docutils/writers/_html_base.py | 100 | ||||
| -rw-r--r-- | docutils/docutils/writers/html4css1/__init__.py | 16 | ||||
| -rw-r--r-- | docutils/docutils/writers/html5_polyglot/__init__.py | 12 | ||||
| -rw-r--r-- | docutils/docutils/writers/latex2e/__init__.py | 18 | ||||
| -rw-r--r-- | docutils/test/functional/expected/standalone_rst_html5.html | 70 |
7 files changed, 120 insertions, 115 deletions
diff --git a/docutils/HISTORY.txt b/docutils/HISTORY.txt index 746279381..470b319f2 100644 --- a/docutils/HISTORY.txt +++ b/docutils/HISTORY.txt @@ -25,7 +25,7 @@ Changes Since 0.17.1 "meta" nodes if they are not supported by the output format. __ docs/ref/doctree.html#meta - + - document.make_id(): Keep leading number and hyphen characters from `name` if the id_prefix setting is non-empty. @@ -62,11 +62,19 @@ Changes Since 0.17.1 they are present also without CSS and when copying text. Adapt ``minimal.css``. + - Use semantic tag <aside> for footnote text and citations. + + - Do not add "compound-first", "compound-middle", or "compound-last" to + elements nested in a compound (no change with `html4css1`). + + - Removed attribute ``HTMLTranslator.topic_classes`` + + * docutils/writers/latex2e/__init__.py - The setting `legacy_class_functions`_ now defaults to "False". Adapt stylesheets modifying ``\DUadmonition`` and/or ``\DUtitle``. - + - Apply patch #181 "Fix tocdepth when chapter/part in use" by John Thorvald Wodder II. diff --git a/docutils/RELEASE-NOTES.txt b/docutils/RELEASE-NOTES.txt index 41568b880..be0cfa782 100644 --- a/docutils/RELEASE-NOTES.txt +++ b/docutils/RELEASE-NOTES.txt @@ -85,6 +85,10 @@ Release 0.18.dev Use semantic tag <aside> for footnote text and citations. + Do not add "compound-first", "compound-middle", or "compound-last" to + elements nested in a compound. Use child selector and "first-child", + "last-child" pseudo classes instead. + LaTeX: `legacy_class_functions`_ setting default changed to "False", admonitions are now environments. @@ -100,6 +104,9 @@ Release 0.18.dev * Removed function: ``utils.unique_combinations`` (obsoleted by ``itertools.combinations``). +* Removed attribute: ``HTMLTranslator.topic_classes`` + (check node.parent.classes instead). + * Various bugfixes and improvements (see HISTORY_). __ docs/ref/doctree.html#meta diff --git a/docutils/docutils/writers/_html_base.py b/docutils/docutils/writers/_html_base.py index 842f9695d..0d4a19c19 100644 --- a/docutils/docutils/writers/_html_base.py +++ b/docutils/docutils/writers/_html_base.py @@ -328,7 +328,6 @@ class HTMLTranslator(nodes.NodeVisitor): Used by visit_* and depart_* functions in conjunction with the tree traversal. Make sure that the pops correspond to the pushes.""" - self.topic_classes = [] self.colspecs = [] self.compact_p = True self.compact_simple = False @@ -521,8 +520,7 @@ class HTMLTranslator(nodes.NodeVisitor): self.depart_docinfo_item() def visit_admonition(self, node): - node['classes'].insert(0, 'admonition') - self.body.append(self.starttag(node, 'div')) + self.body.append(self.starttag(node, 'div', classes=['admonition'])) def depart_admonition(self, node=None): self.body.append('</div>\n') @@ -596,8 +594,7 @@ class HTMLTranslator(nodes.NodeVisitor): and not self.settings.compact_lists): return False # Table of Contents: - if (self.topic_classes == ['contents']): - # TODO: look in parent nodes, remove self.topic_classes? + if 'contents' in node.parent['classes']: return True # check the list items: return self.check_simple_list(node) @@ -683,11 +680,6 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_compound(self, node): self.body.append(self.starttag(node, 'div', CLASS='compound')) - if len(node) > 1: - node[0]['classes'].append('compound-first') - node[-1]['classes'].append('compound-last') - for child in node[1:-1]: - child['classes'].append('compound-middle') def depart_compound(self, node): self.body.append('</div>\n') @@ -730,21 +722,14 @@ class HTMLTranslator(nodes.NodeVisitor): self.body.append('</dd>\n') def visit_definition_list(self, node): - if self.is_compactable(node): - node.setdefault('classes', []).append('simple') - self.body.append(self.starttag(node, 'dl')) + classes = ['simple'] if self.is_compactable(node) else [] + self.body.append(self.starttag(node, 'dl', classes=classes)) def depart_definition_list(self, node): self.body.append('</dl>\n') def visit_definition_list_item(self, node): - # pass class arguments, ids and names to definition term: - node.children[0]['classes'] = ( - node.get('classes', []) + node.children[0].get('classes', [])) - node.children[0]['ids'] = ( - node.get('ids', []) + node.children[0].get('ids', [])) - node.children[0]['names'] = ( - node.get('names', []) + node.children[0].get('names', [])) + pass def depart_definition_list_item(self, node): pass @@ -757,10 +742,10 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_docinfo(self, node): self.context.append(len(self.body)) - classes = 'docinfo' + classes = ['docinfo'] if (self.is_compactable(node)): - classes += ' simple' - self.body.append(self.starttag(node, 'dl', CLASS=classes)) + classes.append('simple') + self.body.append(self.starttag(node, 'dl', classes=classes)) def depart_docinfo(self, node): self.body.append('</dl>\n') @@ -783,7 +768,7 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_doctest_block(self, node): self.body.append(self.starttag(node, 'pre', suffix='', - CLASS='code python doctest')) + classes=['code', 'python', 'doctest'])) def depart_doctest_block(self, node): self.body.append('\n</pre>\n') @@ -825,18 +810,16 @@ class HTMLTranslator(nodes.NodeVisitor): self.body.append('</em>') def visit_entry(self, node): - atts = {'class': []} + atts = {'classes': []} if isinstance(node.parent.parent, nodes.thead): - atts['class'].append('head') + atts['classes'].append('head') if node.parent.parent.parent.stubs[node.parent.column]: # "stubs" list is an attribute of the tgroup element - atts['class'].append('stub') - if atts['class']: + atts['classes'].append('stub') + if atts['classes']: tagname = 'th' - atts['class'] = ' '.join(atts['class']) else: tagname = 'td' - del atts['class'] node.parent.column += 1 if 'morerows' in node: atts['rowspan'] = node['morerows'] + 1 @@ -845,21 +828,18 @@ class HTMLTranslator(nodes.NodeVisitor): node.parent.column += node['morecols'] self.body.append(self.starttag(node, tagname, '', **atts)) self.context.append('</%s>\n' % tagname.lower()) - # TODO: why does the html4css1 writer insert an NBSP into empty cells? - # if len(node) == 0: # empty cell - # self.body.append(' ') # no-break space def depart_entry(self, node): self.body.append(self.context.pop()) def visit_enumerated_list(self, node): - atts = {} + atts = {'classes': []} if 'start' in node: atts['start'] = node['start'] if 'enumtype' in node: - atts['class'] = node['enumtype'] + atts['classes'].append(node['enumtype']) if self.is_compactable(node): - atts['class'] = (atts.get('class', '') + ' simple').strip() + atts['classes'].append('simple') self.body.append(self.starttag(node, 'ol', **atts)) def depart_enumerated_list(self, node): @@ -893,17 +873,16 @@ class HTMLTranslator(nodes.NodeVisitor): pass # as field is ignored, pass class arguments to field-name and field-body: - def visit_field_name(self, node): self.body.append(self.starttag(node, 'dt', '', - CLASS=''.join(node.parent['classes']))) + classes=node.parent['classes'])) def depart_field_name(self, node): self.body.append('<span class="colon">:</span></dt>\n') def visit_field_body(self, node): self.body.append(self.starttag(node, 'dd', '', - CLASS=''.join(node.parent['classes']))) + classes=node.parent['classes'])) # prevent misalignment of following content if the field is empty: if not node.children: self.body.append('<p></p>') @@ -949,9 +928,9 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_footnote_reference(self, node): href = '#' + node['refid'] - classes = 'footnote-reference ' + self.settings.footnote_references + classes = ['footnote-reference', self.settings.footnote_references] self.body.append(self.starttag(node, 'a', suffix='', - CLASS=classes, href=href)) + classes=classes, href=href)) self.body.append('<span class="fn-bracket">[</span>') def depart_footnote_reference(self, node): @@ -1130,7 +1109,7 @@ class HTMLTranslator(nodes.NodeVisitor): # inline literal def visit_literal(self, node): # special case: "code" role - classes = node.get('classes', []) + classes = node['classes'] if 'code' in classes: # filter 'code' from class arguments classes.pop(classes.index('code')) @@ -1158,11 +1137,11 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_literal_block(self, node): self.body.append(self.starttag(node, 'pre', '', CLASS='literal-block')) - if 'code' in node.get('classes', []): + if 'code' in node['classes']: self.body.append('<code>') def depart_literal_block(self, node): - if 'code' in node.get('classes', []): + if 'code' in node['classes']: self.body.append('</code>') self.body.append('</pre>\n') @@ -1388,12 +1367,15 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_raw(self, node): if 'html' in node.get('format', '').split(): - t = isinstance(node.parent, nodes.TextElement) and 'span' or 'div' + if isinstance(node.parent, nodes.TextElement): + tagname = 'span' + else: + tagname = 'div' if node['classes']: - self.body.append(self.starttag(node, t, suffix='')) + self.body.append(self.starttag(node, tagname, suffix='')) self.body.append(node.astext()) if node['classes']: - self.body.append('</%s>' % t) + self.body.append('</%s>' % tagname) # Keep non-HTML raw text out of output: raise nodes.SkipNode @@ -1490,16 +1472,16 @@ class HTMLTranslator(nodes.NodeVisitor): # h1–h6 elements must not be used to markup subheadings, subtitles, # alternative titles and taglines unless intended to be the heading for a # new section or subsection. - # -- http://www.w3.org/TR/html/sections.html#headings-and-sections + # -- http://www.w3.org/TR/html51/sections.html#headings-and-sections def visit_subtitle(self, node): if isinstance(node.parent, nodes.sidebar): - classes = 'sidebar-subtitle' + classes = ['sidebar-subtitle'] elif isinstance(node.parent, nodes.document): - classes = 'subtitle' + classes = ['subtitle'] self.in_document_title = len(self.body)+1 elif isinstance(node.parent, nodes.section): - classes = 'section-subtitle' - self.body.append(self.starttag(node, 'p', '', CLASS=classes)) + classes = ['section-subtitle'] + self.body.append(self.starttag(node, 'p', '', classes=classes)) def depart_subtitle(self, node): self.body.append('</p>\n') @@ -1546,12 +1528,9 @@ class HTMLTranslator(nodes.NodeVisitor): self.body.append('</div>\n') def visit_table(self, node): - atts = {} - classes = node.setdefault('classes', []) - classes += [cls.strip(u' \t\n') - for cls in self.settings.table_style.split(',')] + atts = {'classes': self.settings.table_style.replace(',', ' ').split()} if 'align' in node: - classes.append('align-%s' % node['align']) + atts['classes'].append('align-%s' % node['align']) if 'width' in node: atts['style'] = 'width: %s;' % node['width'] tag = self.starttag(node, 'table', **atts) @@ -1579,7 +1558,10 @@ class HTMLTranslator(nodes.NodeVisitor): self.body.append('</tbody>\n') def visit_term(self, node): - self.body.append(self.starttag(node, 'dt', '')) + # The parent node (definition_list_item) is omitted in HTML. + self.body.append(self.starttag(node, 'dt', '', + classes=node.parent['classes'], + ids=node.parent['ids'])) def depart_term(self, node): # Leave the end tag to `self.visit_definition()`, @@ -1660,11 +1642,9 @@ class HTMLTranslator(nodes.NodeVisitor): def visit_topic(self, node): self.body.append(self.starttag(node, 'div', CLASS='topic')) - self.topic_classes = node['classes'] def depart_topic(self, node): self.body.append('</div>\n') - self.topic_classes = [] def visit_transition(self, node): self.body.append(self.emptytag(node, 'hr', CLASS='docutils')) diff --git a/docutils/docutils/writers/html4css1/__init__.py b/docutils/docutils/writers/html4css1/__init__.py index 21abe6ce6..995873c84 100644 --- a/docutils/docutils/writers/html4css1/__init__.py +++ b/docutils/docutils/writers/html4css1/__init__.py @@ -236,7 +236,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): or (self.settings.compact_lists and 'open' not in node['classes'] and (self.compact_simple - or self.topic_classes == ['contents'] + or 'contents' in node.parent['classes'] # TODO: self.in_contents or self.check_simple_list(node)))) @@ -260,6 +260,18 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): self.body.append(self.starttag(node, 'span', '', CLASS='classifier')) # ersatz for first/last pseudo-classes + def visit_compound(self, node): + self.body.append(self.starttag(node, 'div', CLASS='compound')) + if len(node) > 1: + node[0]['classes'].append('compound-first') + node[-1]['classes'].append('compound-last') + for child in node[1:-1]: + child['classes'].append('compound-middle') + + def depart_compound(self, node): + self.body.append('</div>\n') + + # ersatz for first/last pseudo-classes def visit_definition(self, node): self.body.append('</dt>\n') self.body.append(self.starttag(node, 'dd', '')) @@ -579,7 +591,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): # cater for limited styling options in CSS1 using hard-coded NBSPs def visit_literal(self, node): # special case: "code" role - classes = node.get('classes', []) + classes = node['classes'] if 'code' in classes: # filter 'code' from class arguments node['classes'] = [cls for cls in classes if cls != 'code'] diff --git a/docutils/docutils/writers/html5_polyglot/__init__.py b/docutils/docutils/writers/html5_polyglot/__init__.py index f178c1f4d..cca1e9aec 100644 --- a/docutils/docutils/writers/html5_polyglot/__init__.py +++ b/docutils/docutils/writers/html5_polyglot/__init__.py @@ -151,7 +151,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): def visit_container(self, node): # If there is exactly one of the "supported block tags" in # the list of class values, use it as tag name: - classes = node.get('classes', []) + classes = node['classes'] tags = [cls for cls in classes if cls in self.supported_block_tags] if len(tags) == 1: @@ -256,7 +256,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): self.body_prefix.extend(header) self.header.extend(header) del self.body[start:] - + # MIME types supported by the HTML5 <video> element videotypes = ('video/mp4', 'video/webm', 'video/ogg') @@ -273,7 +273,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): atts['height'] = node['height'].replace('px', '') if 'align' in node: atts['class'] = 'align-%s' % node['align'] - if 'controls' in node.get('classes', []): + if 'controls' in node['classes']: atts['controls'] = 'controls' atts['title'] = node.get('alt', uri) @@ -297,7 +297,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): 'b', 'i', 'q', 's', 'u')) def visit_inline(self, node): # Use `supported_inline_tags` if found in class values - classes = node.get('classes', []) + classes = node['classes'] tags = [cls for cls in self.supported_inline_tags if cls in classes] if len(tags): @@ -333,7 +333,7 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): # use HTML text-level tags if matching class value found def visit_literal(self, node): - classes = node.get('classes', []) + classes = node['classes'] tags = [cls for cls in self.supported_inline_tags if cls in classes] if len(tags): @@ -410,8 +410,6 @@ class HTMLTranslator(writers._html_base.HTMLTranslator): and isinstance(node.parent, nodes.document)): self.body_prefix[0] = '</head>\n<body class="with-toc">\n' self.body.append(self.starttag(node, 'div', CLASS='topic')) - self.topic_classes = node['classes'] # TODO: remove? def depart_topic(self, node): self.body.append('</div>\n') - self.topic_classes = [] diff --git a/docutils/docutils/writers/latex2e/__init__.py b/docutils/docutils/writers/latex2e/__init__.py index ae9c8d79b..f72e4cab0 100644 --- a/docutils/docutils/writers/latex2e/__init__.py +++ b/docutils/docutils/writers/latex2e/__init__.py @@ -797,10 +797,10 @@ class DocumentClass(object): def latex_section_depth(self, depth): """ Return LaTeX equivalent of Docutils section level `depth`. - + Given the value of the ``:depth:`` option of the "contents" or "sectnum" directive, return the corresponding value for the - LaTeX ``tocdepth`` or ``secnumdepth`` counters. + LaTeX ``tocdepth`` or ``secnumdepth`` counters. """ depth = min(depth, len(self.sections)) # limit to supported levels if 'chapter' in self.sections: @@ -1525,7 +1525,7 @@ class LaTeXTranslator(nodes.NodeVisitor): If `set_anchor` is True, an anchor is set with \\phantomsection. If `protect` is True, the \\label cmd is made robust. """ - labels = ['\\label{%s}' % id for id in node.get('ids', [])] + labels = ['\\label{%s}' % id for id in node['ids']] if protect: labels = ['\\protect'+label for label in labels] if set_anchor and labels: @@ -2211,7 +2211,7 @@ class LaTeXTranslator(nodes.NodeVisitor): self.out.append('\\begin{figure} %% align = "%s"\n' % alignment) else: self.out.append('\\begin{figure}\n') - if node.get('ids'): + if node['ids']: self.out += self.ids_to_labels(node) + ['\n'] def depart_figure(self, node): @@ -2395,7 +2395,7 @@ class LaTeXTranslator(nodes.NodeVisitor): self.out.extend(post) def depart_image(self, node): - if node.get('ids'): + if node['ids']: self.out += self.ids_to_labels(node) + ['\n'] def visit_inline(self, node): # <span>, i.e. custom roles @@ -2511,7 +2511,7 @@ class LaTeXTranslator(nodes.NodeVisitor): _use_listings = (literal_env == 'lstlisting') and _use_env # Labels and classes: - if node.get('ids'): + if node['ids']: self.out += ['\n'] + self.ids_to_labels(node) self.duclass_open(node) # Highlight code? @@ -2602,7 +2602,7 @@ class LaTeXTranslator(nodes.NodeVisitor): self.visit_inline(node) self.requirements['amsmath'] = r'\usepackage{amsmath}' math_code = node.astext().translate(unichar2tex.uni2tex_table) - if node.get('ids'): + if node['ids']: math_code = '\n'.join([math_code] + self.ids_to_labels(node)) if math_env == '$': if self.alltt: @@ -2709,7 +2709,7 @@ class LaTeXTranslator(nodes.NodeVisitor): self.out.append('\n') else: self.out.append('\n') - if node.get('ids'): + if node['ids']: self.out += self.ids_to_labels(node) + ['\n'] if node['classes']: self.visit_inline(node) @@ -2970,7 +2970,7 @@ class LaTeXTranslator(nodes.NodeVisitor): self.active_table = self.table_stack.pop() # Insert hyperlabel after (long)table, as # other places (beginning, caption) result in LaTeX errors. - if node.get('ids'): + if node['ids']: self.out += self.ids_to_labels(node, set_anchor=False) + ['\n'] self.duclass_close(node) diff --git a/docutils/test/functional/expected/standalone_rst_html5.html b/docutils/test/functional/expected/standalone_rst_html5.html index e52f614de..d572d3b4e 100644 --- a/docutils/test/functional/expected/standalone_rst_html5.html +++ b/docutils/test/functional/expected/standalone_rst_html5.html @@ -896,45 +896,45 @@ allowed (e.g. inside a directive).</p> is a single logical paragraph containing multiple physical body elements. For example:</p> <div class="compound"> -<p class="compound-first">The 'rm' command is very dangerous. If you are logged +<p>The 'rm' command is very dangerous. If you are logged in as root and enter</p> -<pre class="compound-middle literal-block">cd / +<pre class="literal-block">cd / rm -rf *</pre> -<p class="compound-last">you will erase the entire contents of your file system.</p> +<p>you will erase the entire contents of your file system.</p> </div> <p>Test the handling and display of compound paragraphs:</p> <div class="some-class compound"> -<p class="compound-first">Compound 2, paragraph 1,</p> -<p class="compound-middle">compound 2, paragraph 2,</p> -<ul class="compound-middle simple"> +<p>Compound 2, paragraph 1,</p> +<p>compound 2, paragraph 2,</p> +<ul class="simple"> <li><p>list item 1,</p></li> <li><p>list item 2,</p></li> </ul> -<p class="compound-last">compound 2, paragraph 3.</p> +<p>compound 2, paragraph 3.</p> </div> <div class="compound"> <p>Compound 3, only consisting of one paragraph.</p> </div> <div class="compound"> -<pre class="compound-first literal-block">Compound 4. +<pre class="literal-block">Compound 4. This one starts with a literal block.</pre> -<p class="compound-last">Compound 4, paragraph following the literal block.</p> +<p>Compound 4, paragraph following the literal block.</p> </div> <p>Now something <em>really</em> perverted -- a nested compound block. This is just to test that it works at all; the results don't have to be meaningful.</p> <div class="compound"> -<p class="compound-first">Compound 5, block 1 (a paragraph).</p> -<div class="compound-middle compound"> -<p class="compound-first">Compound 6 is block 2 in compound 5.</p> -<p class="compound-last">Compound 6, another paragraph.</p> +<p>Compound 5, block 1 (a paragraph).</p> +<div class="compound"> +<p>Compound 6 is block 2 in compound 5.</p> +<p>Compound 6, another paragraph.</p> </div> -<p class="compound-last">Compound 5, block 3 (a paragraph).</p> +<p>Compound 5, block 3 (a paragraph).</p> </div> <div class="compound"> -<p class="compound-first">Compound 7, tests the inclusion of various block-level +<p>Compound 7, tests the inclusion of various block-level elements in one logical paragraph. First a table,</p> -<table class="compound-middle"> +<table> <colgroup> <col style="width: 33%" /> <col style="width: 33%" /> @@ -957,48 +957,48 @@ paragraph.</p></td> </tr> </tbody> </table> -<p class="compound-middle">followed by a paragraph. This physical paragraph is +<p>followed by a paragraph. This physical paragraph is actually a continuation of the paragraph before the table. It is followed by</p> -<blockquote class="compound-middle"> +<blockquote> <p>a quote and</p> </blockquote> -<ol class="compound-middle arabic simple"> +<ol class="arabic simple"> <li><p>an enumerated list,</p></li> </ol> -<p class="compound-middle">a paragraph,</p> -<dl class="compound-middle option-list"> +<p>a paragraph,</p> +<dl class="option-list"> <dt><kbd><span class="option">--an</span></kbd></dt> <dd><p>option list,</p> </dd> </dl> -<p class="compound-middle">a paragraph,</p> -<dl class="compound-middle field-list simple"> +<p>a paragraph,</p> +<dl class="field-list simple"> <dt>a field<span class="colon">:</span></dt> <dd><p>list,</p> </dd> </dl> -<p class="compound-middle">a paragraph,</p> -<dl class="compound-middle simple"> +<p>a paragraph,</p> +<dl class="simple"> <dt>a definition</dt> <dd><p>list,</p> </dd> </dl> -<p class="compound-middle">a paragraph, an image:</p> -<img alt="../../../docs/user/rst/images/biohazard.png" class="compound-middle" src="../../../docs/user/rst/images/biohazard.png" /> -<p class="compound-middle">a paragraph,</p> -<div class="compound-middle line-block"> +<p>a paragraph, an image:</p> +<img alt="../../../docs/user/rst/images/biohazard.png" src="../../../docs/user/rst/images/biohazard.png" /> +<p>a paragraph,</p> +<div class="line-block"> <div class="line">a line</div> <div class="line">block,</div> </div> -<p class="compound-middle">a paragraph followed by a comment,</p> +<p>a paragraph followed by a comment,</p> <!-- this is a comment --> -<p class="compound-middle">a paragraph, a</p> -<div class="admonition note compound-middle"> +<p>a paragraph, a</p> +<div class="admonition note"> <p class="admonition-title">Note</p> <p>with content</p> </div> -<p class="compound-last">and the final paragraph of the compound 7.</p> +<p>and the final paragraph of the compound 7.</p> </div> </section> <section id="parsed-literal-blocks"> @@ -1225,7 +1225,7 @@ crunchy, now would it?</p></td> </tr> </tbody> </table> -<table class="colwidths-auto align-center"> +<table class="align-center colwidths-auto"> <caption>center aligned list table</caption> <tbody> <tr><td><p>Albatross</p></td> @@ -1493,7 +1493,7 @@ from the <a class="reference external" href="http://tug.ctan.org/tex-archive/mac </ul> <p>"Booktabs" style table, numbered, centre-aligned, with auto-sized columns:</p> <blockquote> -<table class="booktabs numbered colwidths-auto align-center"> +<table class="align-center booktabs numbered colwidths-auto"> <caption>I/O values</caption> <thead> <tr><th class="head" colspan="2"><p>Input</p></th> |
