summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Peveler <matt.peveler@gmail.com>2020-09-06 15:20:17 -0400
committerMatthew Peveler <matt.peveler@gmail.com>2020-09-06 15:20:17 -0400
commitc41e00413d1cc0088d10c0e3fe5bf313d48e9228 (patch)
treeef6111c54f8c7da797eeb0e1e02c893248eed043
parent9f2fe56bb35f30ab3ccd071ae5ff222719433b31 (diff)
downloadasciidoc-py3-test_data_newlines.tar.gz
re-generate expected test output with proper newlinestest_data_newlines
Signed-off-by: Matthew Peveler <matt.peveler@gmail.com>
-rw-r--r--tests/data/article-data-uri-html4.html632
-rw-r--r--tests/data/article-data-uri-html5.html2158
-rw-r--r--tests/data/article-data-uri-xhtml11.html2166
-rw-r--r--tests/data/article-docbook.xml390
-rw-r--r--tests/data/article-docbook5.xml386
-rw-r--r--tests/data/article-docinfo-docbook.xml564
-rw-r--r--tests/data/article-docinfo-docbook5.xml560
-rw-r--r--tests/data/article-html4.html298
-rw-r--r--tests/data/article-html5.html1824
-rw-r--r--tests/data/article-xhtml11.html1832
-rw-r--r--tests/data/asciidoc.1-docbook.xml932
-rw-r--r--tests/data/asciidoc.1-docbook5.xml930
-rw-r--r--tests/data/asciidoc.1-html4.html770
-rw-r--r--tests/data/asciidoc.1-html5.html2332
-rw-r--r--tests/data/asciidoc.1-xhtml11.html2336
-rw-r--r--tests/data/asciimathml-html5.html3588
-rw-r--r--tests/data/asciimathml-xhtml11.html3592
-rw-r--r--tests/data/book-docbook.xml428
-rw-r--r--tests/data/book-docbook5.xml430
-rw-r--r--tests/data/book-html4.html316
-rw-r--r--tests/data/book-html5.html1860
-rw-r--r--tests/data/book-multi-docbook.xml460
-rw-r--r--tests/data/book-multi-docbook5.xml462
-rw-r--r--tests/data/book-multi-html4.html374
-rw-r--r--tests/data/book-multi-html5.html1928
-rw-r--r--tests/data/book-multi-xhtml11.html1936
-rw-r--r--tests/data/book-xhtml11.html1868
-rw-r--r--tests/data/deprecated-quotes-docbook.xml38
-rw-r--r--tests/data/deprecated-quotes-docbook5.xml36
-rw-r--r--tests/data/deprecated-quotes-html4.html50
-rw-r--r--tests/data/deprecated-quotes-html5.html1510
-rw-r--r--tests/data/deprecated-quotes-xhtml11.html1514
-rw-r--r--tests/data/filters-test-docbook.xml148
-rw-r--r--tests/data/filters-test-docbook5.xml146
-rw-r--r--tests/data/filters-test-html4.html126
-rw-r--r--tests/data/filters-test-html5.html1626
-rw-r--r--tests/data/filters-test-xhtml11.html1630
-rw-r--r--tests/data/lang-cs-article-test-docbook.xml238
-rw-r--r--tests/data/lang-cs-article-test-docbook5.xml236
-rw-r--r--tests/data/lang-cs-article-test-html4.html266
-rw-r--r--tests/data/lang-cs-article-test-html5.html1788
-rw-r--r--tests/data/lang-cs-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-cs-book-test-docbook.xml254
-rw-r--r--tests/data/lang-cs-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-cs-book-test-html4.html278
-rw-r--r--tests/data/lang-cs-book-test-html5.html1812
-rw-r--r--tests/data/lang-cs-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-cs-man-test-docbook.xml58
-rw-r--r--tests/data/lang-cs-man-test-docbook5.xml56
-rw-r--r--tests/data/lang-de-article-test-docbook.xml236
-rw-r--r--tests/data/lang-de-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-de-article-test-html4.html266
-rw-r--r--tests/data/lang-de-article-test-html5.html1788
-rw-r--r--tests/data/lang-de-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-de-book-test-docbook.xml254
-rw-r--r--tests/data/lang-de-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-de-book-test-html4.html278
-rw-r--r--tests/data/lang-de-book-test-html5.html1812
-rw-r--r--tests/data/lang-de-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-de-man-test-docbook.xml56
-rw-r--r--tests/data/lang-de-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-en-article-test-docbook.xml236
-rw-r--r--tests/data/lang-en-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-en-article-test-html4.html266
-rw-r--r--tests/data/lang-en-article-test-html5.html1788
-rw-r--r--tests/data/lang-en-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-en-book-test-docbook.xml254
-rw-r--r--tests/data/lang-en-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-en-book-test-html4.html278
-rw-r--r--tests/data/lang-en-book-test-html5.html1812
-rw-r--r--tests/data/lang-en-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-en-last-updated-is-revdate-test-html4.html266
-rw-r--r--tests/data/lang-en-last-updated-is-revdate-test-html5.html1780
-rw-r--r--tests/data/lang-en-last-updated-is-revdate-test-xhtml11.html1788
-rw-r--r--tests/data/lang-en-man-test-docbook.xml56
-rw-r--r--tests/data/lang-en-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-en-no-last-updated-test-html4.html252
-rw-r--r--tests/data/lang-en-no-last-updated-test-html5.html1770
-rw-r--r--tests/data/lang-en-no-last-updated-test-xhtml11.html1778
-rw-r--r--tests/data/lang-es-article-test-docbook.xml236
-rw-r--r--tests/data/lang-es-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-es-article-test-html4.html266
-rw-r--r--tests/data/lang-es-article-test-html5.html1788
-rw-r--r--tests/data/lang-es-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-es-book-test-docbook.xml254
-rw-r--r--tests/data/lang-es-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-es-book-test-html4.html278
-rw-r--r--tests/data/lang-es-book-test-html5.html1812
-rw-r--r--tests/data/lang-es-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-es-man-test-docbook.xml56
-rw-r--r--tests/data/lang-es-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-fr-article-test-docbook.xml236
-rw-r--r--tests/data/lang-fr-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-fr-article-test-html4.html266
-rw-r--r--tests/data/lang-fr-article-test-html5.html1788
-rw-r--r--tests/data/lang-fr-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-fr-book-test-docbook.xml254
-rw-r--r--tests/data/lang-fr-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-fr-book-test-html4.html278
-rw-r--r--tests/data/lang-fr-book-test-html5.html1812
-rw-r--r--tests/data/lang-fr-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-fr-man-test-docbook.xml56
-rw-r--r--tests/data/lang-fr-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-hu-article-test-docbook.xml236
-rw-r--r--tests/data/lang-hu-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-hu-article-test-html4.html266
-rw-r--r--tests/data/lang-hu-article-test-html5.html1788
-rw-r--r--tests/data/lang-hu-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-hu-book-test-docbook.xml254
-rw-r--r--tests/data/lang-hu-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-hu-book-test-html4.html278
-rw-r--r--tests/data/lang-hu-book-test-html5.html1812
-rw-r--r--tests/data/lang-hu-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-hu-man-test-docbook.xml56
-rw-r--r--tests/data/lang-hu-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-it-article-test-docbook.xml236
-rw-r--r--tests/data/lang-it-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-it-article-test-html4.html266
-rw-r--r--tests/data/lang-it-article-test-html5.html1788
-rw-r--r--tests/data/lang-it-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-it-book-test-docbook.xml254
-rw-r--r--tests/data/lang-it-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-it-book-test-html4.html278
-rw-r--r--tests/data/lang-it-book-test-html5.html1812
-rw-r--r--tests/data/lang-it-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-it-man-test-docbook.xml56
-rw-r--r--tests/data/lang-it-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-ja-article-test-docbook.xml232
-rw-r--r--tests/data/lang-ja-article-test-docbook5.xml230
-rw-r--r--tests/data/lang-ja-article-test-html4.html262
-rw-r--r--tests/data/lang-ja-article-test-html5.html1784
-rw-r--r--tests/data/lang-ja-article-test-xhtml11.html1792
-rw-r--r--tests/data/lang-ja-book-test-docbook.xml250
-rw-r--r--tests/data/lang-ja-book-test-docbook5.xml248
-rw-r--r--tests/data/lang-ja-book-test-html4.html274
-rw-r--r--tests/data/lang-ja-book-test-html5.html1808
-rw-r--r--tests/data/lang-ja-book-test-xhtml11.html1816
-rw-r--r--tests/data/lang-ja-man-test-docbook.xml56
-rw-r--r--tests/data/lang-ja-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-nl-article-test-docbook.xml234
-rw-r--r--tests/data/lang-nl-article-test-docbook5.xml232
-rw-r--r--tests/data/lang-nl-article-test-html4.html264
-rw-r--r--tests/data/lang-nl-article-test-html5.html1786
-rw-r--r--tests/data/lang-nl-article-test-xhtml11.html1794
-rw-r--r--tests/data/lang-nl-book-test-docbook.xml252
-rw-r--r--tests/data/lang-nl-book-test-docbook5.xml250
-rw-r--r--tests/data/lang-nl-book-test-html4.html276
-rw-r--r--tests/data/lang-nl-book-test-html5.html1810
-rw-r--r--tests/data/lang-nl-book-test-xhtml11.html1818
-rw-r--r--tests/data/lang-nl-man-test-docbook.xml56
-rw-r--r--tests/data/lang-nl-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-pt-BR-article-test-docbook.xml236
-rw-r--r--tests/data/lang-pt-BR-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-pt-BR-article-test-html4.html266
-rw-r--r--tests/data/lang-pt-BR-article-test-html5.html1788
-rw-r--r--tests/data/lang-pt-BR-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-pt-BR-book-test-docbook.xml254
-rw-r--r--tests/data/lang-pt-BR-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-pt-BR-book-test-html4.html278
-rw-r--r--tests/data/lang-pt-BR-book-test-html5.html1812
-rw-r--r--tests/data/lang-pt-BR-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-pt-BR-man-test-docbook.xml56
-rw-r--r--tests/data/lang-pt-BR-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-ro-article-test-docbook.xml236
-rw-r--r--tests/data/lang-ro-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-ro-article-test-html4.html266
-rw-r--r--tests/data/lang-ro-article-test-html5.html1788
-rw-r--r--tests/data/lang-ro-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-ro-book-test-docbook.xml254
-rw-r--r--tests/data/lang-ro-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-ro-book-test-html4.html278
-rw-r--r--tests/data/lang-ro-book-test-html5.html1812
-rw-r--r--tests/data/lang-ro-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-ro-man-test-docbook.xml56
-rw-r--r--tests/data/lang-ro-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-ru-article-test-docbook.xml236
-rw-r--r--tests/data/lang-ru-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-ru-article-test-html4.html266
-rw-r--r--tests/data/lang-ru-article-test-html5.html1788
-rw-r--r--tests/data/lang-ru-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-ru-book-test-docbook.xml254
-rw-r--r--tests/data/lang-ru-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-ru-book-test-html4.html278
-rw-r--r--tests/data/lang-ru-book-test-html5.html1812
-rw-r--r--tests/data/lang-ru-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-ru-man-test-docbook.xml56
-rw-r--r--tests/data/lang-ru-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-sv-article-test-docbook.xml236
-rw-r--r--tests/data/lang-sv-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-sv-article-test-html4.html266
-rw-r--r--tests/data/lang-sv-article-test-html5.html1788
-rw-r--r--tests/data/lang-sv-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-sv-book-test-docbook.xml254
-rw-r--r--tests/data/lang-sv-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-sv-book-test-html4.html278
-rw-r--r--tests/data/lang-sv-book-test-html5.html1812
-rw-r--r--tests/data/lang-sv-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-sv-man-test-docbook.xml56
-rw-r--r--tests/data/lang-sv-man-test-docbook5.xml54
-rw-r--r--tests/data/lang-uk-article-test-docbook.xml236
-rw-r--r--tests/data/lang-uk-article-test-docbook5.xml234
-rw-r--r--tests/data/lang-uk-article-test-html4.html266
-rw-r--r--tests/data/lang-uk-article-test-html5.html1788
-rw-r--r--tests/data/lang-uk-article-test-xhtml11.html1796
-rw-r--r--tests/data/lang-uk-book-test-docbook.xml254
-rw-r--r--tests/data/lang-uk-book-test-docbook5.xml252
-rw-r--r--tests/data/lang-uk-book-test-html4.html278
-rw-r--r--tests/data/lang-uk-book-test-html5.html1812
-rw-r--r--tests/data/lang-uk-book-test-xhtml11.html1820
-rw-r--r--tests/data/lang-uk-man-test-docbook.xml56
-rw-r--r--tests/data/lang-uk-man-test-docbook5.xml54
-rw-r--r--tests/data/latex-filter-docbook.xml414
-rw-r--r--tests/data/latex-filter-docbook5.xml412
-rw-r--r--tests/data/latex-filter-html4.html412
-rw-r--r--tests/data/latex-filter-html5.html1944
-rw-r--r--tests/data/latex-filter-xhtml11.html1948
-rw-r--r--tests/data/latexmath-docbook.xml198
-rw-r--r--tests/data/latexmath-docbook5.xml196
-rw-r--r--tests/data/latexmathml-html5.html4062
-rw-r--r--tests/data/latexmathml-xhtml11.html4066
-rw-r--r--tests/data/newtables-docbook.xml2626
-rw-r--r--tests/data/newtables-docbook5.xml2624
-rw-r--r--tests/data/newtables-html4.html2508
-rw-r--r--tests/data/newtables-html5.html4076
-rw-r--r--tests/data/newtables-xhtml11.html4152
-rw-r--r--tests/data/oldtables-docbook.xml734
-rw-r--r--tests/data/oldtables-docbook5.xml732
-rw-r--r--tests/data/oldtables-html4.html704
-rw-r--r--tests/data/oldtables-html5.html2176
-rw-r--r--tests/data/oldtables-xhtml11.html2212
-rw-r--r--tests/data/open-block-test-docbook.xml192
-rw-r--r--tests/data/open-block-test-docbook5.xml190
-rw-r--r--tests/data/open-block-test-html4.html240
-rw-r--r--tests/data/open-block-test-html5.html1736
-rw-r--r--tests/data/open-block-test-xhtml11.html1740
-rw-r--r--tests/data/rcs-id-marker-test-docbook.xml34
-rw-r--r--tests/data/rcs-id-marker-test-docbook5.xml36
-rw-r--r--tests/data/rcs-id-marker-test-html4.html50
-rw-r--r--tests/data/rcs-id-marker-test-html5.html1512
-rw-r--r--tests/data/rcs-id-marker-test-xhtml11.html1516
-rw-r--r--tests/data/slidy-example-slidy.html9022
-rw-r--r--tests/data/source-highlight-filter-docbook.xml696
-rw-r--r--tests/data/source-highlight-filter-docbook5.xml694
-rw-r--r--tests/data/source-highlight-filter-html4.html744
-rw-r--r--tests/data/source-highlight-filter-html5.html2312
-rw-r--r--tests/data/source-highlight-filter-xhtml11.html2316
-rw-r--r--tests/data/testcases-docbook.xml2054
-rw-r--r--tests/data/testcases-docbook5.xml2056
-rw-r--r--tests/data/testcases-html4.html1792
-rw-r--r--tests/data/testcases-html5.html3720
-rw-r--r--tests/data/testcases-xhtml11.html3646
-rw-r--r--tests/data/utf8-bom-test-docbook.xml36
-rw-r--r--tests/data/utf8-bom-test-docbook5.xml34
-rw-r--r--tests/data/utf8-bom-test-html4.html54
-rw-r--r--tests/data/utf8-bom-test-html5.html1522
-rw-r--r--tests/data/utf8-bom-test-xhtml11.html1526
-rw-r--r--tests/data/utf8-examples-docbook.xml452
-rw-r--r--tests/data/utf8-examples-docbook5.xml450
-rw-r--r--tests/data/utf8-examples-html4.html450
-rw-r--r--tests/data/utf8-examples-html5.html2046
-rw-r--r--tests/data/utf8-examples-xhtml11.html2050
261 files changed, 127358 insertions, 127358 deletions
diff --git a/tests/data/article-data-uri-html4.html b/tests/data/article-data-uri-html4.html
index 35b8868..8e9e9db 100644
--- a/tests/data/article-data-uri-html4.html
+++ b/tests/data/article-data-uri-html4.html
@@ -1,316 +1,316 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>The Article Title</title>
-</head>
-<body>
-<h1>The Article Title</h1>
-<p>
-<strong>Author's Name</strong><br>
-<code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code><br>
-version 1.0,
-2003-12
-</p>
-<a name="preamble"></a>
-<p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img alt="Note" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
-m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
-CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
-BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
-Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
-vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
-oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
-/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
-Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
-bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
-0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
-rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
-X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
-NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
-cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
-KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
-S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
-UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
-XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
-4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
-nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
-iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
-/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
-qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
-uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
-bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
-NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
-PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
-0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
-1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
-i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
-UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
-4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
-Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
-NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
-ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
-AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
-IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
-W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
-o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
-GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
-lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
-zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
-PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==">
-</td>
-<td style="border-left: 1px solid silver;">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td></tr></table>
-<hr>
-<h2><a name="_example_abstract"></a>Example Abstract</h2>
-<p>The optional abstract (one or more paragraphs) goes here.</p>
-<p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p>
-<hr>
-<h2><a name="_the_first_section"></a>1. The First Section</h2>
-<p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<br><i>[An example footnote.]</i><br></p>
-<p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p>
-<p>Here are a couple of image examples: an <img style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
-/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
-3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
-BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
-5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
-RU5ErkJggg==">
-example inline image followed by an example block image:</p>
-<div>
-<img alt="Tiger image"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
-JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
-pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
-nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
-fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
-rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
-O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
-8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
-CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
-tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
-MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
-uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
-ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
-kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
-jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
-Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
-0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
-0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
-vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
-9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
-w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
-+33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
-cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
-8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
-26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
-jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
-7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
-RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
-qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
-42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
-4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
-NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
-vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
-P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
-r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
-DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
-w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
-dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
-O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
-PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
-Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
-2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
-NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
-hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
-JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
-fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
-889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
-N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
-BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
-W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
-beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
-P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
-3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
-R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
-KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
-rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
-B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
-Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
-P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
-x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
-o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
-l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
-cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
-/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
-E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
-fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
-XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
-XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
-K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
-fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
-Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
-zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
-E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
-gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
-Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
-zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
-lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
-+OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
-wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
-VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
-XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
-/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
-aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
-fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
-Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
-l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
-8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
-7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
-0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
-epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
-vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
-d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
-vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
-u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
-axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
-AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
-q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
-6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
-/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
-ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
-Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
-Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
-cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
-JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
-c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
-Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
-0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
-9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
-wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
-8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
-cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
-WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
-n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
-ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
-m2i9J54AAAAASUVORK5CYII=">
-<p><b>Figure 1. </b>Tiger block image</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>An example table</p>
-</div>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<p>Lorum ipum&#8230;</p>
-</td></tr></table>
-<p><b>Example 1. </b>An example example</p>
-<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
-<p>Sub-section at level 2.</p>
-<h4><a name="_a_nested_sub_section"></a>1.1.1. A Nested Sub-section</h4>
-<p>Sub-section at level 3.</p>
-<h5><a name="_yet_another_nested_sub_section"></a>Yet another nested Sub-section</h5>
-<p>Sub-section at level 4.</p>
-<p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<br><i>[A second example footnote.]</i><br></p>
-<hr>
-<h2><a name="_the_second_section"></a>2. The Second Section</h2>
-<p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p>
-<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
-<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
-<hr>
-<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p>
-<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
-<p>Appendix sub-section at level 2.</p>
-<hr>
-<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
-<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_example_glossary"></a>Example Glossary</h2>
-<p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>The Article Title</title>
+</head>
+<body>
+<h1>The Article Title</h1>
+<p>
+<strong>Author's Name</strong><br>
+<code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code><br>
+version 1.0,
+2003-12
+</p>
+<a name="preamble"></a>
+<p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img alt="Note" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
+m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
+CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
+BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
+Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
+vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
+oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
+/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
+Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
+bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
+0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
+rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
+X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
+NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
+cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
+KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
+S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
+UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
+XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
+4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
+nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
+iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
+/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
+qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
+uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
+bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
+NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
+PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
+0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
+1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
+i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
+UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
+4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
+Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
+NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
+ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
+AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
+IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
+W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
+o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
+GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
+lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
+zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
+PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==">
+</td>
+<td style="border-left: 1px solid silver;">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td></tr></table>
+<hr>
+<h2><a name="_example_abstract"></a>Example Abstract</h2>
+<p>The optional abstract (one or more paragraphs) goes here.</p>
+<p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p>
+<hr>
+<h2><a name="_the_first_section"></a>1. The First Section</h2>
+<p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<br><i>[An example footnote.]</i><br></p>
+<p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p>
+<p>Here are a couple of image examples: an <img style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
+/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
+3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
+BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
+5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
+RU5ErkJggg==">
+example inline image followed by an example block image:</p>
+<div>
+<img alt="Tiger image"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
+JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
+pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
+nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
+fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
+rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
+O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
+8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
+CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
+tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
+MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
+uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
+ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
+kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
+jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
+Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
+0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
+0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
+vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
+9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
+w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
++33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
+cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
+8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
+26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
+jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
+7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
+RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
+qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
+42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
+4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
+NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
+vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
+P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
+r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
+DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
+w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
+dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
+O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
+PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
+Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
+2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
+NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
+hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
+JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
+fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
+889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
+N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
+BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
+W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
+beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
+P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
+3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
+R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
+KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
+rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
+B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
+Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
+P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
+x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
+o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
+l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
+cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
+/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
+E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
+fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
+XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
+XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
+K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
+fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
+Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
+zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
+E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
+gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
+Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
+zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
+lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
++OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
+wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
+VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
+XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
+/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
+aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
+fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
+Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
+l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
+8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
+7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
+0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
+epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
+vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
+d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
+vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
+u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
+axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
+AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
+q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
+6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
+/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
+ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
+Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
+Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
+cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
+JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
+c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
+Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
+0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
+9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
+wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
+8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
+cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
+WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
+n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
+ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
+m2i9J54AAAAASUVORK5CYII=">
+<p><b>Figure 1. </b>Tiger block image</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>An example table</p>
+</div>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<p>Lorum ipum&#8230;</p>
+</td></tr></table>
+<p><b>Example 1. </b>An example example</p>
+<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
+<p>Sub-section at level 2.</p>
+<h4><a name="_a_nested_sub_section"></a>1.1.1. A Nested Sub-section</h4>
+<p>Sub-section at level 3.</p>
+<h5><a name="_yet_another_nested_sub_section"></a>Yet another nested Sub-section</h5>
+<p>Sub-section at level 4.</p>
+<p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<br><i>[A second example footnote.]</i><br></p>
+<hr>
+<h2><a name="_the_second_section"></a>2. The Second Section</h2>
+<p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p>
+<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
+<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
+<hr>
+<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p>
+<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
+<p>Appendix sub-section at level 2.</p>
+<hr>
+<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
+<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_example_glossary"></a>Example Glossary</h2>
+<p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/article-data-uri-html5.html b/tests/data/article-data-uri-html5.html
index 06a6943..e3377de 100644
--- a/tests/data/article-data-uri-html5.html
+++ b/tests/data/article-data-uri-html5.html
@@ -1,1079 +1,1079 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>The Article Title</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>The Article Title</h1>
-<span id="author">Author's Name</span><br>
-<span id="email" class="monospaced">&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</span><br>
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img alt="Note" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
-m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
-CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
-BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
-Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
-vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
-oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
-/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
-Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
-bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
-0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
-rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
-X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
-NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
-cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
-KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
-S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
-UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
-XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
-4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
-nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
-iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
-/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
-qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
-uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
-bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
-NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
-PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
-0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
-1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
-i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
-UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
-4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
-Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
-NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
-ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
-AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
-IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
-W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
-o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
-GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
-lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
-zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
-PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==">
-</td>
-<td class="content">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_abstract">Example Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">1. The First Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<span class="footnote"><br>[An example footnote.]<br></span></p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img alt="images/smallnew.png"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
-/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
-3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
-BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
-5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
-RU5ErkJggg==">
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img alt="Tiger image"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
-JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
-pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
-nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
-fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
-rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
-O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
-8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
-CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
-tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
-MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
-uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
-ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
-kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
-jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
-Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
-0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
-0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
-vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
-9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
-w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
-+33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
-cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
-8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
-26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
-jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
-7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
-RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
-qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
-42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
-4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
-NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
-vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
-P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
-r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
-DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
-w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
-dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
-O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
-PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
-Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
-2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
-NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
-hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
-JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
-fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
-889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
-N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
-BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
-W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
-beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
-P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
-3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
-R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
-KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
-rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
-B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
-Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
-P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
-x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
-o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
-l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
-cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
-/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
-E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
-fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
-XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
-XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
-K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
-fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
-Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
-zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
-E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
-gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
-Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
-zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
-lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
-+OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
-wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
-VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
-XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
-/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
-aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
-fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
-Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
-l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
-8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
-7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
-0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
-epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
-vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
-d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
-vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
-u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
-axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
-AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
-q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
-6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
-/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
-ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
-Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
-Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
-cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
-JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
-c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
-Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
-0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
-9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
-wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
-8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
-cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
-WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
-n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
-ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
-m2i9J54AAAAASUVORK5CYII=">
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. An example table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_section">2. The Second Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p></div>
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>The Article Title</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>The Article Title</h1>
+<span id="author">Author's Name</span><br>
+<span id="email" class="monospaced">&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</span><br>
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img alt="Note" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
+m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
+CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
+BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
+Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
+vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
+oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
+/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
+Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
+bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
+0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
+rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
+X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
+NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
+cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
+KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
+S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
+UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
+XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
+4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
+nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
+iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
+/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
+qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
+uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
+bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
+NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
+PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
+0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
+1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
+i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
+UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
+4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
+Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
+NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
+ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
+AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
+IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
+W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
+o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
+GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
+lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
+zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
+PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==">
+</td>
+<td class="content">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_abstract">Example Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">1. The First Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<span class="footnote"><br>[An example footnote.]<br></span></p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img alt="images/smallnew.png"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
+/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
+3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
+BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
+5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
+RU5ErkJggg==">
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img alt="Tiger image"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
+JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
+pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
+nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
+fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
+rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
+O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
+8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
+CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
+tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
+MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
+uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
+ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
+kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
+jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
+Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
+0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
+0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
+vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
+9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
+w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
++33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
+cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
+8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
+26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
+jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
+7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
+RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
+qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
+42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
+4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
+NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
+vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
+P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
+r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
+DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
+w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
+dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
+O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
+PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
+Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
+2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
+NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
+hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
+JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
+fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
+889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
+N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
+BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
+W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
+beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
+P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
+3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
+R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
+KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
+rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
+B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
+Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
+P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
+x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
+o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
+l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
+cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
+/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
+E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
+fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
+XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
+XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
+K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
+fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
+Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
+zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
+E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
+gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
+Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
+zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
+lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
++OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
+wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
+VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
+XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
+/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
+aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
+fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
+Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
+l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
+8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
+7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
+0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
+epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
+vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
+d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
+vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
+u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
+axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
+AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
+q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
+6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
+/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
+ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
+Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
+Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
+cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
+JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
+c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
+Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
+0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
+9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
+wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
+8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
+cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
+WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
+n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
+ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
+m2i9J54AAAAASUVORK5CYII=">
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. An example table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_section">2. The Second Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p></div>
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/article-data-uri-xhtml11.html b/tests/data/article-data-uri-xhtml11.html
index 007b222..3eee34d 100644
--- a/tests/data/article-data-uri-xhtml11.html
+++ b/tests/data/article-data-uri-xhtml11.html
@@ -1,1083 +1,1083 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>The Article Title</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>The Article Title</h1>
-<span id="author">Author's Name</span><br />
-<span id="email"><code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code></span><br />
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img alt="Note" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
-m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
-CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
-BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
-Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
-vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
-oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
-/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
-Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
-bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
-0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
-rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
-X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
-NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
-cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
-KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
-S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
-UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
-XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
-4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
-nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
-iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
-/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
-qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
-uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
-bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
-NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
-PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
-0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
-1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
-i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
-UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
-4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
-Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
-NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
-ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
-AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
-IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
-W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
-o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
-GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
-lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
-zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
-PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
-</td>
-<td class="content">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_abstract">Example Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">1. The First Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img alt="images/smallnew.png"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
-/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
-3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
-BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
-5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
-RU5ErkJggg==" />
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img alt="Tiger image"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
-JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
-pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
-nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
-fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
-rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
-O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
-8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
-CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
-tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
-MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
-uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
-ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
-kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
-jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
-Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
-0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
-0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
-vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
-9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
-w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
-+33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
-cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
-8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
-26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
-jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
-7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
-RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
-qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
-42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
-4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
-NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
-vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
-P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
-r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
-DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
-w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
-dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
-O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
-PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
-Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
-2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
-NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
-hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
-JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
-fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
-889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
-N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
-BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
-W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
-beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
-P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
-3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
-R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
-KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
-rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
-B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
-Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
-P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
-x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
-o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
-l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
-cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
-/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
-E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
-fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
-XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
-XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
-K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
-fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
-Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
-zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
-E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
-gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
-Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
-zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
-lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
-+OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
-wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
-VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
-XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
-/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
-aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
-fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
-Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
-l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
-8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
-7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
-0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
-epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
-vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
-d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
-vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
-u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
-axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
-AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
-q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
-6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
-/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
-ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
-Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
-Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
-cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
-JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
-c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
-Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
-0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
-9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
-wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
-8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
-cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
-WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
-n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
-ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
-m2i9J54AAAAASUVORK5CYII=" />
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. An example table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_section">2. The Second Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p></div>
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>The Article Title</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>The Article Title</h1>
+<span id="author">Author's Name</span><br />
+<span id="email"><code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code></span><br />
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img alt="Note" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
+m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
+CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
+BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
+Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
+vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
+oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
+/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
+Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
+bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
+0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
+rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
+X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
+NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
+cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
+KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
+S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
+UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
+XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
+4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
+nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
+iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
+/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
+qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
+uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
+bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
+NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
+PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
+0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
+1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
+i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
+UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
+4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
+Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
+NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
+ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
+AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
+IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
+W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
+o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
+GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
+lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
+zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
+PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
+</td>
+<td class="content">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_abstract">Example Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">1. The First Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img alt="images/smallnew.png"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
+/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
+3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
+BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
+5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
+RU5ErkJggg==" />
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img alt="Tiger image"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
+JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
+pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
+nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
+fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
+rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
+O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
+8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
+CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
+tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
+MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
+uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
+ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
+kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
+jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
+Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
+0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
+0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
+vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
+9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
+w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
++33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
+cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
+8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
+26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
+jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
+7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
+RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
+qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
+42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
+4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
+NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
+vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
+P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
+r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
+DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
+w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
+dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
+O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
+PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
+Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
+2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
+NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
+hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
+JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
+fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
+889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
+N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
+BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
+W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
+beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
+P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
+3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
+R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
+KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
+rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
+B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
+Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
+P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
+x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
+o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
+l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
+cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
+/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
+E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
+fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
+XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
+XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
+K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
+fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
+Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
+zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
+E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
+gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
+Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
+zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
+lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
++OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
+wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
+VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
+XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
+/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
+aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
+fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
+Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
+l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
+8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
+7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
+0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
+epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
+vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
+d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
+vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
+u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
+axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
+AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
+q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
+6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
+/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
+ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
+Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
+Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
+cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
+JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
+c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
+Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
+0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
+9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
+wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
+8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
+cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
+WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
+n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
+ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
+m2i9J54AAAAASUVORK5CYII=" />
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. An example table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_section">2. The Second Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p></div>
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/article-docbook.xml b/tests/data/article-docbook.xml
index 7538a35..ee83fe0 100644
--- a/tests/data/article-docbook.xml
+++ b/tests/data/article-docbook.xml
@@ -1,195 +1,195 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>The Article Title</title>
- <date>2003-12</date>
- <author>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- <email>authors@email.address</email>
- </author>
- <authorinitials>AN</authorinitials>
-<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</articleinfo>
-<simpara>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</simpara>
-<note><simpara>The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
-<abstract id="_example_abstract">
-<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
-<simpara>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<simpara>Article sections start at level 1 and can be nested up to four levels
-deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section id="_a_nested_sub_section">
-<title>A Nested Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section id="_yet_another_nested_sub_section">
-<title>Yet another nested Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</section>
-<section id="_the_second_section">
-<title>The Second Section</title>
-<simpara>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</simpara>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>AsciiDoc article appendices are just just article sections with
-<emphasis>specialsection</emphasis> titles.</simpara>
-<section id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Appendix sub-section at level 2.</simpara>
-</section>
-</appendix>
-<bibliography id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_example_index">
-<title>Example Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>The Article Title</title>
+ <date>2003-12</date>
+ <author>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ <email>authors@email.address</email>
+ </author>
+ <authorinitials>AN</authorinitials>
+<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</articleinfo>
+<simpara>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</simpara>
+<note><simpara>The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
+<abstract id="_example_abstract">
+<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
+<simpara>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<simpara>Article sections start at level 1 and can be nested up to four levels
+deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section id="_a_nested_sub_section">
+<title>A Nested Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section id="_yet_another_nested_sub_section">
+<title>Yet another nested Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</section>
+<section id="_the_second_section">
+<title>The Second Section</title>
+<simpara>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</simpara>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>AsciiDoc article appendices are just just article sections with
+<emphasis>specialsection</emphasis> titles.</simpara>
+<section id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Appendix sub-section at level 2.</simpara>
+</section>
+</appendix>
+<bibliography id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_example_index">
+<title>Example Index</title>
+</index>
+</article>
diff --git a/tests/data/article-docbook5.xml b/tests/data/article-docbook5.xml
index 3ce92f7..40cc06b 100644
--- a/tests/data/article-docbook5.xml
+++ b/tests/data/article-docbook5.xml
@@ -1,193 +1,193 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>The Article Title</title>
- <date>2003-12</date>
- <author>
- <personname>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </personname>
- <email>authors@email.address</email>
- </author>
- <authorinitials>AN</authorinitials>
- <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</info>
-<simpara>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</simpara>
-<note><simpara>The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
-<abstract xml:id="_example_abstract">
-<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
-<simpara>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<simpara>Article sections start at level 1 and can be nested up to four levels
-deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section xml:id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section xml:id="_a_nested_sub_section">
-<title>A Nested Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section xml:id="_yet_another_nested_sub_section">
-<title>Yet another nested Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</section>
-<section xml:id="_the_second_section">
-<title>The Second Section</title>
-<simpara>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</simpara>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>AsciiDoc article appendices are just just article sections with
-<emphasis>specialsection</emphasis> titles.</simpara>
-<section xml:id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Appendix sub-section at level 2.</simpara>
-</section>
-</appendix>
-<bibliography xml:id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>The Article Title</title>
+ <date>2003-12</date>
+ <author>
+ <personname>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </personname>
+ <email>authors@email.address</email>
+ </author>
+ <authorinitials>AN</authorinitials>
+ <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</info>
+<simpara>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</simpara>
+<note><simpara>The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
+<abstract xml:id="_example_abstract">
+<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
+<simpara>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<simpara>Article sections start at level 1 and can be nested up to four levels
+deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section xml:id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section xml:id="_a_nested_sub_section">
+<title>A Nested Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section xml:id="_yet_another_nested_sub_section">
+<title>Yet another nested Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</section>
+<section xml:id="_the_second_section">
+<title>The Second Section</title>
+<simpara>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</simpara>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>AsciiDoc article appendices are just just article sections with
+<emphasis>specialsection</emphasis> titles.</simpara>
+<section xml:id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Appendix sub-section at level 2.</simpara>
+</section>
+</appendix>
+<bibliography xml:id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+</article>
diff --git a/tests/data/article-docinfo-docbook.xml b/tests/data/article-docinfo-docbook.xml
index b4a2511..797dc65 100644
--- a/tests/data/article-docinfo-docbook.xml
+++ b/tests/data/article-docinfo-docbook.xml
@@ -1,282 +1,282 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>The Article Title</title>
- <date>2003-12</date>
- <author>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- <email>authors@email.address</email>
- </author>
- <authorinitials>AN</authorinitials>
-<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-<!--
- article-docinfo.xml
- Example DocBook document information file for article.txt.
--->
-
-<authorgroup>
- <author>
- <honorific>Dr</honorific>
- <firstname>Lois</firstname>
- <surname>Common-Denominator</surname>
- <affiliation>
- <shortaffil>Director, M. Behn School of Coop. Eng.</shortaffil>
- <jobtitle>Director of Cooperative Efforts</jobtitle>
- <orgname>The Marguerite Behn International School of
- Cooperative Engineering</orgname>
- </affiliation>
- </author>
-
- <author>
- <honorific>Mr</honorific>
- <firstname>Steven</firstname>
- <surname>Norman</surname>
- <othername role='mi'>T</othername>
- <affiliation>
- <shortaffil>ATI</shortaffil>
- <jobtitle>Senior Application Analyst</jobtitle>
- <orgname>Foobar, Inc.</orgname>
- <orgdiv>Application Development</orgdiv>
- </affiliation>
- </author>
-
- <editor>
- <firstname>Peter</firstname>
- <surname>Pan</surname>
- <lineage>Sr.</lineage>
- <othername>Spiderman</othername>
- <authorblurb>
- <para>
- Peter's a super hero in his spare time.
- </para>
- </authorblurb>
- </editor>
-</authorgroup>
-
-<copyright>
- <year>2009</year>
- <holder>Behn International</holder>
-</copyright>
-
-<legalnotice>
- <simpara>
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- </simpara>
- <simpara>
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- </simpara>
- <simpara>
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- </simpara>
-</legalnotice>
-
-<revhistory>
- <revision>
- <revnumber>1.1</revnumber>
- <date>May 2009</date>
- <authorinitials>PP</authorinitials>
- <revremark>
- Updates.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.0</revnumber>
- <date>October 2003</date>
- <authorinitials>PP</authorinitials>
- <revremark>
- First release.
- </revremark>
- </revision>
-</revhistory>
-</articleinfo>
-<simpara>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</simpara>
-<note><simpara>The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
-<abstract id="_example_abstract">
-<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
-<simpara>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<simpara>Article sections start at level 1 and can be nested up to four levels
-deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section id="_a_nested_sub_section">
-<title>A Nested Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section id="_yet_another_nested_sub_section">
-<title>Yet another nested Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</section>
-<section id="_the_second_section">
-<title>The Second Section</title>
-<simpara>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</simpara>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>AsciiDoc article appendices are just just article sections with
-<emphasis>specialsection</emphasis> titles.</simpara>
-<section id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Appendix sub-section at level 2.</simpara>
-</section>
-</appendix>
-<bibliography id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_example_index">
-<title>Example Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>The Article Title</title>
+ <date>2003-12</date>
+ <author>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ <email>authors@email.address</email>
+ </author>
+ <authorinitials>AN</authorinitials>
+<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+<!--
+ article-docinfo.xml
+ Example DocBook document information file for article.txt.
+-->
+
+<authorgroup>
+ <author>
+ <honorific>Dr</honorific>
+ <firstname>Lois</firstname>
+ <surname>Common-Denominator</surname>
+ <affiliation>
+ <shortaffil>Director, M. Behn School of Coop. Eng.</shortaffil>
+ <jobtitle>Director of Cooperative Efforts</jobtitle>
+ <orgname>The Marguerite Behn International School of
+ Cooperative Engineering</orgname>
+ </affiliation>
+ </author>
+
+ <author>
+ <honorific>Mr</honorific>
+ <firstname>Steven</firstname>
+ <surname>Norman</surname>
+ <othername role='mi'>T</othername>
+ <affiliation>
+ <shortaffil>ATI</shortaffil>
+ <jobtitle>Senior Application Analyst</jobtitle>
+ <orgname>Foobar, Inc.</orgname>
+ <orgdiv>Application Development</orgdiv>
+ </affiliation>
+ </author>
+
+ <editor>
+ <firstname>Peter</firstname>
+ <surname>Pan</surname>
+ <lineage>Sr.</lineage>
+ <othername>Spiderman</othername>
+ <authorblurb>
+ <para>
+ Peter's a super hero in his spare time.
+ </para>
+ </authorblurb>
+ </editor>
+</authorgroup>
+
+<copyright>
+ <year>2009</year>
+ <holder>Behn International</holder>
+</copyright>
+
+<legalnotice>
+ <simpara>
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ </simpara>
+ <simpara>
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ </simpara>
+ <simpara>
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ </simpara>
+</legalnotice>
+
+<revhistory>
+ <revision>
+ <revnumber>1.1</revnumber>
+ <date>May 2009</date>
+ <authorinitials>PP</authorinitials>
+ <revremark>
+ Updates.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.0</revnumber>
+ <date>October 2003</date>
+ <authorinitials>PP</authorinitials>
+ <revremark>
+ First release.
+ </revremark>
+ </revision>
+</revhistory>
+</articleinfo>
+<simpara>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</simpara>
+<note><simpara>The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
+<abstract id="_example_abstract">
+<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
+<simpara>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<simpara>Article sections start at level 1 and can be nested up to four levels
+deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section id="_a_nested_sub_section">
+<title>A Nested Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section id="_yet_another_nested_sub_section">
+<title>Yet another nested Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</section>
+<section id="_the_second_section">
+<title>The Second Section</title>
+<simpara>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</simpara>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>AsciiDoc article appendices are just just article sections with
+<emphasis>specialsection</emphasis> titles.</simpara>
+<section id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Appendix sub-section at level 2.</simpara>
+</section>
+</appendix>
+<bibliography id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_example_index">
+<title>Example Index</title>
+</index>
+</article>
diff --git a/tests/data/article-docinfo-docbook5.xml b/tests/data/article-docinfo-docbook5.xml
index b4a2cce..d627b9c 100644
--- a/tests/data/article-docinfo-docbook5.xml
+++ b/tests/data/article-docinfo-docbook5.xml
@@ -1,280 +1,280 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>The Article Title</title>
- <date>2003-12</date>
- <author>
- <personname>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </personname>
- <email>authors@email.address</email>
- </author>
- <authorinitials>AN</authorinitials>
- <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-<!--
- article-docinfo.xml
- Example DocBook document information file for article.txt.
--->
-
-<authorgroup>
- <author>
- <honorific>Dr</honorific>
- <firstname>Lois</firstname>
- <surname>Common-Denominator</surname>
- <affiliation>
- <shortaffil>Director, M. Behn School of Coop. Eng.</shortaffil>
- <jobtitle>Director of Cooperative Efforts</jobtitle>
- <orgname>The Marguerite Behn International School of
- Cooperative Engineering</orgname>
- </affiliation>
- </author>
-
- <author>
- <honorific>Mr</honorific>
- <firstname>Steven</firstname>
- <surname>Norman</surname>
- <othername role='mi'>T</othername>
- <affiliation>
- <shortaffil>ATI</shortaffil>
- <jobtitle>Senior Application Analyst</jobtitle>
- <orgname>Foobar, Inc.</orgname>
- <orgdiv>Application Development</orgdiv>
- </affiliation>
- </author>
-
- <editor>
- <firstname>Peter</firstname>
- <surname>Pan</surname>
- <lineage>Sr.</lineage>
- <othername>Spiderman</othername>
- <authorblurb>
- <para>
- Peter's a super hero in his spare time.
- </para>
- </authorblurb>
- </editor>
-</authorgroup>
-
-<copyright>
- <year>2009</year>
- <holder>Behn International</holder>
-</copyright>
-
-<legalnotice>
- <simpara>
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- </simpara>
- <simpara>
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- </simpara>
- <simpara>
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- </simpara>
-</legalnotice>
-
-<revhistory>
- <revision>
- <revnumber>1.1</revnumber>
- <date>May 2009</date>
- <authorinitials>PP</authorinitials>
- <revremark>
- Updates.
- </revremark>
- </revision>
- <revision>
- <revnumber>1.0</revnumber>
- <date>October 2003</date>
- <authorinitials>PP</authorinitials>
- <revremark>
- First release.
- </revremark>
- </revision>
-</revhistory>
-</info>
-<simpara>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</simpara>
-<note><simpara>The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
-<abstract xml:id="_example_abstract">
-<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
-<simpara>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<simpara>Article sections start at level 1 and can be nested up to four levels
-deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section xml:id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section xml:id="_a_nested_sub_section">
-<title>A Nested Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section xml:id="_yet_another_nested_sub_section">
-<title>Yet another nested Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</section>
-<section xml:id="_the_second_section">
-<title>The Second Section</title>
-<simpara>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</simpara>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>AsciiDoc article appendices are just just article sections with
-<emphasis>specialsection</emphasis> titles.</simpara>
-<section xml:id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Appendix sub-section at level 2.</simpara>
-</section>
-</appendix>
-<bibliography xml:id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>The Article Title</title>
+ <date>2003-12</date>
+ <author>
+ <personname>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </personname>
+ <email>authors@email.address</email>
+ </author>
+ <authorinitials>AN</authorinitials>
+ <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+<!--
+ article-docinfo.xml
+ Example DocBook document information file for article.txt.
+-->
+
+<authorgroup>
+ <author>
+ <honorific>Dr</honorific>
+ <firstname>Lois</firstname>
+ <surname>Common-Denominator</surname>
+ <affiliation>
+ <shortaffil>Director, M. Behn School of Coop. Eng.</shortaffil>
+ <jobtitle>Director of Cooperative Efforts</jobtitle>
+ <orgname>The Marguerite Behn International School of
+ Cooperative Engineering</orgname>
+ </affiliation>
+ </author>
+
+ <author>
+ <honorific>Mr</honorific>
+ <firstname>Steven</firstname>
+ <surname>Norman</surname>
+ <othername role='mi'>T</othername>
+ <affiliation>
+ <shortaffil>ATI</shortaffil>
+ <jobtitle>Senior Application Analyst</jobtitle>
+ <orgname>Foobar, Inc.</orgname>
+ <orgdiv>Application Development</orgdiv>
+ </affiliation>
+ </author>
+
+ <editor>
+ <firstname>Peter</firstname>
+ <surname>Pan</surname>
+ <lineage>Sr.</lineage>
+ <othername>Spiderman</othername>
+ <authorblurb>
+ <para>
+ Peter's a super hero in his spare time.
+ </para>
+ </authorblurb>
+ </editor>
+</authorgroup>
+
+<copyright>
+ <year>2009</year>
+ <holder>Behn International</holder>
+</copyright>
+
+<legalnotice>
+ <simpara>
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ </simpara>
+ <simpara>
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ </simpara>
+ <simpara>
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ </simpara>
+</legalnotice>
+
+<revhistory>
+ <revision>
+ <revnumber>1.1</revnumber>
+ <date>May 2009</date>
+ <authorinitials>PP</authorinitials>
+ <revremark>
+ Updates.
+ </revremark>
+ </revision>
+ <revision>
+ <revnumber>1.0</revnumber>
+ <date>October 2003</date>
+ <authorinitials>PP</authorinitials>
+ <revremark>
+ First release.
+ </revremark>
+ </revision>
+</revhistory>
+</info>
+<simpara>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</simpara>
+<note><simpara>The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<emphasis>specialsections</emphasis>).</simpara></note>
+<abstract xml:id="_example_abstract">
+<simpara>The optional abstract (one or more paragraphs) goes here.</simpara>
+<simpara>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<simpara>Article sections start at level 1 and can be nested up to four levels
+deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section xml:id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section xml:id="_a_nested_sub_section">
+<title>A Nested Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section xml:id="_yet_another_nested_sub_section">
+<title>Yet another nested Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</section>
+<section xml:id="_the_second_section">
+<title>The Second Section</title>
+<simpara>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</simpara>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>AsciiDoc article appendices are just just article sections with
+<emphasis>specialsection</emphasis> titles.</simpara>
+<section xml:id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Appendix sub-section at level 2.</simpara>
+</section>
+</appendix>
+<bibliography xml:id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+</article>
diff --git a/tests/data/article-html4.html b/tests/data/article-html4.html
index 40e3577..50256cf 100644
--- a/tests/data/article-html4.html
+++ b/tests/data/article-html4.html
@@ -1,149 +1,149 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>The Article Title</title>
-</head>
-<body>
-<h1>The Article Title</h1>
-<p>
-<strong>Author's Name</strong><br>
-<code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code><br>
-version 1.0,
-2003-12
-</p>
-<a name="preamble"></a>
-<p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td></tr></table>
-<hr>
-<h2><a name="_example_abstract"></a>Example Abstract</h2>
-<p>The optional abstract (one or more paragraphs) goes here.</p>
-<p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p>
-<hr>
-<h2><a name="_the_first_section"></a>1. The First Section</h2>
-<p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<br><i>[An example footnote.]</i><br></p>
-<p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p>
-<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
-example inline image followed by an example block image:</p>
-<div>
-<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger block image</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>An example table</p>
-</div>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<p>Lorum ipum&#8230;</p>
-</td></tr></table>
-<p><b>Example 1. </b>An example example</p>
-<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
-<p>Sub-section at level 2.</p>
-<h4><a name="_a_nested_sub_section"></a>1.1.1. A Nested Sub-section</h4>
-<p>Sub-section at level 3.</p>
-<h5><a name="_yet_another_nested_sub_section"></a>Yet another nested Sub-section</h5>
-<p>Sub-section at level 4.</p>
-<p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<br><i>[A second example footnote.]</i><br></p>
-<hr>
-<h2><a name="_the_second_section"></a>2. The Second Section</h2>
-<p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p>
-<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
-<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
-<hr>
-<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p>
-<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
-<p>Appendix sub-section at level 2.</p>
-<hr>
-<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
-<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_example_glossary"></a>Example Glossary</h2>
-<p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>The Article Title</title>
+</head>
+<body>
+<h1>The Article Title</h1>
+<p>
+<strong>Author's Name</strong><br>
+<code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code><br>
+version 1.0,
+2003-12
+</p>
+<a name="preamble"></a>
+<p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td></tr></table>
+<hr>
+<h2><a name="_example_abstract"></a>Example Abstract</h2>
+<p>The optional abstract (one or more paragraphs) goes here.</p>
+<p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p>
+<hr>
+<h2><a name="_the_first_section"></a>1. The First Section</h2>
+<p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<br><i>[An example footnote.]</i><br></p>
+<p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p>
+<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
+example inline image followed by an example block image:</p>
+<div>
+<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger block image</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>An example table</p>
+</div>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<p>Lorum ipum&#8230;</p>
+</td></tr></table>
+<p><b>Example 1. </b>An example example</p>
+<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
+<p>Sub-section at level 2.</p>
+<h4><a name="_a_nested_sub_section"></a>1.1.1. A Nested Sub-section</h4>
+<p>Sub-section at level 3.</p>
+<h5><a name="_yet_another_nested_sub_section"></a>Yet another nested Sub-section</h5>
+<p>Sub-section at level 4.</p>
+<p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<br><i>[A second example footnote.]</i><br></p>
+<hr>
+<h2><a name="_the_second_section"></a>2. The Second Section</h2>
+<p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p>
+<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
+<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
+<hr>
+<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p>
+<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
+<p>Appendix sub-section at level 2.</p>
+<hr>
+<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
+<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_example_glossary"></a>Example Glossary</h2>
+<p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/article-html5.html b/tests/data/article-html5.html
index 363ddee..0d5733a 100644
--- a/tests/data/article-html5.html
+++ b/tests/data/article-html5.html
@@ -1,912 +1,912 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>The Article Title</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article" id="article-test">
-<div id="header">
-<h1>The Article Title</h1>
-<span id="author">Author's Name</span><br>
-<span id="email" class="monospaced">&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</span><br>
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_abstract">Example Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">1. The First Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<span class="footnote"><br>[An example footnote.]<br></span></p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png">
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. An example table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_section">2. The Second Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p></div>
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>The Article Title</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article" id="article-test">
+<div id="header">
+<h1>The Article Title</h1>
+<span id="author">Author's Name</span><br>
+<span id="email" class="monospaced">&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</span><br>
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_abstract">Example Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">1. The First Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<span class="footnote"><br>[An example footnote.]<br></span></p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png">
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. An example table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_section">2. The Second Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p></div>
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/article-xhtml11.html b/tests/data/article-xhtml11.html
index 0b220bc..93cec35 100644
--- a/tests/data/article-xhtml11.html
+++ b/tests/data/article-xhtml11.html
@@ -1,916 +1,916 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>The Article Title</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article" id="article-test">
-<div id="header">
-<h1>The Article Title</h1>
-<span id="author">Author's Name</span><br />
-<span id="email"><code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code></span><br />
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
-writing simple sectionless documents consisting only of a preamble.</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">The abstract, preface, appendix, bibliography, glossary and
-index section titles are significant (<em>specialsections</em>).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_abstract">Example Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
-annotated element placeholders plus a couple of example index entries
-and footnotes.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">1. The First Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
-deep.
-<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png" />
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. An example table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_section">2. The Second Section</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
-to four deep.</p></div>
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
-<em>specialsection</em> titles.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>The Article Title</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article" id="article-test">
+<div id="header">
+<h1>The Article Title</h1>
+<span id="author">Author's Name</span><br />
+<span id="email"><code>&lt;<a href="mailto:authors@email.address">authors@email.address</a>&gt;</code></span><br />
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>This is the optional preamble (an untitled section body). Useful for
+writing simple sectionless documents consisting only of a preamble.</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">The abstract, preface, appendix, bibliography, glossary and
+index section titles are significant (<em>specialsections</em>).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_abstract">Example Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional abstract (one or more paragraphs) goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc article skeleton containing briefly
+annotated element placeholders plus a couple of example index entries
+and footnotes.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">1. The First Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections start at level 1 and can be nested up to four levels
+deep.
+<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png" />
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. An example table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_a_nested_sub_section">1.1.1. A Nested Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_yet_another_nested_sub_section">Yet another nested Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_section">2. The Second Section</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Article sections are at level 1 and can contain sub-sections nested up
+to four deep.</p></div>
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc article appendices are just just article sections with
+<em>specialsection</em> titles.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Appendix sub-section at level 2.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/asciidoc.1-docbook.xml b/tests/data/asciidoc.1-docbook.xml
index 853cd75..efec3e2 100644
--- a/tests/data/asciidoc.1-docbook.xml
+++ b/tests/data/asciidoc.1-docbook.xml
@@ -1,466 +1,466 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="en">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-</refsect1>
-<refsect1 id="_options">
-<title>OPTIONS</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">-a, --attribute</emphasis>=<emphasis>ATTRIBUTE</emphasis>
-</term>
-<listitem>
-<simpara>
- Define or delete document attribute. <emphasis>ATTRIBUTE</emphasis> is formatted like
- <emphasis>NAME=VALUE</emphasis>. Command-line attributes take precedence over
- document and configuration file attributes. Alternate acceptable
- forms are <emphasis>NAME</emphasis> (the <emphasis>VALUE</emphasis> defaults to an empty string);
- <emphasis>NAME!</emphasis> (delete the <emphasis>NAME</emphasis> attribute); <emphasis>NAME=VALUE@</emphasis> (do not override
- document or configuration file attributes). Values containing
- spaces should be enclosed in double-quote characters. This option
- may be specified more than once. A special attribute named
- <emphasis>trace</emphasis> controls the output of diagnostic information.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-b, --backend</emphasis>=<emphasis>BACKEND</emphasis>
-</term>
-<listitem>
-<simpara>
- Backend output file format: <emphasis>docbook45</emphasis>, <emphasis>docbook5</emphasis>, <emphasis>xhtml11</emphasis>, <emphasis>html4</emphasis>,
- <emphasis>html5</emphasis>, <emphasis>slidy</emphasis>, <emphasis>wordpress</emphasis> or <emphasis>latex</emphasis> (the <emphasis>latex</emphasis> backend is
- experimental). You can also use the backend alias names <emphasis>html</emphasis>
- (aliased to <emphasis>xhtml11</emphasis>) or <emphasis>docbook</emphasis> (aliased to <emphasis>docbook45</emphasis>).
- Defaults to <emphasis>html</emphasis>. The <emphasis role="strong">--backend</emphasis> option is also used to manage
- backend plugins (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-f, --conf-file</emphasis>=<emphasis>CONF_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- Use configuration file <emphasis>CONF_FILE</emphasis>.Configuration files processed
- in command-line order (after implicit configuration files). This
- option may be specified more than once.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--doctest</emphasis>
-</term>
-<listitem>
-<simpara>
- Run Python doctests in <emphasis>asciidoc</emphasis> module.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-d, --doctype</emphasis>=<emphasis>DOCTYPE</emphasis>
-</term>
-<listitem>
-<simpara>
- Document type: <emphasis>article</emphasis>, <emphasis>manpage</emphasis> or <emphasis>book</emphasis>. The <emphasis>book</emphasis> document
- type is only supported by the <emphasis>docbook</emphasis> backends. Default document
- type is <emphasis>article</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-c, --dump-conf</emphasis>
-</term>
-<listitem>
-<simpara>
- Dump configuration to stdout.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--filter</emphasis>=<emphasis>FILTER</emphasis>
-</term>
-<listitem>
-<simpara>
- Specify the name of a filter to be loaded (used to load filters
- that are not auto-loaded). This option may be specified more than
- once. The <emphasis role="strong">--filter</emphasis> option is also used to manage filter plugins
- (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-h, --help</emphasis> [<emphasis>TOPIC</emphasis>]
-</term>
-<listitem>
-<simpara>
- Print help TOPIC. <emphasis role="strong">--help</emphasis> <emphasis>topics</emphasis> will print a list of help
- topics, <emphasis role="strong">--help</emphasis> <emphasis>syntax</emphasis> summarizes AsciiDoc syntax,
- <emphasis role="strong">--help</emphasis> <emphasis>manpage</emphasis> prints the AsciiDoc manpage.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-e, --no-conf</emphasis>
-</term>
-<listitem>
-<simpara>
- Exclude implicitly loaded configuration files except for those
- named like the input file (<emphasis>infile.conf</emphasis> and
- <emphasis>infile-backend.conf</emphasis>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-s, --no-header-footer</emphasis>
-</term>
-<listitem>
-<simpara>
- Suppress document header and footer output.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-o, --out-file</emphasis>=<emphasis>OUT_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- Write output to file <emphasis>OUT_FILE</emphasis>. Defaults to the base name of
- input file with <emphasis>backend</emphasis> extension. If the input is stdin then
- the outfile defaults to stdout. If <emphasis>OUT_FILE</emphasis> is <emphasis>-</emphasis> then the
- standard output is used.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-n, --section-numbers</emphasis>
-</term>
-<listitem>
-<simpara>
- Auto-number HTML article section titles. Synonym for
- <emphasis role="strong">--attribute numbered</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--safe</emphasis>
-</term>
-<listitem>
-<simpara>
- Enable safe mode. Safe mode is disabled by default. AsciiDoc
- <emphasis>safe mode</emphasis> skips potentially dangerous scripted sections in
- AsciiDoc source files.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--theme</emphasis>=<emphasis>THEME</emphasis>
-</term>
-<listitem>
-<simpara>
- Specify a theme name. Synonym for <emphasis role="strong">--attribute theme</emphasis>=<emphasis>THEME</emphasis>.
- The <emphasis role="strong">--theme</emphasis> option is also used to manage theme plugins (see
- <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-v, --verbose</emphasis>
-</term>
-<listitem>
-<simpara>
- Verbosely print processing information and configuration file
- checks to stderr.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--version</emphasis>
-</term>
-<listitem>
-<simpara>
- Print program version number.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 id="X1">
-<title>PLUGIN COMMANDS</title>
-<simpara>The asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> and <emphasis role="strong">--theme</emphasis> options are used
-to install, remove and list AsciiDoc filter, backend and theme
-plugins. Syntax:</simpara>
-<literallayout class="monospaced">asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
-asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
-asciidoc OPTION list
-asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</literallayout>
-<simpara>Where:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">OPTION</emphasis>
-</term>
-<listitem>
-<simpara>
- asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> or <emphasis role="strong">--theme</emphasis> option specifying
- the type of plugin.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGIN_NAME</emphasis>
-</term>
-<listitem>
-<simpara>
- A unique plugin name containing only alphanumeric or underscore
- characters.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">ZIP_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- A Zip file containing plugin resources, the name must start with the
- plugin name e.g. <literal>my_filter-1.0.zip</literal> packages filter <literal>my_filter</literal>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGINS_DIR</emphasis>
-</term>
-<listitem>
-<simpara>
- The directory containing installed plugins. Each plugin is contained
- in its own separate subdirectory which has the same name as the
- plugin.
- <emphasis role="strong">PLUGINS_DIR</emphasis> defaults to the <literal>$HOME/.asciidoc/filters</literal> (for
- filter plugins) or <literal>$HOME/.asciidoc/backends</literal> (for backend plugins) or
- <literal>$HOME/.asciidoc/themes</literal> (for theme plugins).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGIN_SOURCE</emphasis>
-</term>
-<listitem>
-<simpara>
- The name of a directory containing the plugin source files or the
- name of a single source file.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-<simpara>The plugin commands perform as follows:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">install</emphasis>
-</term>
-<listitem>
-<simpara>
- Create a subdirectory in <emphasis role="strong">PLUGINS_DIR</emphasis> with the same name as the
- plugin then extract the <emphasis role="strong">ZIP_FILE</emphasis> into it.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">remove</emphasis>
-</term>
-<listitem>
-<simpara>
- Delete the <emphasis role="strong">PLUGIN_NAME</emphasis> plugin subdirectory and all its contents
- from the <emphasis role="strong">PLUGINS_DIR</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">list</emphasis>
-</term>
-<listitem>
-<simpara>
- List the names and locations of all installed filter or theme
- plugins (including standard plugins installed in the global
- configuration directory).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">build</emphasis>
-</term>
-<listitem>
-<simpara>
- Create a plugin file named <emphasis role="strong">ZIP_FILE</emphasis> containing the files and
- subdirectories specified by <emphasis role="strong">PLUGIN_SOURCE</emphasis>. File and directory
- names starting with a period are skipped.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 id="_environment_variables">
-<title>ENVIRONMENT VARIABLES</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong"><literal>SOURCE_DATE_EPOCH</literal></emphasis>
-</term>
-<listitem>
-<simpara>
- If the <literal>SOURCE_DATE_EPOCH</literal> environment variable is set to a UNIX
- timestamp, then the <literal>{docdate}</literal>, <literal>{doctime}</literal>, <literal>{localdate}</literal>, and
- <literal>{localtime}</literal> attributes are computed in the UTC time zone, with any
- timestamps newer than <literal>SOURCE_DATE_EPOCH</literal> replaced by
- <literal>SOURCE_DATE_EPOCH</literal>. (This helps software using AsciiDoc to build
- reproducibly.)
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 id="_examples">
-<title>EXAMPLES</title>
-<variablelist>
-<varlistentry>
-<term>
-<literal>asciidoc asciidoc_file_name.txt</literal>
-</term>
-<listitem>
-<simpara>
- Simply generate an html file from the asciidoc_file_name.txt that is in
- current directory using asciidoc.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -b html5 asciidoc_file_name.txt</literal>
-</term>
-<listitem>
-<simpara>
- Use the <literal>-b</literal> switch to use one of the proposed backend or another one you
- installed on your computer.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</literal>
-</term>
-<listitem>
-<simpara>
- Use the <literal>-a</literal> switch to set attributes from command-line. AsciiDoc generated
- its stand-alone HTML user guide containing embedded CSS, JavaScript and
- images from the AsciiDoc article template with this command.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -b html5 -d manpage asciidoc.1.txt</literal>
-</term>
-<listitem>
-<simpara>
- Generating the asciidoc manpage using the html5 backend.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 id="_exit_status">
-<title>EXIT STATUS</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">0</emphasis>
-</term>
-<listitem>
-<simpara>
- Success
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">1</emphasis>
-</term>
-<listitem>
-<simpara>
- Failure (syntax or usage error; configuration error; document
- processing failure; unexpected error).
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 id="_bugs">
-<title>BUGS</title>
-<simpara>See the AsciiDoc distribution BUGS file.</simpara>
-</refsect1>
-<refsect1 id="_author">
-<title>AUTHOR</title>
-<simpara>AsciiDoc was originally written by Stuart Rackham. Many people have
-contributed to it.</simpara>
-</refsect1>
-<refsect1 id="_resources">
-<title>RESOURCES</title>
-<simpara>GitHub: <ulink url="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</ulink></simpara>
-<simpara>Main web site: <ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink></simpara>
-</refsect1>
-<refsect1 id="_see_also">
-<title>SEE ALSO</title>
-<simpara>a2x(1)</simpara>
-</refsect1>
-<refsect1 id="_copying">
-<title>COPYING</title>
-<simpara>Copyright (C) 2002-2013 Stuart Rackham.</simpara>
-<simpara>Copyright (C) 2013-2020 AsciiDoc Contributors.</simpara>
-<simpara>Free use of this software is granted under the terms of the GNU General
-Public License version 2 (GPLv2).</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="en">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+</refsect1>
+<refsect1 id="_options">
+<title>OPTIONS</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">-a, --attribute</emphasis>=<emphasis>ATTRIBUTE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Define or delete document attribute. <emphasis>ATTRIBUTE</emphasis> is formatted like
+ <emphasis>NAME=VALUE</emphasis>. Command-line attributes take precedence over
+ document and configuration file attributes. Alternate acceptable
+ forms are <emphasis>NAME</emphasis> (the <emphasis>VALUE</emphasis> defaults to an empty string);
+ <emphasis>NAME!</emphasis> (delete the <emphasis>NAME</emphasis> attribute); <emphasis>NAME=VALUE@</emphasis> (do not override
+ document or configuration file attributes). Values containing
+ spaces should be enclosed in double-quote characters. This option
+ may be specified more than once. A special attribute named
+ <emphasis>trace</emphasis> controls the output of diagnostic information.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-b, --backend</emphasis>=<emphasis>BACKEND</emphasis>
+</term>
+<listitem>
+<simpara>
+ Backend output file format: <emphasis>docbook45</emphasis>, <emphasis>docbook5</emphasis>, <emphasis>xhtml11</emphasis>, <emphasis>html4</emphasis>,
+ <emphasis>html5</emphasis>, <emphasis>slidy</emphasis>, <emphasis>wordpress</emphasis> or <emphasis>latex</emphasis> (the <emphasis>latex</emphasis> backend is
+ experimental). You can also use the backend alias names <emphasis>html</emphasis>
+ (aliased to <emphasis>xhtml11</emphasis>) or <emphasis>docbook</emphasis> (aliased to <emphasis>docbook45</emphasis>).
+ Defaults to <emphasis>html</emphasis>. The <emphasis role="strong">--backend</emphasis> option is also used to manage
+ backend plugins (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-f, --conf-file</emphasis>=<emphasis>CONF_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Use configuration file <emphasis>CONF_FILE</emphasis>.Configuration files processed
+ in command-line order (after implicit configuration files). This
+ option may be specified more than once.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--doctest</emphasis>
+</term>
+<listitem>
+<simpara>
+ Run Python doctests in <emphasis>asciidoc</emphasis> module.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-d, --doctype</emphasis>=<emphasis>DOCTYPE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Document type: <emphasis>article</emphasis>, <emphasis>manpage</emphasis> or <emphasis>book</emphasis>. The <emphasis>book</emphasis> document
+ type is only supported by the <emphasis>docbook</emphasis> backends. Default document
+ type is <emphasis>article</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-c, --dump-conf</emphasis>
+</term>
+<listitem>
+<simpara>
+ Dump configuration to stdout.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--filter</emphasis>=<emphasis>FILTER</emphasis>
+</term>
+<listitem>
+<simpara>
+ Specify the name of a filter to be loaded (used to load filters
+ that are not auto-loaded). This option may be specified more than
+ once. The <emphasis role="strong">--filter</emphasis> option is also used to manage filter plugins
+ (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-h, --help</emphasis> [<emphasis>TOPIC</emphasis>]
+</term>
+<listitem>
+<simpara>
+ Print help TOPIC. <emphasis role="strong">--help</emphasis> <emphasis>topics</emphasis> will print a list of help
+ topics, <emphasis role="strong">--help</emphasis> <emphasis>syntax</emphasis> summarizes AsciiDoc syntax,
+ <emphasis role="strong">--help</emphasis> <emphasis>manpage</emphasis> prints the AsciiDoc manpage.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-e, --no-conf</emphasis>
+</term>
+<listitem>
+<simpara>
+ Exclude implicitly loaded configuration files except for those
+ named like the input file (<emphasis>infile.conf</emphasis> and
+ <emphasis>infile-backend.conf</emphasis>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-s, --no-header-footer</emphasis>
+</term>
+<listitem>
+<simpara>
+ Suppress document header and footer output.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-o, --out-file</emphasis>=<emphasis>OUT_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Write output to file <emphasis>OUT_FILE</emphasis>. Defaults to the base name of
+ input file with <emphasis>backend</emphasis> extension. If the input is stdin then
+ the outfile defaults to stdout. If <emphasis>OUT_FILE</emphasis> is <emphasis>-</emphasis> then the
+ standard output is used.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-n, --section-numbers</emphasis>
+</term>
+<listitem>
+<simpara>
+ Auto-number HTML article section titles. Synonym for
+ <emphasis role="strong">--attribute numbered</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--safe</emphasis>
+</term>
+<listitem>
+<simpara>
+ Enable safe mode. Safe mode is disabled by default. AsciiDoc
+ <emphasis>safe mode</emphasis> skips potentially dangerous scripted sections in
+ AsciiDoc source files.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--theme</emphasis>=<emphasis>THEME</emphasis>
+</term>
+<listitem>
+<simpara>
+ Specify a theme name. Synonym for <emphasis role="strong">--attribute theme</emphasis>=<emphasis>THEME</emphasis>.
+ The <emphasis role="strong">--theme</emphasis> option is also used to manage theme plugins (see
+ <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-v, --verbose</emphasis>
+</term>
+<listitem>
+<simpara>
+ Verbosely print processing information and configuration file
+ checks to stderr.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--version</emphasis>
+</term>
+<listitem>
+<simpara>
+ Print program version number.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 id="X1">
+<title>PLUGIN COMMANDS</title>
+<simpara>The asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> and <emphasis role="strong">--theme</emphasis> options are used
+to install, remove and list AsciiDoc filter, backend and theme
+plugins. Syntax:</simpara>
+<literallayout class="monospaced">asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
+asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
+asciidoc OPTION list
+asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</literallayout>
+<simpara>Where:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">OPTION</emphasis>
+</term>
+<listitem>
+<simpara>
+ asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> or <emphasis role="strong">--theme</emphasis> option specifying
+ the type of plugin.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGIN_NAME</emphasis>
+</term>
+<listitem>
+<simpara>
+ A unique plugin name containing only alphanumeric or underscore
+ characters.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">ZIP_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ A Zip file containing plugin resources, the name must start with the
+ plugin name e.g. <literal>my_filter-1.0.zip</literal> packages filter <literal>my_filter</literal>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGINS_DIR</emphasis>
+</term>
+<listitem>
+<simpara>
+ The directory containing installed plugins. Each plugin is contained
+ in its own separate subdirectory which has the same name as the
+ plugin.
+ <emphasis role="strong">PLUGINS_DIR</emphasis> defaults to the <literal>$HOME/.asciidoc/filters</literal> (for
+ filter plugins) or <literal>$HOME/.asciidoc/backends</literal> (for backend plugins) or
+ <literal>$HOME/.asciidoc/themes</literal> (for theme plugins).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGIN_SOURCE</emphasis>
+</term>
+<listitem>
+<simpara>
+ The name of a directory containing the plugin source files or the
+ name of a single source file.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+<simpara>The plugin commands perform as follows:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">install</emphasis>
+</term>
+<listitem>
+<simpara>
+ Create a subdirectory in <emphasis role="strong">PLUGINS_DIR</emphasis> with the same name as the
+ plugin then extract the <emphasis role="strong">ZIP_FILE</emphasis> into it.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">remove</emphasis>
+</term>
+<listitem>
+<simpara>
+ Delete the <emphasis role="strong">PLUGIN_NAME</emphasis> plugin subdirectory and all its contents
+ from the <emphasis role="strong">PLUGINS_DIR</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">list</emphasis>
+</term>
+<listitem>
+<simpara>
+ List the names and locations of all installed filter or theme
+ plugins (including standard plugins installed in the global
+ configuration directory).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">build</emphasis>
+</term>
+<listitem>
+<simpara>
+ Create a plugin file named <emphasis role="strong">ZIP_FILE</emphasis> containing the files and
+ subdirectories specified by <emphasis role="strong">PLUGIN_SOURCE</emphasis>. File and directory
+ names starting with a period are skipped.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 id="_environment_variables">
+<title>ENVIRONMENT VARIABLES</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong"><literal>SOURCE_DATE_EPOCH</literal></emphasis>
+</term>
+<listitem>
+<simpara>
+ If the <literal>SOURCE_DATE_EPOCH</literal> environment variable is set to a UNIX
+ timestamp, then the <literal>{docdate}</literal>, <literal>{doctime}</literal>, <literal>{localdate}</literal>, and
+ <literal>{localtime}</literal> attributes are computed in the UTC time zone, with any
+ timestamps newer than <literal>SOURCE_DATE_EPOCH</literal> replaced by
+ <literal>SOURCE_DATE_EPOCH</literal>. (This helps software using AsciiDoc to build
+ reproducibly.)
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 id="_examples">
+<title>EXAMPLES</title>
+<variablelist>
+<varlistentry>
+<term>
+<literal>asciidoc asciidoc_file_name.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Simply generate an html file from the asciidoc_file_name.txt that is in
+ current directory using asciidoc.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -b html5 asciidoc_file_name.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Use the <literal>-b</literal> switch to use one of the proposed backend or another one you
+ installed on your computer.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Use the <literal>-a</literal> switch to set attributes from command-line. AsciiDoc generated
+ its stand-alone HTML user guide containing embedded CSS, JavaScript and
+ images from the AsciiDoc article template with this command.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -b html5 -d manpage asciidoc.1.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Generating the asciidoc manpage using the html5 backend.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 id="_exit_status">
+<title>EXIT STATUS</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">0</emphasis>
+</term>
+<listitem>
+<simpara>
+ Success
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">1</emphasis>
+</term>
+<listitem>
+<simpara>
+ Failure (syntax or usage error; configuration error; document
+ processing failure; unexpected error).
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 id="_bugs">
+<title>BUGS</title>
+<simpara>See the AsciiDoc distribution BUGS file.</simpara>
+</refsect1>
+<refsect1 id="_author">
+<title>AUTHOR</title>
+<simpara>AsciiDoc was originally written by Stuart Rackham. Many people have
+contributed to it.</simpara>
+</refsect1>
+<refsect1 id="_resources">
+<title>RESOURCES</title>
+<simpara>GitHub: <ulink url="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</ulink></simpara>
+<simpara>Main web site: <ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink></simpara>
+</refsect1>
+<refsect1 id="_see_also">
+<title>SEE ALSO</title>
+<simpara>a2x(1)</simpara>
+</refsect1>
+<refsect1 id="_copying">
+<title>COPYING</title>
+<simpara>Copyright (C) 2002-2013 Stuart Rackham.</simpara>
+<simpara>Copyright (C) 2013-2020 AsciiDoc Contributors.</simpara>
+<simpara>Free use of this software is granted under the terms of the GNU General
+Public License version 2 (GPLv2).</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/asciidoc.1-docbook5.xml b/tests/data/asciidoc.1-docbook5.xml
index 6cd0745..3572f34 100644
--- a/tests/data/asciidoc.1-docbook5.xml
+++ b/tests/data/asciidoc.1-docbook5.xml
@@ -1,465 +1,465 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="en">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-</refsect1>
-<refsect1 xml:id="_options">
-<title>OPTIONS</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">-a, --attribute</emphasis>=<emphasis>ATTRIBUTE</emphasis>
-</term>
-<listitem>
-<simpara>
- Define or delete document attribute. <emphasis>ATTRIBUTE</emphasis> is formatted like
- <emphasis>NAME=VALUE</emphasis>. Command-line attributes take precedence over
- document and configuration file attributes. Alternate acceptable
- forms are <emphasis>NAME</emphasis> (the <emphasis>VALUE</emphasis> defaults to an empty string);
- <emphasis>NAME!</emphasis> (delete the <emphasis>NAME</emphasis> attribute); <emphasis>NAME=VALUE@</emphasis> (do not override
- document or configuration file attributes). Values containing
- spaces should be enclosed in double-quote characters. This option
- may be specified more than once. A special attribute named
- <emphasis>trace</emphasis> controls the output of diagnostic information.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-b, --backend</emphasis>=<emphasis>BACKEND</emphasis>
-</term>
-<listitem>
-<simpara>
- Backend output file format: <emphasis>docbook45</emphasis>, <emphasis>docbook5</emphasis>, <emphasis>xhtml11</emphasis>, <emphasis>html4</emphasis>,
- <emphasis>html5</emphasis>, <emphasis>slidy</emphasis>, <emphasis>wordpress</emphasis> or <emphasis>latex</emphasis> (the <emphasis>latex</emphasis> backend is
- experimental). You can also use the backend alias names <emphasis>html</emphasis>
- (aliased to <emphasis>xhtml11</emphasis>) or <emphasis>docbook</emphasis> (aliased to <emphasis>docbook45</emphasis>).
- Defaults to <emphasis>html</emphasis>. The <emphasis role="strong">--backend</emphasis> option is also used to manage
- backend plugins (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-f, --conf-file</emphasis>=<emphasis>CONF_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- Use configuration file <emphasis>CONF_FILE</emphasis>.Configuration files processed
- in command-line order (after implicit configuration files). This
- option may be specified more than once.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--doctest</emphasis>
-</term>
-<listitem>
-<simpara>
- Run Python doctests in <emphasis>asciidoc</emphasis> module.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-d, --doctype</emphasis>=<emphasis>DOCTYPE</emphasis>
-</term>
-<listitem>
-<simpara>
- Document type: <emphasis>article</emphasis>, <emphasis>manpage</emphasis> or <emphasis>book</emphasis>. The <emphasis>book</emphasis> document
- type is only supported by the <emphasis>docbook</emphasis> backends. Default document
- type is <emphasis>article</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-c, --dump-conf</emphasis>
-</term>
-<listitem>
-<simpara>
- Dump configuration to stdout.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--filter</emphasis>=<emphasis>FILTER</emphasis>
-</term>
-<listitem>
-<simpara>
- Specify the name of a filter to be loaded (used to load filters
- that are not auto-loaded). This option may be specified more than
- once. The <emphasis role="strong">--filter</emphasis> option is also used to manage filter plugins
- (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-h, --help</emphasis> [<emphasis>TOPIC</emphasis>]
-</term>
-<listitem>
-<simpara>
- Print help TOPIC. <emphasis role="strong">--help</emphasis> <emphasis>topics</emphasis> will print a list of help
- topics, <emphasis role="strong">--help</emphasis> <emphasis>syntax</emphasis> summarizes AsciiDoc syntax,
- <emphasis role="strong">--help</emphasis> <emphasis>manpage</emphasis> prints the AsciiDoc manpage.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-e, --no-conf</emphasis>
-</term>
-<listitem>
-<simpara>
- Exclude implicitly loaded configuration files except for those
- named like the input file (<emphasis>infile.conf</emphasis> and
- <emphasis>infile-backend.conf</emphasis>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-s, --no-header-footer</emphasis>
-</term>
-<listitem>
-<simpara>
- Suppress document header and footer output.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-o, --out-file</emphasis>=<emphasis>OUT_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- Write output to file <emphasis>OUT_FILE</emphasis>. Defaults to the base name of
- input file with <emphasis>backend</emphasis> extension. If the input is stdin then
- the outfile defaults to stdout. If <emphasis>OUT_FILE</emphasis> is <emphasis>-</emphasis> then the
- standard output is used.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-n, --section-numbers</emphasis>
-</term>
-<listitem>
-<simpara>
- Auto-number HTML article section titles. Synonym for
- <emphasis role="strong">--attribute numbered</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--safe</emphasis>
-</term>
-<listitem>
-<simpara>
- Enable safe mode. Safe mode is disabled by default. AsciiDoc
- <emphasis>safe mode</emphasis> skips potentially dangerous scripted sections in
- AsciiDoc source files.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--theme</emphasis>=<emphasis>THEME</emphasis>
-</term>
-<listitem>
-<simpara>
- Specify a theme name. Synonym for <emphasis role="strong">--attribute theme</emphasis>=<emphasis>THEME</emphasis>.
- The <emphasis role="strong">--theme</emphasis> option is also used to manage theme plugins (see
- <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">-v, --verbose</emphasis>
-</term>
-<listitem>
-<simpara>
- Verbosely print processing information and configuration file
- checks to stderr.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">--version</emphasis>
-</term>
-<listitem>
-<simpara>
- Print program version number.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 xml:id="X1">
-<title>PLUGIN COMMANDS</title>
-<simpara>The asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> and <emphasis role="strong">--theme</emphasis> options are used
-to install, remove and list AsciiDoc filter, backend and theme
-plugins. Syntax:</simpara>
-<literallayout class="monospaced">asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
-asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
-asciidoc OPTION list
-asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</literallayout>
-<simpara>Where:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">OPTION</emphasis>
-</term>
-<listitem>
-<simpara>
- asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> or <emphasis role="strong">--theme</emphasis> option specifying
- the type of plugin.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGIN_NAME</emphasis>
-</term>
-<listitem>
-<simpara>
- A unique plugin name containing only alphanumeric or underscore
- characters.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">ZIP_FILE</emphasis>
-</term>
-<listitem>
-<simpara>
- A Zip file containing plugin resources, the name must start with the
- plugin name e.g. <literal>my_filter-1.0.zip</literal> packages filter <literal>my_filter</literal>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGINS_DIR</emphasis>
-</term>
-<listitem>
-<simpara>
- The directory containing installed plugins. Each plugin is contained
- in its own separate subdirectory which has the same name as the
- plugin.
- <emphasis role="strong">PLUGINS_DIR</emphasis> defaults to the <literal>$HOME/.asciidoc/filters</literal> (for
- filter plugins) or <literal>$HOME/.asciidoc/backends</literal> (for backend plugins) or
- <literal>$HOME/.asciidoc/themes</literal> (for theme plugins).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">PLUGIN_SOURCE</emphasis>
-</term>
-<listitem>
-<simpara>
- The name of a directory containing the plugin source files or the
- name of a single source file.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-<simpara>The plugin commands perform as follows:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">install</emphasis>
-</term>
-<listitem>
-<simpara>
- Create a subdirectory in <emphasis role="strong">PLUGINS_DIR</emphasis> with the same name as the
- plugin then extract the <emphasis role="strong">ZIP_FILE</emphasis> into it.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">remove</emphasis>
-</term>
-<listitem>
-<simpara>
- Delete the <emphasis role="strong">PLUGIN_NAME</emphasis> plugin subdirectory and all its contents
- from the <emphasis role="strong">PLUGINS_DIR</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">list</emphasis>
-</term>
-<listitem>
-<simpara>
- List the names and locations of all installed filter or theme
- plugins (including standard plugins installed in the global
- configuration directory).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">build</emphasis>
-</term>
-<listitem>
-<simpara>
- Create a plugin file named <emphasis role="strong">ZIP_FILE</emphasis> containing the files and
- subdirectories specified by <emphasis role="strong">PLUGIN_SOURCE</emphasis>. File and directory
- names starting with a period are skipped.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 xml:id="_environment_variables">
-<title>ENVIRONMENT VARIABLES</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong"><literal>SOURCE_DATE_EPOCH</literal></emphasis>
-</term>
-<listitem>
-<simpara>
- If the <literal>SOURCE_DATE_EPOCH</literal> environment variable is set to a UNIX
- timestamp, then the <literal>{docdate}</literal>, <literal>{doctime}</literal>, <literal>{localdate}</literal>, and
- <literal>{localtime}</literal> attributes are computed in the UTC time zone, with any
- timestamps newer than <literal>SOURCE_DATE_EPOCH</literal> replaced by
- <literal>SOURCE_DATE_EPOCH</literal>. (This helps software using AsciiDoc to build
- reproducibly.)
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 xml:id="_examples">
-<title>EXAMPLES</title>
-<variablelist>
-<varlistentry>
-<term>
-<literal>asciidoc asciidoc_file_name.txt</literal>
-</term>
-<listitem>
-<simpara>
- Simply generate an html file from the asciidoc_file_name.txt that is in
- current directory using asciidoc.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -b html5 asciidoc_file_name.txt</literal>
-</term>
-<listitem>
-<simpara>
- Use the <literal>-b</literal> switch to use one of the proposed backend or another one you
- installed on your computer.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</literal>
-</term>
-<listitem>
-<simpara>
- Use the <literal>-a</literal> switch to set attributes from command-line. AsciiDoc generated
- its stand-alone HTML user guide containing embedded CSS, JavaScript and
- images from the AsciiDoc article template with this command.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<literal>asciidoc -b html5 -d manpage asciidoc.1.txt</literal>
-</term>
-<listitem>
-<simpara>
- Generating the asciidoc manpage using the html5 backend.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 xml:id="_exit_status">
-<title>EXIT STATUS</title>
-<variablelist>
-<varlistentry>
-<term>
-<emphasis role="strong">0</emphasis>
-</term>
-<listitem>
-<simpara>
- Success
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<emphasis role="strong">1</emphasis>
-</term>
-<listitem>
-<simpara>
- Failure (syntax or usage error; configuration error; document
- processing failure; unexpected error).
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</refsect1>
-<refsect1 xml:id="_bugs">
-<title>BUGS</title>
-<simpara>See the AsciiDoc distribution BUGS file.</simpara>
-</refsect1>
-<refsect1 xml:id="_author">
-<title>AUTHOR</title>
-<simpara>AsciiDoc was originally written by Stuart Rackham. Many people have
-contributed to it.</simpara>
-</refsect1>
-<refsect1 xml:id="_resources">
-<title>RESOURCES</title>
-<simpara>GitHub: <link xlink:href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</link></simpara>
-<simpara>Main web site: <link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link></simpara>
-</refsect1>
-<refsect1 xml:id="_see_also">
-<title>SEE ALSO</title>
-<simpara>a2x(1)</simpara>
-</refsect1>
-<refsect1 xml:id="_copying">
-<title>COPYING</title>
-<simpara>Copyright (C) 2002-2013 Stuart Rackham.</simpara>
-<simpara>Copyright (C) 2013-2020 AsciiDoc Contributors.</simpara>
-<simpara>Free use of this software is granted under the terms of the GNU General
-Public License version 2 (GPLv2).</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="en">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+</refsect1>
+<refsect1 xml:id="_options">
+<title>OPTIONS</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">-a, --attribute</emphasis>=<emphasis>ATTRIBUTE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Define or delete document attribute. <emphasis>ATTRIBUTE</emphasis> is formatted like
+ <emphasis>NAME=VALUE</emphasis>. Command-line attributes take precedence over
+ document and configuration file attributes. Alternate acceptable
+ forms are <emphasis>NAME</emphasis> (the <emphasis>VALUE</emphasis> defaults to an empty string);
+ <emphasis>NAME!</emphasis> (delete the <emphasis>NAME</emphasis> attribute); <emphasis>NAME=VALUE@</emphasis> (do not override
+ document or configuration file attributes). Values containing
+ spaces should be enclosed in double-quote characters. This option
+ may be specified more than once. A special attribute named
+ <emphasis>trace</emphasis> controls the output of diagnostic information.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-b, --backend</emphasis>=<emphasis>BACKEND</emphasis>
+</term>
+<listitem>
+<simpara>
+ Backend output file format: <emphasis>docbook45</emphasis>, <emphasis>docbook5</emphasis>, <emphasis>xhtml11</emphasis>, <emphasis>html4</emphasis>,
+ <emphasis>html5</emphasis>, <emphasis>slidy</emphasis>, <emphasis>wordpress</emphasis> or <emphasis>latex</emphasis> (the <emphasis>latex</emphasis> backend is
+ experimental). You can also use the backend alias names <emphasis>html</emphasis>
+ (aliased to <emphasis>xhtml11</emphasis>) or <emphasis>docbook</emphasis> (aliased to <emphasis>docbook45</emphasis>).
+ Defaults to <emphasis>html</emphasis>. The <emphasis role="strong">--backend</emphasis> option is also used to manage
+ backend plugins (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-f, --conf-file</emphasis>=<emphasis>CONF_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Use configuration file <emphasis>CONF_FILE</emphasis>.Configuration files processed
+ in command-line order (after implicit configuration files). This
+ option may be specified more than once.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--doctest</emphasis>
+</term>
+<listitem>
+<simpara>
+ Run Python doctests in <emphasis>asciidoc</emphasis> module.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-d, --doctype</emphasis>=<emphasis>DOCTYPE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Document type: <emphasis>article</emphasis>, <emphasis>manpage</emphasis> or <emphasis>book</emphasis>. The <emphasis>book</emphasis> document
+ type is only supported by the <emphasis>docbook</emphasis> backends. Default document
+ type is <emphasis>article</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-c, --dump-conf</emphasis>
+</term>
+<listitem>
+<simpara>
+ Dump configuration to stdout.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--filter</emphasis>=<emphasis>FILTER</emphasis>
+</term>
+<listitem>
+<simpara>
+ Specify the name of a filter to be loaded (used to load filters
+ that are not auto-loaded). This option may be specified more than
+ once. The <emphasis role="strong">--filter</emphasis> option is also used to manage filter plugins
+ (see <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-h, --help</emphasis> [<emphasis>TOPIC</emphasis>]
+</term>
+<listitem>
+<simpara>
+ Print help TOPIC. <emphasis role="strong">--help</emphasis> <emphasis>topics</emphasis> will print a list of help
+ topics, <emphasis role="strong">--help</emphasis> <emphasis>syntax</emphasis> summarizes AsciiDoc syntax,
+ <emphasis role="strong">--help</emphasis> <emphasis>manpage</emphasis> prints the AsciiDoc manpage.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-e, --no-conf</emphasis>
+</term>
+<listitem>
+<simpara>
+ Exclude implicitly loaded configuration files except for those
+ named like the input file (<emphasis>infile.conf</emphasis> and
+ <emphasis>infile-backend.conf</emphasis>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-s, --no-header-footer</emphasis>
+</term>
+<listitem>
+<simpara>
+ Suppress document header and footer output.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-o, --out-file</emphasis>=<emphasis>OUT_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ Write output to file <emphasis>OUT_FILE</emphasis>. Defaults to the base name of
+ input file with <emphasis>backend</emphasis> extension. If the input is stdin then
+ the outfile defaults to stdout. If <emphasis>OUT_FILE</emphasis> is <emphasis>-</emphasis> then the
+ standard output is used.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-n, --section-numbers</emphasis>
+</term>
+<listitem>
+<simpara>
+ Auto-number HTML article section titles. Synonym for
+ <emphasis role="strong">--attribute numbered</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--safe</emphasis>
+</term>
+<listitem>
+<simpara>
+ Enable safe mode. Safe mode is disabled by default. AsciiDoc
+ <emphasis>safe mode</emphasis> skips potentially dangerous scripted sections in
+ AsciiDoc source files.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--theme</emphasis>=<emphasis>THEME</emphasis>
+</term>
+<listitem>
+<simpara>
+ Specify a theme name. Synonym for <emphasis role="strong">--attribute theme</emphasis>=<emphasis>THEME</emphasis>.
+ The <emphasis role="strong">--theme</emphasis> option is also used to manage theme plugins (see
+ <link linkend="X1"><emphasis role="strong">PLUGIN COMMANDS</emphasis></link>).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">-v, --verbose</emphasis>
+</term>
+<listitem>
+<simpara>
+ Verbosely print processing information and configuration file
+ checks to stderr.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">--version</emphasis>
+</term>
+<listitem>
+<simpara>
+ Print program version number.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 xml:id="X1">
+<title>PLUGIN COMMANDS</title>
+<simpara>The asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> and <emphasis role="strong">--theme</emphasis> options are used
+to install, remove and list AsciiDoc filter, backend and theme
+plugins. Syntax:</simpara>
+<literallayout class="monospaced">asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
+asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
+asciidoc OPTION list
+asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</literallayout>
+<simpara>Where:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">OPTION</emphasis>
+</term>
+<listitem>
+<simpara>
+ asciidoc(1) <emphasis role="strong">--filter</emphasis>, <emphasis role="strong">--backend</emphasis> or <emphasis role="strong">--theme</emphasis> option specifying
+ the type of plugin.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGIN_NAME</emphasis>
+</term>
+<listitem>
+<simpara>
+ A unique plugin name containing only alphanumeric or underscore
+ characters.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">ZIP_FILE</emphasis>
+</term>
+<listitem>
+<simpara>
+ A Zip file containing plugin resources, the name must start with the
+ plugin name e.g. <literal>my_filter-1.0.zip</literal> packages filter <literal>my_filter</literal>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGINS_DIR</emphasis>
+</term>
+<listitem>
+<simpara>
+ The directory containing installed plugins. Each plugin is contained
+ in its own separate subdirectory which has the same name as the
+ plugin.
+ <emphasis role="strong">PLUGINS_DIR</emphasis> defaults to the <literal>$HOME/.asciidoc/filters</literal> (for
+ filter plugins) or <literal>$HOME/.asciidoc/backends</literal> (for backend plugins) or
+ <literal>$HOME/.asciidoc/themes</literal> (for theme plugins).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">PLUGIN_SOURCE</emphasis>
+</term>
+<listitem>
+<simpara>
+ The name of a directory containing the plugin source files or the
+ name of a single source file.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+<simpara>The plugin commands perform as follows:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">install</emphasis>
+</term>
+<listitem>
+<simpara>
+ Create a subdirectory in <emphasis role="strong">PLUGINS_DIR</emphasis> with the same name as the
+ plugin then extract the <emphasis role="strong">ZIP_FILE</emphasis> into it.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">remove</emphasis>
+</term>
+<listitem>
+<simpara>
+ Delete the <emphasis role="strong">PLUGIN_NAME</emphasis> plugin subdirectory and all its contents
+ from the <emphasis role="strong">PLUGINS_DIR</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">list</emphasis>
+</term>
+<listitem>
+<simpara>
+ List the names and locations of all installed filter or theme
+ plugins (including standard plugins installed in the global
+ configuration directory).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">build</emphasis>
+</term>
+<listitem>
+<simpara>
+ Create a plugin file named <emphasis role="strong">ZIP_FILE</emphasis> containing the files and
+ subdirectories specified by <emphasis role="strong">PLUGIN_SOURCE</emphasis>. File and directory
+ names starting with a period are skipped.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 xml:id="_environment_variables">
+<title>ENVIRONMENT VARIABLES</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong"><literal>SOURCE_DATE_EPOCH</literal></emphasis>
+</term>
+<listitem>
+<simpara>
+ If the <literal>SOURCE_DATE_EPOCH</literal> environment variable is set to a UNIX
+ timestamp, then the <literal>{docdate}</literal>, <literal>{doctime}</literal>, <literal>{localdate}</literal>, and
+ <literal>{localtime}</literal> attributes are computed in the UTC time zone, with any
+ timestamps newer than <literal>SOURCE_DATE_EPOCH</literal> replaced by
+ <literal>SOURCE_DATE_EPOCH</literal>. (This helps software using AsciiDoc to build
+ reproducibly.)
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 xml:id="_examples">
+<title>EXAMPLES</title>
+<variablelist>
+<varlistentry>
+<term>
+<literal>asciidoc asciidoc_file_name.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Simply generate an html file from the asciidoc_file_name.txt that is in
+ current directory using asciidoc.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -b html5 asciidoc_file_name.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Use the <literal>-b</literal> switch to use one of the proposed backend or another one you
+ installed on your computer.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Use the <literal>-a</literal> switch to set attributes from command-line. AsciiDoc generated
+ its stand-alone HTML user guide containing embedded CSS, JavaScript and
+ images from the AsciiDoc article template with this command.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<literal>asciidoc -b html5 -d manpage asciidoc.1.txt</literal>
+</term>
+<listitem>
+<simpara>
+ Generating the asciidoc manpage using the html5 backend.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 xml:id="_exit_status">
+<title>EXIT STATUS</title>
+<variablelist>
+<varlistentry>
+<term>
+<emphasis role="strong">0</emphasis>
+</term>
+<listitem>
+<simpara>
+ Success
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<emphasis role="strong">1</emphasis>
+</term>
+<listitem>
+<simpara>
+ Failure (syntax or usage error; configuration error; document
+ processing failure; unexpected error).
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</refsect1>
+<refsect1 xml:id="_bugs">
+<title>BUGS</title>
+<simpara>See the AsciiDoc distribution BUGS file.</simpara>
+</refsect1>
+<refsect1 xml:id="_author">
+<title>AUTHOR</title>
+<simpara>AsciiDoc was originally written by Stuart Rackham. Many people have
+contributed to it.</simpara>
+</refsect1>
+<refsect1 xml:id="_resources">
+<title>RESOURCES</title>
+<simpara>GitHub: <link xlink:href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</link></simpara>
+<simpara>Main web site: <link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link></simpara>
+</refsect1>
+<refsect1 xml:id="_see_also">
+<title>SEE ALSO</title>
+<simpara>a2x(1)</simpara>
+</refsect1>
+<refsect1 xml:id="_copying">
+<title>COPYING</title>
+<simpara>Copyright (C) 2002-2013 Stuart Rackham.</simpara>
+<simpara>Copyright (C) 2013-2020 AsciiDoc Contributors.</simpara>
+<simpara>Free use of this software is granted under the terms of the GNU General
+Public License version 2 (GPLv2).</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/asciidoc.1-html4.html b/tests/data/asciidoc.1-html4.html
index cccc96b..f95ca19 100644
--- a/tests/data/asciidoc.1-html4.html
+++ b/tests/data/asciidoc.1-html4.html
@@ -1,385 +1,385 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>ASCIIDOC(1)</title>
-</head>
-<body>
-<hr>
-<h1>
- ASCIIDOC(1) Manual Page
-</h1>
-<hr>
-<h2>NAME</h2>
-<p>asciidoc -
- converts an AsciiDoc text file to HTML or DocBook
-</p>
-<h2><a name="_synopsis"></a>SYNOPSIS</h2>
-<p><strong>asciidoc</strong> [<b>OPTIONS</b>] <b>FILE</b></p>
-<h2><a name="_description"></a>DESCRIPTION</h2>
-<p>The asciidoc(1) command translates the AsciiDoc text file <b>FILE</b> to
-DocBook or HTML. If <b>FILE</b> is <b>-</b> then the standard input is used.</p>
-<h2><a name="_options"></a>OPTIONS</h2>
-<dl>
-<dt>
-<strong>-a, --attribute</strong>=<b>ATTRIBUTE</b>
-</dt>
-<dd>
-<p>
- Define or delete document attribute. <b>ATTRIBUTE</b> is formatted like
- <b>NAME=VALUE</b>. Command-line attributes take precedence over
- document and configuration file attributes. Alternate acceptable
- forms are <b>NAME</b> (the <b>VALUE</b> defaults to an empty string);
- <b>NAME!</b> (delete the <b>NAME</b> attribute); <b>NAME=VALUE@</b> (do not override
- document or configuration file attributes). Values containing
- spaces should be enclosed in double-quote characters. This option
- may be specified more than once. A special attribute named
- <b>trace</b> controls the output of diagnostic information.
-</p>
-</dd>
-<dt>
-<strong>-b, --backend</strong>=<b>BACKEND</b>
-</dt>
-<dd>
-<p>
- Backend output file format: <b>docbook45</b>, <b>docbook5</b>, <b>xhtml11</b>, <b>html4</b>,
- <b>html5</b>, <b>slidy</b>, <b>wordpress</b> or <b>latex</b> (the <b>latex</b> backend is
- experimental). You can also use the backend alias names <b>html</b>
- (aliased to <b>xhtml11</b>) or <b>docbook</b> (aliased to <b>docbook45</b>).
- Defaults to <b>html</b>. The <strong>--backend</strong> option is also used to manage
- backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt>
-<strong>-f, --conf-file</strong>=<b>CONF_FILE</b>
-</dt>
-<dd>
-<p>
- Use configuration file <b>CONF_FILE</b>.Configuration files processed
- in command-line order (after implicit configuration files). This
- option may be specified more than once.
-</p>
-</dd>
-<dt>
-<strong>--doctest</strong>
-</dt>
-<dd>
-<p>
- Run Python doctests in <b>asciidoc</b> module.
-</p>
-</dd>
-<dt>
-<strong>-d, --doctype</strong>=<b>DOCTYPE</b>
-</dt>
-<dd>
-<p>
- Document type: <b>article</b>, <b>manpage</b> or <b>book</b>. The <b>book</b> document
- type is only supported by the <b>docbook</b> backends. Default document
- type is <b>article</b>.
-</p>
-</dd>
-<dt>
-<strong>-c, --dump-conf</strong>
-</dt>
-<dd>
-<p>
- Dump configuration to stdout.
-</p>
-</dd>
-<dt>
-<strong>--filter</strong>=<b>FILTER</b>
-</dt>
-<dd>
-<p>
- Specify the name of a filter to be loaded (used to load filters
- that are not auto-loaded). This option may be specified more than
- once. The <strong>--filter</strong> option is also used to manage filter plugins
- (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt>
-<strong>-h, --help</strong> [<b>TOPIC</b>]
-</dt>
-<dd>
-<p>
- Print help TOPIC. <strong>--help</strong> <b>topics</b> will print a list of help
- topics, <strong>--help</strong> <b>syntax</b> summarizes AsciiDoc syntax,
- <strong>--help</strong> <b>manpage</b> prints the AsciiDoc manpage.
-</p>
-</dd>
-<dt>
-<strong>-e, --no-conf</strong>
-</dt>
-<dd>
-<p>
- Exclude implicitly loaded configuration files except for those
- named like the input file (<b>infile.conf</b> and
- <b>infile-backend.conf</b>).
-</p>
-</dd>
-<dt>
-<strong>-s, --no-header-footer</strong>
-</dt>
-<dd>
-<p>
- Suppress document header and footer output.
-</p>
-</dd>
-<dt>
-<strong>-o, --out-file</strong>=<b>OUT_FILE</b>
-</dt>
-<dd>
-<p>
- Write output to file <b>OUT_FILE</b>. Defaults to the base name of
- input file with <b>backend</b> extension. If the input is stdin then
- the outfile defaults to stdout. If <b>OUT_FILE</b> is <b>-</b> then the
- standard output is used.
-</p>
-</dd>
-<dt>
-<strong>-n, --section-numbers</strong>
-</dt>
-<dd>
-<p>
- Auto-number HTML article section titles. Synonym for
- <strong>--attribute numbered</strong>.
-</p>
-</dd>
-<dt>
-<strong>--safe</strong>
-</dt>
-<dd>
-<p>
- Enable safe mode. Safe mode is disabled by default. AsciiDoc
- <b>safe mode</b> skips potentially dangerous scripted sections in
- AsciiDoc source files.
-</p>
-</dd>
-<dt>
-<strong>--theme</strong>=<b>THEME</b>
-</dt>
-<dd>
-<p>
- Specify a theme name. Synonym for <strong>--attribute theme</strong>=<b>THEME</b>.
- The <strong>--theme</strong> option is also used to manage theme plugins (see
- <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt>
-<strong>-v, --verbose</strong>
-</dt>
-<dd>
-<p>
- Verbosely print processing information and configuration file
- checks to stderr.
-</p>
-</dd>
-<dt>
-<strong>--version</strong>
-</dt>
-<dd>
-<p>
- Print program version number.
-</p>
-</dd>
-</dl>
-<h2><a name="X1"></a>PLUGIN COMMANDS</h2>
-<p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
-to install, remove and list AsciiDoc filter, backend and theme
-plugins. Syntax:</p>
-<pre><code>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
-asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
-asciidoc OPTION list
-asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</code></pre>
-<p>Where:</p>
-<dl>
-<dt>
-<strong>OPTION</strong>
-</dt>
-<dd>
-<p>
- asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
- the type of plugin.
-</p>
-</dd>
-<dt>
-<strong>PLUGIN_NAME</strong>
-</dt>
-<dd>
-<p>
- A unique plugin name containing only alphanumeric or underscore
- characters.
-</p>
-</dd>
-<dt>
-<strong>ZIP_FILE</strong>
-</dt>
-<dd>
-<p>
- A Zip file containing plugin resources, the name must start with the
- plugin name e.g. <code>my_filter-1.0.zip</code> packages filter <code>my_filter</code>.
-</p>
-</dd>
-<dt>
-<strong>PLUGINS_DIR</strong>
-</dt>
-<dd>
-<p>
- The directory containing installed plugins. Each plugin is contained
- in its own separate subdirectory which has the same name as the
- plugin.
- <strong>PLUGINS_DIR</strong> defaults to the <code>$HOME/.asciidoc/filters</code> (for
- filter plugins) or <code>$HOME/.asciidoc/backends</code> (for backend plugins) or
- <code>$HOME/.asciidoc/themes</code> (for theme plugins).
-</p>
-</dd>
-<dt>
-<strong>PLUGIN_SOURCE</strong>
-</dt>
-<dd>
-<p>
- The name of a directory containing the plugin source files or the
- name of a single source file.
-</p>
-</dd>
-</dl>
-<p>The plugin commands perform as follows:</p>
-<dl>
-<dt>
-<strong>install</strong>
-</dt>
-<dd>
-<p>
- Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
- plugin then extract the <strong>ZIP_FILE</strong> into it.
-</p>
-</dd>
-<dt>
-<strong>remove</strong>
-</dt>
-<dd>
-<p>
- Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
- from the <strong>PLUGINS_DIR</strong>.
-</p>
-</dd>
-<dt>
-<strong>list</strong>
-</dt>
-<dd>
-<p>
- List the names and locations of all installed filter or theme
- plugins (including standard plugins installed in the global
- configuration directory).
-</p>
-</dd>
-<dt>
-<strong>build</strong>
-</dt>
-<dd>
-<p>
- Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
- subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
- names starting with a period are skipped.
-</p>
-</dd>
-</dl>
-<h2><a name="_environment_variables"></a>ENVIRONMENT VARIABLES</h2>
-<dl>
-<dt>
-<strong><code>SOURCE_DATE_EPOCH</code></strong>
-</dt>
-<dd>
-<p>
- If the <code>SOURCE_DATE_EPOCH</code> environment variable is set to a UNIX
- timestamp, then the <code>{docdate}</code>, <code>{doctime}</code>, <code>{localdate}</code>, and
- <code>{localtime}</code> attributes are computed in the UTC time zone, with any
- timestamps newer than <code>SOURCE_DATE_EPOCH</code> replaced by
- <code>SOURCE_DATE_EPOCH</code>. (This helps software using AsciiDoc to build
- reproducibly.)
-</p>
-</dd>
-</dl>
-<h2><a name="_examples"></a>EXAMPLES</h2>
-<dl>
-<dt>
-<code>asciidoc asciidoc_file_name.txt</code>
-</dt>
-<dd>
-<p>
- Simply generate an html file from the asciidoc_file_name.txt that is in
- current directory using asciidoc.
-</p>
-</dd>
-<dt>
-<code>asciidoc -b html5 asciidoc_file_name.txt</code>
-</dt>
-<dd>
-<p>
- Use the <code>-b</code> switch to use one of the proposed backend or another one you
- installed on your computer.
-</p>
-</dd>
-<dt>
-<code>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</code>
-</dt>
-<dd>
-<p>
- Use the <code>-a</code> switch to set attributes from command-line. AsciiDoc generated
- its stand-alone HTML user guide containing embedded CSS, JavaScript and
- images from the AsciiDoc article template with this command.
-</p>
-</dd>
-<dt>
-<code>asciidoc -b html5 -d manpage asciidoc.1.txt</code>
-</dt>
-<dd>
-<p>
- Generating the asciidoc manpage using the html5 backend.
-</p>
-</dd>
-</dl>
-<h2><a name="_exit_status"></a>EXIT STATUS</h2>
-<dl>
-<dt>
-<strong>0</strong>
-</dt>
-<dd>
-<p>
- Success
-</p>
-</dd>
-<dt>
-<strong>1</strong>
-</dt>
-<dd>
-<p>
- Failure (syntax or usage error; configuration error; document
- processing failure; unexpected error).
-</p>
-</dd>
-</dl>
-<h2><a name="_bugs"></a>BUGS</h2>
-<p>See the AsciiDoc distribution BUGS file.</p>
-<h2><a name="_author"></a>AUTHOR</h2>
-<p>AsciiDoc was originally written by Stuart Rackham. Many people have
-contributed to it.</p>
-<h2><a name="_resources"></a>RESOURCES</h2>
-<p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p>
-<p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p>
-<h2><a name="_see_also"></a>SEE ALSO</h2>
-<p>a2x(1)</p>
-<h2><a name="_copying"></a>COPYING</h2>
-<p>Copyright (C) 2002-2013 Stuart Rackham.</p>
-<p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p>
-<p>Free use of this software is granted under the terms of the GNU General
-Public License version 2 (GPLv2).</p>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>ASCIIDOC(1)</title>
+</head>
+<body>
+<hr>
+<h1>
+ ASCIIDOC(1) Manual Page
+</h1>
+<hr>
+<h2>NAME</h2>
+<p>asciidoc -
+ converts an AsciiDoc text file to HTML or DocBook
+</p>
+<h2><a name="_synopsis"></a>SYNOPSIS</h2>
+<p><strong>asciidoc</strong> [<b>OPTIONS</b>] <b>FILE</b></p>
+<h2><a name="_description"></a>DESCRIPTION</h2>
+<p>The asciidoc(1) command translates the AsciiDoc text file <b>FILE</b> to
+DocBook or HTML. If <b>FILE</b> is <b>-</b> then the standard input is used.</p>
+<h2><a name="_options"></a>OPTIONS</h2>
+<dl>
+<dt>
+<strong>-a, --attribute</strong>=<b>ATTRIBUTE</b>
+</dt>
+<dd>
+<p>
+ Define or delete document attribute. <b>ATTRIBUTE</b> is formatted like
+ <b>NAME=VALUE</b>. Command-line attributes take precedence over
+ document and configuration file attributes. Alternate acceptable
+ forms are <b>NAME</b> (the <b>VALUE</b> defaults to an empty string);
+ <b>NAME!</b> (delete the <b>NAME</b> attribute); <b>NAME=VALUE@</b> (do not override
+ document or configuration file attributes). Values containing
+ spaces should be enclosed in double-quote characters. This option
+ may be specified more than once. A special attribute named
+ <b>trace</b> controls the output of diagnostic information.
+</p>
+</dd>
+<dt>
+<strong>-b, --backend</strong>=<b>BACKEND</b>
+</dt>
+<dd>
+<p>
+ Backend output file format: <b>docbook45</b>, <b>docbook5</b>, <b>xhtml11</b>, <b>html4</b>,
+ <b>html5</b>, <b>slidy</b>, <b>wordpress</b> or <b>latex</b> (the <b>latex</b> backend is
+ experimental). You can also use the backend alias names <b>html</b>
+ (aliased to <b>xhtml11</b>) or <b>docbook</b> (aliased to <b>docbook45</b>).
+ Defaults to <b>html</b>. The <strong>--backend</strong> option is also used to manage
+ backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt>
+<strong>-f, --conf-file</strong>=<b>CONF_FILE</b>
+</dt>
+<dd>
+<p>
+ Use configuration file <b>CONF_FILE</b>.Configuration files processed
+ in command-line order (after implicit configuration files). This
+ option may be specified more than once.
+</p>
+</dd>
+<dt>
+<strong>--doctest</strong>
+</dt>
+<dd>
+<p>
+ Run Python doctests in <b>asciidoc</b> module.
+</p>
+</dd>
+<dt>
+<strong>-d, --doctype</strong>=<b>DOCTYPE</b>
+</dt>
+<dd>
+<p>
+ Document type: <b>article</b>, <b>manpage</b> or <b>book</b>. The <b>book</b> document
+ type is only supported by the <b>docbook</b> backends. Default document
+ type is <b>article</b>.
+</p>
+</dd>
+<dt>
+<strong>-c, --dump-conf</strong>
+</dt>
+<dd>
+<p>
+ Dump configuration to stdout.
+</p>
+</dd>
+<dt>
+<strong>--filter</strong>=<b>FILTER</b>
+</dt>
+<dd>
+<p>
+ Specify the name of a filter to be loaded (used to load filters
+ that are not auto-loaded). This option may be specified more than
+ once. The <strong>--filter</strong> option is also used to manage filter plugins
+ (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt>
+<strong>-h, --help</strong> [<b>TOPIC</b>]
+</dt>
+<dd>
+<p>
+ Print help TOPIC. <strong>--help</strong> <b>topics</b> will print a list of help
+ topics, <strong>--help</strong> <b>syntax</b> summarizes AsciiDoc syntax,
+ <strong>--help</strong> <b>manpage</b> prints the AsciiDoc manpage.
+</p>
+</dd>
+<dt>
+<strong>-e, --no-conf</strong>
+</dt>
+<dd>
+<p>
+ Exclude implicitly loaded configuration files except for those
+ named like the input file (<b>infile.conf</b> and
+ <b>infile-backend.conf</b>).
+</p>
+</dd>
+<dt>
+<strong>-s, --no-header-footer</strong>
+</dt>
+<dd>
+<p>
+ Suppress document header and footer output.
+</p>
+</dd>
+<dt>
+<strong>-o, --out-file</strong>=<b>OUT_FILE</b>
+</dt>
+<dd>
+<p>
+ Write output to file <b>OUT_FILE</b>. Defaults to the base name of
+ input file with <b>backend</b> extension. If the input is stdin then
+ the outfile defaults to stdout. If <b>OUT_FILE</b> is <b>-</b> then the
+ standard output is used.
+</p>
+</dd>
+<dt>
+<strong>-n, --section-numbers</strong>
+</dt>
+<dd>
+<p>
+ Auto-number HTML article section titles. Synonym for
+ <strong>--attribute numbered</strong>.
+</p>
+</dd>
+<dt>
+<strong>--safe</strong>
+</dt>
+<dd>
+<p>
+ Enable safe mode. Safe mode is disabled by default. AsciiDoc
+ <b>safe mode</b> skips potentially dangerous scripted sections in
+ AsciiDoc source files.
+</p>
+</dd>
+<dt>
+<strong>--theme</strong>=<b>THEME</b>
+</dt>
+<dd>
+<p>
+ Specify a theme name. Synonym for <strong>--attribute theme</strong>=<b>THEME</b>.
+ The <strong>--theme</strong> option is also used to manage theme plugins (see
+ <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt>
+<strong>-v, --verbose</strong>
+</dt>
+<dd>
+<p>
+ Verbosely print processing information and configuration file
+ checks to stderr.
+</p>
+</dd>
+<dt>
+<strong>--version</strong>
+</dt>
+<dd>
+<p>
+ Print program version number.
+</p>
+</dd>
+</dl>
+<h2><a name="X1"></a>PLUGIN COMMANDS</h2>
+<p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
+to install, remove and list AsciiDoc filter, backend and theme
+plugins. Syntax:</p>
+<pre><code>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
+asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
+asciidoc OPTION list
+asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</code></pre>
+<p>Where:</p>
+<dl>
+<dt>
+<strong>OPTION</strong>
+</dt>
+<dd>
+<p>
+ asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
+ the type of plugin.
+</p>
+</dd>
+<dt>
+<strong>PLUGIN_NAME</strong>
+</dt>
+<dd>
+<p>
+ A unique plugin name containing only alphanumeric or underscore
+ characters.
+</p>
+</dd>
+<dt>
+<strong>ZIP_FILE</strong>
+</dt>
+<dd>
+<p>
+ A Zip file containing plugin resources, the name must start with the
+ plugin name e.g. <code>my_filter-1.0.zip</code> packages filter <code>my_filter</code>.
+</p>
+</dd>
+<dt>
+<strong>PLUGINS_DIR</strong>
+</dt>
+<dd>
+<p>
+ The directory containing installed plugins. Each plugin is contained
+ in its own separate subdirectory which has the same name as the
+ plugin.
+ <strong>PLUGINS_DIR</strong> defaults to the <code>$HOME/.asciidoc/filters</code> (for
+ filter plugins) or <code>$HOME/.asciidoc/backends</code> (for backend plugins) or
+ <code>$HOME/.asciidoc/themes</code> (for theme plugins).
+</p>
+</dd>
+<dt>
+<strong>PLUGIN_SOURCE</strong>
+</dt>
+<dd>
+<p>
+ The name of a directory containing the plugin source files or the
+ name of a single source file.
+</p>
+</dd>
+</dl>
+<p>The plugin commands perform as follows:</p>
+<dl>
+<dt>
+<strong>install</strong>
+</dt>
+<dd>
+<p>
+ Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
+ plugin then extract the <strong>ZIP_FILE</strong> into it.
+</p>
+</dd>
+<dt>
+<strong>remove</strong>
+</dt>
+<dd>
+<p>
+ Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
+ from the <strong>PLUGINS_DIR</strong>.
+</p>
+</dd>
+<dt>
+<strong>list</strong>
+</dt>
+<dd>
+<p>
+ List the names and locations of all installed filter or theme
+ plugins (including standard plugins installed in the global
+ configuration directory).
+</p>
+</dd>
+<dt>
+<strong>build</strong>
+</dt>
+<dd>
+<p>
+ Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
+ subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
+ names starting with a period are skipped.
+</p>
+</dd>
+</dl>
+<h2><a name="_environment_variables"></a>ENVIRONMENT VARIABLES</h2>
+<dl>
+<dt>
+<strong><code>SOURCE_DATE_EPOCH</code></strong>
+</dt>
+<dd>
+<p>
+ If the <code>SOURCE_DATE_EPOCH</code> environment variable is set to a UNIX
+ timestamp, then the <code>{docdate}</code>, <code>{doctime}</code>, <code>{localdate}</code>, and
+ <code>{localtime}</code> attributes are computed in the UTC time zone, with any
+ timestamps newer than <code>SOURCE_DATE_EPOCH</code> replaced by
+ <code>SOURCE_DATE_EPOCH</code>. (This helps software using AsciiDoc to build
+ reproducibly.)
+</p>
+</dd>
+</dl>
+<h2><a name="_examples"></a>EXAMPLES</h2>
+<dl>
+<dt>
+<code>asciidoc asciidoc_file_name.txt</code>
+</dt>
+<dd>
+<p>
+ Simply generate an html file from the asciidoc_file_name.txt that is in
+ current directory using asciidoc.
+</p>
+</dd>
+<dt>
+<code>asciidoc -b html5 asciidoc_file_name.txt</code>
+</dt>
+<dd>
+<p>
+ Use the <code>-b</code> switch to use one of the proposed backend or another one you
+ installed on your computer.
+</p>
+</dd>
+<dt>
+<code>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</code>
+</dt>
+<dd>
+<p>
+ Use the <code>-a</code> switch to set attributes from command-line. AsciiDoc generated
+ its stand-alone HTML user guide containing embedded CSS, JavaScript and
+ images from the AsciiDoc article template with this command.
+</p>
+</dd>
+<dt>
+<code>asciidoc -b html5 -d manpage asciidoc.1.txt</code>
+</dt>
+<dd>
+<p>
+ Generating the asciidoc manpage using the html5 backend.
+</p>
+</dd>
+</dl>
+<h2><a name="_exit_status"></a>EXIT STATUS</h2>
+<dl>
+<dt>
+<strong>0</strong>
+</dt>
+<dd>
+<p>
+ Success
+</p>
+</dd>
+<dt>
+<strong>1</strong>
+</dt>
+<dd>
+<p>
+ Failure (syntax or usage error; configuration error; document
+ processing failure; unexpected error).
+</p>
+</dd>
+</dl>
+<h2><a name="_bugs"></a>BUGS</h2>
+<p>See the AsciiDoc distribution BUGS file.</p>
+<h2><a name="_author"></a>AUTHOR</h2>
+<p>AsciiDoc was originally written by Stuart Rackham. Many people have
+contributed to it.</p>
+<h2><a name="_resources"></a>RESOURCES</h2>
+<p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p>
+<p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p>
+<h2><a name="_see_also"></a>SEE ALSO</h2>
+<p>a2x(1)</p>
+<h2><a name="_copying"></a>COPYING</h2>
+<p>Copyright (C) 2002-2013 Stuart Rackham.</p>
+<p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p>
+<p>Free use of this software is granted under the terms of the GNU General
+Public License version 2 (GPLv2).</p>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/asciidoc.1-html5.html b/tests/data/asciidoc.1-html5.html
index 242ca42..14d0722 100644
--- a/tests/data/asciidoc.1-html5.html
+++ b/tests/data/asciidoc.1-html5.html
@@ -1,1166 +1,1166 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>ASCIIDOC(1)</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="manpage">
-<div id="header">
-<h1>
-ASCIIDOC(1) Manual Page
-</h1>
-<h2>NAME</h2>
-<div class="sectionbody">
-<p>asciidoc -
- converts an AsciiDoc text file to HTML or DocBook
-</p>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_synopsis">SYNOPSIS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><strong>asciidoc</strong> [<em>OPTIONS</em>] <em>FILE</em></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_description">DESCRIPTION</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The asciidoc(1) command translates the AsciiDoc text file <em>FILE</em> to
-DocBook or HTML. If <em>FILE</em> is <em>-</em> then the standard input is used.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_options">OPTIONS</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>-a, --attribute</strong>=<em>ATTRIBUTE</em>
-</dt>
-<dd>
-<p>
- Define or delete document attribute. <em>ATTRIBUTE</em> is formatted like
- <em>NAME=VALUE</em>. Command-line attributes take precedence over
- document and configuration file attributes. Alternate acceptable
- forms are <em>NAME</em> (the <em>VALUE</em> defaults to an empty string);
- <em>NAME!</em> (delete the <em>NAME</em> attribute); <em>NAME=VALUE@</em> (do not override
- document or configuration file attributes). Values containing
- spaces should be enclosed in double-quote characters. This option
- may be specified more than once. A special attribute named
- <em>trace</em> controls the output of diagnostic information.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-b, --backend</strong>=<em>BACKEND</em>
-</dt>
-<dd>
-<p>
- Backend output file format: <em>docbook45</em>, <em>docbook5</em>, <em>xhtml11</em>, <em>html4</em>,
- <em>html5</em>, <em>slidy</em>, <em>wordpress</em> or <em>latex</em> (the <em>latex</em> backend is
- experimental). You can also use the backend alias names <em>html</em>
- (aliased to <em>xhtml11</em>) or <em>docbook</em> (aliased to <em>docbook45</em>).
- Defaults to <em>html</em>. The <strong>--backend</strong> option is also used to manage
- backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-f, --conf-file</strong>=<em>CONF_FILE</em>
-</dt>
-<dd>
-<p>
- Use configuration file <em>CONF_FILE</em>.Configuration files processed
- in command-line order (after implicit configuration files). This
- option may be specified more than once.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--doctest</strong>
-</dt>
-<dd>
-<p>
- Run Python doctests in <em>asciidoc</em> module.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-d, --doctype</strong>=<em>DOCTYPE</em>
-</dt>
-<dd>
-<p>
- Document type: <em>article</em>, <em>manpage</em> or <em>book</em>. The <em>book</em> document
- type is only supported by the <em>docbook</em> backends. Default document
- type is <em>article</em>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-c, --dump-conf</strong>
-</dt>
-<dd>
-<p>
- Dump configuration to stdout.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--filter</strong>=<em>FILTER</em>
-</dt>
-<dd>
-<p>
- Specify the name of a filter to be loaded (used to load filters
- that are not auto-loaded). This option may be specified more than
- once. The <strong>--filter</strong> option is also used to manage filter plugins
- (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-h, --help</strong> [<em>TOPIC</em>]
-</dt>
-<dd>
-<p>
- Print help TOPIC. <strong>--help</strong> <em>topics</em> will print a list of help
- topics, <strong>--help</strong> <em>syntax</em> summarizes AsciiDoc syntax,
- <strong>--help</strong> <em>manpage</em> prints the AsciiDoc manpage.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-e, --no-conf</strong>
-</dt>
-<dd>
-<p>
- Exclude implicitly loaded configuration files except for those
- named like the input file (<em>infile.conf</em> and
- <em>infile-backend.conf</em>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-s, --no-header-footer</strong>
-</dt>
-<dd>
-<p>
- Suppress document header and footer output.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-o, --out-file</strong>=<em>OUT_FILE</em>
-</dt>
-<dd>
-<p>
- Write output to file <em>OUT_FILE</em>. Defaults to the base name of
- input file with <em>backend</em> extension. If the input is stdin then
- the outfile defaults to stdout. If <em>OUT_FILE</em> is <em>-</em> then the
- standard output is used.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-n, --section-numbers</strong>
-</dt>
-<dd>
-<p>
- Auto-number HTML article section titles. Synonym for
- <strong>--attribute numbered</strong>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--safe</strong>
-</dt>
-<dd>
-<p>
- Enable safe mode. Safe mode is disabled by default. AsciiDoc
- <em>safe mode</em> skips potentially dangerous scripted sections in
- AsciiDoc source files.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--theme</strong>=<em>THEME</em>
-</dt>
-<dd>
-<p>
- Specify a theme name. Synonym for <strong>--attribute theme</strong>=<em>THEME</em>.
- The <strong>--theme</strong> option is also used to manage theme plugins (see
- <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-v, --verbose</strong>
-</dt>
-<dd>
-<p>
- Verbosely print processing information and configuration file
- checks to stderr.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--version</strong>
-</dt>
-<dd>
-<p>
- Print program version number.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="X1">PLUGIN COMMANDS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
-to install, remove and list AsciiDoc filter, backend and theme
-plugins. Syntax:</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
-asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
-asciidoc OPTION list
-asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</pre>
-</div></div>
-<div class="paragraph"><p>Where:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>OPTION</strong>
-</dt>
-<dd>
-<p>
- asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
- the type of plugin.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGIN_NAME</strong>
-</dt>
-<dd>
-<p>
- A unique plugin name containing only alphanumeric or underscore
- characters.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>ZIP_FILE</strong>
-</dt>
-<dd>
-<p>
- A Zip file containing plugin resources, the name must start with the
- plugin name e.g. <span class="monospaced">my_filter-1.0.zip</span> packages filter <span class="monospaced">my_filter</span>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGINS_DIR</strong>
-</dt>
-<dd>
-<p>
- The directory containing installed plugins. Each plugin is contained
- in its own separate subdirectory which has the same name as the
- plugin.
- <strong>PLUGINS_DIR</strong> defaults to the <span class="monospaced">$HOME/.asciidoc/filters</span> (for
- filter plugins) or <span class="monospaced">$HOME/.asciidoc/backends</span> (for backend plugins) or
- <span class="monospaced">$HOME/.asciidoc/themes</span> (for theme plugins).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGIN_SOURCE</strong>
-</dt>
-<dd>
-<p>
- The name of a directory containing the plugin source files or the
- name of a single source file.
-</p>
-</dd>
-</dl></div>
-<div class="paragraph"><p>The plugin commands perform as follows:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>install</strong>
-</dt>
-<dd>
-<p>
- Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
- plugin then extract the <strong>ZIP_FILE</strong> into it.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>remove</strong>
-</dt>
-<dd>
-<p>
- Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
- from the <strong>PLUGINS_DIR</strong>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>list</strong>
-</dt>
-<dd>
-<p>
- List the names and locations of all installed filter or theme
- plugins (including standard plugins installed in the global
- configuration directory).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>build</strong>
-</dt>
-<dd>
-<p>
- Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
- subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
- names starting with a period are skipped.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_environment_variables">ENVIRONMENT VARIABLES</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong><span class="monospaced">SOURCE_DATE_EPOCH</span></strong>
-</dt>
-<dd>
-<p>
- If the <span class="monospaced">SOURCE_DATE_EPOCH</span> environment variable is set to a UNIX
- timestamp, then the <span class="monospaced">{docdate}</span>, <span class="monospaced">{doctime}</span>, <span class="monospaced">{localdate}</span>, and
- <span class="monospaced">{localtime}</span> attributes are computed in the UTC time zone, with any
- timestamps newer than <span class="monospaced">SOURCE_DATE_EPOCH</span> replaced by
- <span class="monospaced">SOURCE_DATE_EPOCH</span>. (This helps software using AsciiDoc to build
- reproducibly.)
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_examples">EXAMPLES</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<span class="monospaced">asciidoc asciidoc_file_name.txt</span>
-</dt>
-<dd>
-<p>
- Simply generate an html file from the asciidoc_file_name.txt that is in
- current directory using asciidoc.
-</p>
-</dd>
-<dt class="hdlist1">
-<span class="monospaced">asciidoc -b html5 asciidoc_file_name.txt</span>
-</dt>
-<dd>
-<p>
- Use the <span class="monospaced">-b</span> switch to use one of the proposed backend or another one you
- installed on your computer.
-</p>
-</dd>
-<dt class="hdlist1">
-<span class="monospaced">asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</span>
-</dt>
-<dd>
-<p>
- Use the <span class="monospaced">-a</span> switch to set attributes from command-line. AsciiDoc generated
- its stand-alone HTML user guide containing embedded CSS, JavaScript and
- images from the AsciiDoc article template with this command.
-</p>
-</dd>
-<dt class="hdlist1">
-<span class="monospaced">asciidoc -b html5 -d manpage asciidoc.1.txt</span>
-</dt>
-<dd>
-<p>
- Generating the asciidoc manpage using the html5 backend.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_exit_status">EXIT STATUS</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>0</strong>
-</dt>
-<dd>
-<p>
- Success
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>1</strong>
-</dt>
-<dd>
-<p>
- Failure (syntax or usage error; configuration error; document
- processing failure; unexpected error).
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bugs">BUGS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>See the AsciiDoc distribution BUGS file.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_author">AUTHOR</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc was originally written by Stuart Rackham. Many people have
-contributed to it.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_resources">RESOURCES</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p></div>
-<div class="paragraph"><p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_see_also">SEE ALSO</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>a2x(1)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_copying">COPYING</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Copyright (C) 2002-2013 Stuart Rackham.</p></div>
-<div class="paragraph"><p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p></div>
-<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU General
-Public License version 2 (GPLv2).</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>ASCIIDOC(1)</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="manpage">
+<div id="header">
+<h1>
+ASCIIDOC(1) Manual Page
+</h1>
+<h2>NAME</h2>
+<div class="sectionbody">
+<p>asciidoc -
+ converts an AsciiDoc text file to HTML or DocBook
+</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>asciidoc</strong> [<em>OPTIONS</em>] <em>FILE</em></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The asciidoc(1) command translates the AsciiDoc text file <em>FILE</em> to
+DocBook or HTML. If <em>FILE</em> is <em>-</em> then the standard input is used.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>-a, --attribute</strong>=<em>ATTRIBUTE</em>
+</dt>
+<dd>
+<p>
+ Define or delete document attribute. <em>ATTRIBUTE</em> is formatted like
+ <em>NAME=VALUE</em>. Command-line attributes take precedence over
+ document and configuration file attributes. Alternate acceptable
+ forms are <em>NAME</em> (the <em>VALUE</em> defaults to an empty string);
+ <em>NAME!</em> (delete the <em>NAME</em> attribute); <em>NAME=VALUE@</em> (do not override
+ document or configuration file attributes). Values containing
+ spaces should be enclosed in double-quote characters. This option
+ may be specified more than once. A special attribute named
+ <em>trace</em> controls the output of diagnostic information.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-b, --backend</strong>=<em>BACKEND</em>
+</dt>
+<dd>
+<p>
+ Backend output file format: <em>docbook45</em>, <em>docbook5</em>, <em>xhtml11</em>, <em>html4</em>,
+ <em>html5</em>, <em>slidy</em>, <em>wordpress</em> or <em>latex</em> (the <em>latex</em> backend is
+ experimental). You can also use the backend alias names <em>html</em>
+ (aliased to <em>xhtml11</em>) or <em>docbook</em> (aliased to <em>docbook45</em>).
+ Defaults to <em>html</em>. The <strong>--backend</strong> option is also used to manage
+ backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-f, --conf-file</strong>=<em>CONF_FILE</em>
+</dt>
+<dd>
+<p>
+ Use configuration file <em>CONF_FILE</em>.Configuration files processed
+ in command-line order (after implicit configuration files). This
+ option may be specified more than once.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--doctest</strong>
+</dt>
+<dd>
+<p>
+ Run Python doctests in <em>asciidoc</em> module.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-d, --doctype</strong>=<em>DOCTYPE</em>
+</dt>
+<dd>
+<p>
+ Document type: <em>article</em>, <em>manpage</em> or <em>book</em>. The <em>book</em> document
+ type is only supported by the <em>docbook</em> backends. Default document
+ type is <em>article</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-c, --dump-conf</strong>
+</dt>
+<dd>
+<p>
+ Dump configuration to stdout.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--filter</strong>=<em>FILTER</em>
+</dt>
+<dd>
+<p>
+ Specify the name of a filter to be loaded (used to load filters
+ that are not auto-loaded). This option may be specified more than
+ once. The <strong>--filter</strong> option is also used to manage filter plugins
+ (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-h, --help</strong> [<em>TOPIC</em>]
+</dt>
+<dd>
+<p>
+ Print help TOPIC. <strong>--help</strong> <em>topics</em> will print a list of help
+ topics, <strong>--help</strong> <em>syntax</em> summarizes AsciiDoc syntax,
+ <strong>--help</strong> <em>manpage</em> prints the AsciiDoc manpage.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-e, --no-conf</strong>
+</dt>
+<dd>
+<p>
+ Exclude implicitly loaded configuration files except for those
+ named like the input file (<em>infile.conf</em> and
+ <em>infile-backend.conf</em>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-s, --no-header-footer</strong>
+</dt>
+<dd>
+<p>
+ Suppress document header and footer output.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-o, --out-file</strong>=<em>OUT_FILE</em>
+</dt>
+<dd>
+<p>
+ Write output to file <em>OUT_FILE</em>. Defaults to the base name of
+ input file with <em>backend</em> extension. If the input is stdin then
+ the outfile defaults to stdout. If <em>OUT_FILE</em> is <em>-</em> then the
+ standard output is used.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-n, --section-numbers</strong>
+</dt>
+<dd>
+<p>
+ Auto-number HTML article section titles. Synonym for
+ <strong>--attribute numbered</strong>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--safe</strong>
+</dt>
+<dd>
+<p>
+ Enable safe mode. Safe mode is disabled by default. AsciiDoc
+ <em>safe mode</em> skips potentially dangerous scripted sections in
+ AsciiDoc source files.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--theme</strong>=<em>THEME</em>
+</dt>
+<dd>
+<p>
+ Specify a theme name. Synonym for <strong>--attribute theme</strong>=<em>THEME</em>.
+ The <strong>--theme</strong> option is also used to manage theme plugins (see
+ <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-v, --verbose</strong>
+</dt>
+<dd>
+<p>
+ Verbosely print processing information and configuration file
+ checks to stderr.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--version</strong>
+</dt>
+<dd>
+<p>
+ Print program version number.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="X1">PLUGIN COMMANDS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
+to install, remove and list AsciiDoc filter, backend and theme
+plugins. Syntax:</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
+asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
+asciidoc OPTION list
+asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</pre>
+</div></div>
+<div class="paragraph"><p>Where:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>OPTION</strong>
+</dt>
+<dd>
+<p>
+ asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
+ the type of plugin.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGIN_NAME</strong>
+</dt>
+<dd>
+<p>
+ A unique plugin name containing only alphanumeric or underscore
+ characters.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>ZIP_FILE</strong>
+</dt>
+<dd>
+<p>
+ A Zip file containing plugin resources, the name must start with the
+ plugin name e.g. <span class="monospaced">my_filter-1.0.zip</span> packages filter <span class="monospaced">my_filter</span>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGINS_DIR</strong>
+</dt>
+<dd>
+<p>
+ The directory containing installed plugins. Each plugin is contained
+ in its own separate subdirectory which has the same name as the
+ plugin.
+ <strong>PLUGINS_DIR</strong> defaults to the <span class="monospaced">$HOME/.asciidoc/filters</span> (for
+ filter plugins) or <span class="monospaced">$HOME/.asciidoc/backends</span> (for backend plugins) or
+ <span class="monospaced">$HOME/.asciidoc/themes</span> (for theme plugins).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGIN_SOURCE</strong>
+</dt>
+<dd>
+<p>
+ The name of a directory containing the plugin source files or the
+ name of a single source file.
+</p>
+</dd>
+</dl></div>
+<div class="paragraph"><p>The plugin commands perform as follows:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>install</strong>
+</dt>
+<dd>
+<p>
+ Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
+ plugin then extract the <strong>ZIP_FILE</strong> into it.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>remove</strong>
+</dt>
+<dd>
+<p>
+ Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
+ from the <strong>PLUGINS_DIR</strong>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>list</strong>
+</dt>
+<dd>
+<p>
+ List the names and locations of all installed filter or theme
+ plugins (including standard plugins installed in the global
+ configuration directory).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>build</strong>
+</dt>
+<dd>
+<p>
+ Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
+ subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
+ names starting with a period are skipped.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_environment_variables">ENVIRONMENT VARIABLES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong><span class="monospaced">SOURCE_DATE_EPOCH</span></strong>
+</dt>
+<dd>
+<p>
+ If the <span class="monospaced">SOURCE_DATE_EPOCH</span> environment variable is set to a UNIX
+ timestamp, then the <span class="monospaced">{docdate}</span>, <span class="monospaced">{doctime}</span>, <span class="monospaced">{localdate}</span>, and
+ <span class="monospaced">{localtime}</span> attributes are computed in the UTC time zone, with any
+ timestamps newer than <span class="monospaced">SOURCE_DATE_EPOCH</span> replaced by
+ <span class="monospaced">SOURCE_DATE_EPOCH</span>. (This helps software using AsciiDoc to build
+ reproducibly.)
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">EXAMPLES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<span class="monospaced">asciidoc asciidoc_file_name.txt</span>
+</dt>
+<dd>
+<p>
+ Simply generate an html file from the asciidoc_file_name.txt that is in
+ current directory using asciidoc.
+</p>
+</dd>
+<dt class="hdlist1">
+<span class="monospaced">asciidoc -b html5 asciidoc_file_name.txt</span>
+</dt>
+<dd>
+<p>
+ Use the <span class="monospaced">-b</span> switch to use one of the proposed backend or another one you
+ installed on your computer.
+</p>
+</dd>
+<dt class="hdlist1">
+<span class="monospaced">asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</span>
+</dt>
+<dd>
+<p>
+ Use the <span class="monospaced">-a</span> switch to set attributes from command-line. AsciiDoc generated
+ its stand-alone HTML user guide containing embedded CSS, JavaScript and
+ images from the AsciiDoc article template with this command.
+</p>
+</dd>
+<dt class="hdlist1">
+<span class="monospaced">asciidoc -b html5 -d manpage asciidoc.1.txt</span>
+</dt>
+<dd>
+<p>
+ Generating the asciidoc manpage using the html5 backend.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exit_status">EXIT STATUS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>0</strong>
+</dt>
+<dd>
+<p>
+ Success
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>1</strong>
+</dt>
+<dd>
+<p>
+ Failure (syntax or usage error; configuration error; document
+ processing failure; unexpected error).
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bugs">BUGS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>See the AsciiDoc distribution BUGS file.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_author">AUTHOR</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc was originally written by Stuart Rackham. Many people have
+contributed to it.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_resources">RESOURCES</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p></div>
+<div class="paragraph"><p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>a2x(1)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_copying">COPYING</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Copyright (C) 2002-2013 Stuart Rackham.</p></div>
+<div class="paragraph"><p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p></div>
+<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU General
+Public License version 2 (GPLv2).</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/asciidoc.1-xhtml11.html b/tests/data/asciidoc.1-xhtml11.html
index d9924a3..7ff2f28 100644
--- a/tests/data/asciidoc.1-xhtml11.html
+++ b/tests/data/asciidoc.1-xhtml11.html
@@ -1,1168 +1,1168 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>ASCIIDOC(1)</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="manpage">
-<div id="header">
-<h1>
-ASCIIDOC(1) Manual Page
-</h1>
-<h2>NAME</h2>
-<div class="sectionbody">
-<p>asciidoc -
- converts an AsciiDoc text file to HTML or DocBook
-</p>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_synopsis">SYNOPSIS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><strong>asciidoc</strong> [<em>OPTIONS</em>] <em>FILE</em></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_description">DESCRIPTION</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The asciidoc(1) command translates the AsciiDoc text file <em>FILE</em> to
-DocBook or HTML. If <em>FILE</em> is <em>-</em> then the standard input is used.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_options">OPTIONS</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>-a, --attribute</strong>=<em>ATTRIBUTE</em>
-</dt>
-<dd>
-<p>
- Define or delete document attribute. <em>ATTRIBUTE</em> is formatted like
- <em>NAME=VALUE</em>. Command-line attributes take precedence over
- document and configuration file attributes. Alternate acceptable
- forms are <em>NAME</em> (the <em>VALUE</em> defaults to an empty string);
- <em>NAME!</em> (delete the <em>NAME</em> attribute); <em>NAME=VALUE@</em> (do not override
- document or configuration file attributes). Values containing
- spaces should be enclosed in double-quote characters. This option
- may be specified more than once. A special attribute named
- <em>trace</em> controls the output of diagnostic information.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-b, --backend</strong>=<em>BACKEND</em>
-</dt>
-<dd>
-<p>
- Backend output file format: <em>docbook45</em>, <em>docbook5</em>, <em>xhtml11</em>, <em>html4</em>,
- <em>html5</em>, <em>slidy</em>, <em>wordpress</em> or <em>latex</em> (the <em>latex</em> backend is
- experimental). You can also use the backend alias names <em>html</em>
- (aliased to <em>xhtml11</em>) or <em>docbook</em> (aliased to <em>docbook45</em>).
- Defaults to <em>html</em>. The <strong>--backend</strong> option is also used to manage
- backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-f, --conf-file</strong>=<em>CONF_FILE</em>
-</dt>
-<dd>
-<p>
- Use configuration file <em>CONF_FILE</em>.Configuration files processed
- in command-line order (after implicit configuration files). This
- option may be specified more than once.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--doctest</strong>
-</dt>
-<dd>
-<p>
- Run Python doctests in <em>asciidoc</em> module.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-d, --doctype</strong>=<em>DOCTYPE</em>
-</dt>
-<dd>
-<p>
- Document type: <em>article</em>, <em>manpage</em> or <em>book</em>. The <em>book</em> document
- type is only supported by the <em>docbook</em> backends. Default document
- type is <em>article</em>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-c, --dump-conf</strong>
-</dt>
-<dd>
-<p>
- Dump configuration to stdout.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--filter</strong>=<em>FILTER</em>
-</dt>
-<dd>
-<p>
- Specify the name of a filter to be loaded (used to load filters
- that are not auto-loaded). This option may be specified more than
- once. The <strong>--filter</strong> option is also used to manage filter plugins
- (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-h, --help</strong> [<em>TOPIC</em>]
-</dt>
-<dd>
-<p>
- Print help TOPIC. <strong>--help</strong> <em>topics</em> will print a list of help
- topics, <strong>--help</strong> <em>syntax</em> summarizes AsciiDoc syntax,
- <strong>--help</strong> <em>manpage</em> prints the AsciiDoc manpage.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-e, --no-conf</strong>
-</dt>
-<dd>
-<p>
- Exclude implicitly loaded configuration files except for those
- named like the input file (<em>infile.conf</em> and
- <em>infile-backend.conf</em>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-s, --no-header-footer</strong>
-</dt>
-<dd>
-<p>
- Suppress document header and footer output.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-o, --out-file</strong>=<em>OUT_FILE</em>
-</dt>
-<dd>
-<p>
- Write output to file <em>OUT_FILE</em>. Defaults to the base name of
- input file with <em>backend</em> extension. If the input is stdin then
- the outfile defaults to stdout. If <em>OUT_FILE</em> is <em>-</em> then the
- standard output is used.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-n, --section-numbers</strong>
-</dt>
-<dd>
-<p>
- Auto-number HTML article section titles. Synonym for
- <strong>--attribute numbered</strong>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--safe</strong>
-</dt>
-<dd>
-<p>
- Enable safe mode. Safe mode is disabled by default. AsciiDoc
- <em>safe mode</em> skips potentially dangerous scripted sections in
- AsciiDoc source files.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--theme</strong>=<em>THEME</em>
-</dt>
-<dd>
-<p>
- Specify a theme name. Synonym for <strong>--attribute theme</strong>=<em>THEME</em>.
- The <strong>--theme</strong> option is also used to manage theme plugins (see
- <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>-v, --verbose</strong>
-</dt>
-<dd>
-<p>
- Verbosely print processing information and configuration file
- checks to stderr.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>--version</strong>
-</dt>
-<dd>
-<p>
- Print program version number.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="X1">PLUGIN COMMANDS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
-to install, remove and list AsciiDoc filter, backend and theme
-plugins. Syntax:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
-asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
-asciidoc OPTION list
-asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</code></pre>
-</div></div>
-<div class="paragraph"><p>Where:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>OPTION</strong>
-</dt>
-<dd>
-<p>
- asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
- the type of plugin.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGIN_NAME</strong>
-</dt>
-<dd>
-<p>
- A unique plugin name containing only alphanumeric or underscore
- characters.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>ZIP_FILE</strong>
-</dt>
-<dd>
-<p>
- A Zip file containing plugin resources, the name must start with the
- plugin name e.g. <code>my_filter-1.0.zip</code> packages filter <code>my_filter</code>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGINS_DIR</strong>
-</dt>
-<dd>
-<p>
- The directory containing installed plugins. Each plugin is contained
- in its own separate subdirectory which has the same name as the
- plugin.
- <strong>PLUGINS_DIR</strong> defaults to the <code>$HOME/.asciidoc/filters</code> (for
- filter plugins) or <code>$HOME/.asciidoc/backends</code> (for backend plugins) or
- <code>$HOME/.asciidoc/themes</code> (for theme plugins).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>PLUGIN_SOURCE</strong>
-</dt>
-<dd>
-<p>
- The name of a directory containing the plugin source files or the
- name of a single source file.
-</p>
-</dd>
-</dl></div>
-<div class="paragraph"><p>The plugin commands perform as follows:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>install</strong>
-</dt>
-<dd>
-<p>
- Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
- plugin then extract the <strong>ZIP_FILE</strong> into it.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>remove</strong>
-</dt>
-<dd>
-<p>
- Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
- from the <strong>PLUGINS_DIR</strong>.
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>list</strong>
-</dt>
-<dd>
-<p>
- List the names and locations of all installed filter or theme
- plugins (including standard plugins installed in the global
- configuration directory).
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>build</strong>
-</dt>
-<dd>
-<p>
- Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
- subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
- names starting with a period are skipped.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_environment_variables">ENVIRONMENT VARIABLES</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong><code>SOURCE_DATE_EPOCH</code></strong>
-</dt>
-<dd>
-<p>
- If the <code>SOURCE_DATE_EPOCH</code> environment variable is set to a UNIX
- timestamp, then the <code>{docdate}</code>, <code>{doctime}</code>, <code>{localdate}</code>, and
- <code>{localtime}</code> attributes are computed in the UTC time zone, with any
- timestamps newer than <code>SOURCE_DATE_EPOCH</code> replaced by
- <code>SOURCE_DATE_EPOCH</code>. (This helps software using AsciiDoc to build
- reproducibly.)
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_examples">EXAMPLES</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<code>asciidoc asciidoc_file_name.txt</code>
-</dt>
-<dd>
-<p>
- Simply generate an html file from the asciidoc_file_name.txt that is in
- current directory using asciidoc.
-</p>
-</dd>
-<dt class="hdlist1">
-<code>asciidoc -b html5 asciidoc_file_name.txt</code>
-</dt>
-<dd>
-<p>
- Use the <code>-b</code> switch to use one of the proposed backend or another one you
- installed on your computer.
-</p>
-</dd>
-<dt class="hdlist1">
-<code>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</code>
-</dt>
-<dd>
-<p>
- Use the <code>-a</code> switch to set attributes from command-line. AsciiDoc generated
- its stand-alone HTML user guide containing embedded CSS, JavaScript and
- images from the AsciiDoc article template with this command.
-</p>
-</dd>
-<dt class="hdlist1">
-<code>asciidoc -b html5 -d manpage asciidoc.1.txt</code>
-</dt>
-<dd>
-<p>
- Generating the asciidoc manpage using the html5 backend.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_exit_status">EXIT STATUS</h2>
-<div class="sectionbody">
-<div class="dlist"><dl>
-<dt class="hdlist1">
-<strong>0</strong>
-</dt>
-<dd>
-<p>
- Success
-</p>
-</dd>
-<dt class="hdlist1">
-<strong>1</strong>
-</dt>
-<dd>
-<p>
- Failure (syntax or usage error; configuration error; document
- processing failure; unexpected error).
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bugs">BUGS</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>See the AsciiDoc distribution BUGS file.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_author">AUTHOR</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc was originally written by Stuart Rackham. Many people have
-contributed to it.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_resources">RESOURCES</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p></div>
-<div class="paragraph"><p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_see_also">SEE ALSO</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>a2x(1)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_copying">COPYING</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Copyright (C) 2002-2013 Stuart Rackham.</p></div>
-<div class="paragraph"><p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p></div>
-<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU General
-Public License version 2 (GPLv2).</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>ASCIIDOC(1)</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="manpage">
+<div id="header">
+<h1>
+ASCIIDOC(1) Manual Page
+</h1>
+<h2>NAME</h2>
+<div class="sectionbody">
+<p>asciidoc -
+ converts an AsciiDoc text file to HTML or DocBook
+</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>asciidoc</strong> [<em>OPTIONS</em>] <em>FILE</em></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The asciidoc(1) command translates the AsciiDoc text file <em>FILE</em> to
+DocBook or HTML. If <em>FILE</em> is <em>-</em> then the standard input is used.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>-a, --attribute</strong>=<em>ATTRIBUTE</em>
+</dt>
+<dd>
+<p>
+ Define or delete document attribute. <em>ATTRIBUTE</em> is formatted like
+ <em>NAME=VALUE</em>. Command-line attributes take precedence over
+ document and configuration file attributes. Alternate acceptable
+ forms are <em>NAME</em> (the <em>VALUE</em> defaults to an empty string);
+ <em>NAME!</em> (delete the <em>NAME</em> attribute); <em>NAME=VALUE@</em> (do not override
+ document or configuration file attributes). Values containing
+ spaces should be enclosed in double-quote characters. This option
+ may be specified more than once. A special attribute named
+ <em>trace</em> controls the output of diagnostic information.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-b, --backend</strong>=<em>BACKEND</em>
+</dt>
+<dd>
+<p>
+ Backend output file format: <em>docbook45</em>, <em>docbook5</em>, <em>xhtml11</em>, <em>html4</em>,
+ <em>html5</em>, <em>slidy</em>, <em>wordpress</em> or <em>latex</em> (the <em>latex</em> backend is
+ experimental). You can also use the backend alias names <em>html</em>
+ (aliased to <em>xhtml11</em>) or <em>docbook</em> (aliased to <em>docbook45</em>).
+ Defaults to <em>html</em>. The <strong>--backend</strong> option is also used to manage
+ backend plugins (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-f, --conf-file</strong>=<em>CONF_FILE</em>
+</dt>
+<dd>
+<p>
+ Use configuration file <em>CONF_FILE</em>.Configuration files processed
+ in command-line order (after implicit configuration files). This
+ option may be specified more than once.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--doctest</strong>
+</dt>
+<dd>
+<p>
+ Run Python doctests in <em>asciidoc</em> module.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-d, --doctype</strong>=<em>DOCTYPE</em>
+</dt>
+<dd>
+<p>
+ Document type: <em>article</em>, <em>manpage</em> or <em>book</em>. The <em>book</em> document
+ type is only supported by the <em>docbook</em> backends. Default document
+ type is <em>article</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-c, --dump-conf</strong>
+</dt>
+<dd>
+<p>
+ Dump configuration to stdout.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--filter</strong>=<em>FILTER</em>
+</dt>
+<dd>
+<p>
+ Specify the name of a filter to be loaded (used to load filters
+ that are not auto-loaded). This option may be specified more than
+ once. The <strong>--filter</strong> option is also used to manage filter plugins
+ (see <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-h, --help</strong> [<em>TOPIC</em>]
+</dt>
+<dd>
+<p>
+ Print help TOPIC. <strong>--help</strong> <em>topics</em> will print a list of help
+ topics, <strong>--help</strong> <em>syntax</em> summarizes AsciiDoc syntax,
+ <strong>--help</strong> <em>manpage</em> prints the AsciiDoc manpage.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-e, --no-conf</strong>
+</dt>
+<dd>
+<p>
+ Exclude implicitly loaded configuration files except for those
+ named like the input file (<em>infile.conf</em> and
+ <em>infile-backend.conf</em>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-s, --no-header-footer</strong>
+</dt>
+<dd>
+<p>
+ Suppress document header and footer output.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-o, --out-file</strong>=<em>OUT_FILE</em>
+</dt>
+<dd>
+<p>
+ Write output to file <em>OUT_FILE</em>. Defaults to the base name of
+ input file with <em>backend</em> extension. If the input is stdin then
+ the outfile defaults to stdout. If <em>OUT_FILE</em> is <em>-</em> then the
+ standard output is used.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-n, --section-numbers</strong>
+</dt>
+<dd>
+<p>
+ Auto-number HTML article section titles. Synonym for
+ <strong>--attribute numbered</strong>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--safe</strong>
+</dt>
+<dd>
+<p>
+ Enable safe mode. Safe mode is disabled by default. AsciiDoc
+ <em>safe mode</em> skips potentially dangerous scripted sections in
+ AsciiDoc source files.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--theme</strong>=<em>THEME</em>
+</dt>
+<dd>
+<p>
+ Specify a theme name. Synonym for <strong>--attribute theme</strong>=<em>THEME</em>.
+ The <strong>--theme</strong> option is also used to manage theme plugins (see
+ <a href="#X1"><strong>PLUGIN COMMANDS</strong></a>).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>-v, --verbose</strong>
+</dt>
+<dd>
+<p>
+ Verbosely print processing information and configuration file
+ checks to stderr.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>--version</strong>
+</dt>
+<dd>
+<p>
+ Print program version number.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="X1">PLUGIN COMMANDS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> and <strong>--theme</strong> options are used
+to install, remove and list AsciiDoc filter, backend and theme
+plugins. Syntax:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>asciidoc OPTION install ZIP_FILE [PLUGINS_DIR]
+asciidoc OPTION remove PLUGIN_NAME [PLUGINS_DIR]
+asciidoc OPTION list
+asciidoc OPTION build ZIP_FILE PLUGIN_SOURCE</code></pre>
+</div></div>
+<div class="paragraph"><p>Where:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>OPTION</strong>
+</dt>
+<dd>
+<p>
+ asciidoc(1) <strong>--filter</strong>, <strong>--backend</strong> or <strong>--theme</strong> option specifying
+ the type of plugin.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGIN_NAME</strong>
+</dt>
+<dd>
+<p>
+ A unique plugin name containing only alphanumeric or underscore
+ characters.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>ZIP_FILE</strong>
+</dt>
+<dd>
+<p>
+ A Zip file containing plugin resources, the name must start with the
+ plugin name e.g. <code>my_filter-1.0.zip</code> packages filter <code>my_filter</code>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGINS_DIR</strong>
+</dt>
+<dd>
+<p>
+ The directory containing installed plugins. Each plugin is contained
+ in its own separate subdirectory which has the same name as the
+ plugin.
+ <strong>PLUGINS_DIR</strong> defaults to the <code>$HOME/.asciidoc/filters</code> (for
+ filter plugins) or <code>$HOME/.asciidoc/backends</code> (for backend plugins) or
+ <code>$HOME/.asciidoc/themes</code> (for theme plugins).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>PLUGIN_SOURCE</strong>
+</dt>
+<dd>
+<p>
+ The name of a directory containing the plugin source files or the
+ name of a single source file.
+</p>
+</dd>
+</dl></div>
+<div class="paragraph"><p>The plugin commands perform as follows:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>install</strong>
+</dt>
+<dd>
+<p>
+ Create a subdirectory in <strong>PLUGINS_DIR</strong> with the same name as the
+ plugin then extract the <strong>ZIP_FILE</strong> into it.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>remove</strong>
+</dt>
+<dd>
+<p>
+ Delete the <strong>PLUGIN_NAME</strong> plugin subdirectory and all its contents
+ from the <strong>PLUGINS_DIR</strong>.
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>list</strong>
+</dt>
+<dd>
+<p>
+ List the names and locations of all installed filter or theme
+ plugins (including standard plugins installed in the global
+ configuration directory).
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>build</strong>
+</dt>
+<dd>
+<p>
+ Create a plugin file named <strong>ZIP_FILE</strong> containing the files and
+ subdirectories specified by <strong>PLUGIN_SOURCE</strong>. File and directory
+ names starting with a period are skipped.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_environment_variables">ENVIRONMENT VARIABLES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong><code>SOURCE_DATE_EPOCH</code></strong>
+</dt>
+<dd>
+<p>
+ If the <code>SOURCE_DATE_EPOCH</code> environment variable is set to a UNIX
+ timestamp, then the <code>{docdate}</code>, <code>{doctime}</code>, <code>{localdate}</code>, and
+ <code>{localtime}</code> attributes are computed in the UTC time zone, with any
+ timestamps newer than <code>SOURCE_DATE_EPOCH</code> replaced by
+ <code>SOURCE_DATE_EPOCH</code>. (This helps software using AsciiDoc to build
+ reproducibly.)
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">EXAMPLES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>asciidoc asciidoc_file_name.txt</code>
+</dt>
+<dd>
+<p>
+ Simply generate an html file from the asciidoc_file_name.txt that is in
+ current directory using asciidoc.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>asciidoc -b html5 asciidoc_file_name.txt</code>
+</dt>
+<dd>
+<p>
+ Use the <code>-b</code> switch to use one of the proposed backend or another one you
+ installed on your computer.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>asciidoc -a data-uri -a icons -a toc -a max-width=55em article.txt</code>
+</dt>
+<dd>
+<p>
+ Use the <code>-a</code> switch to set attributes from command-line. AsciiDoc generated
+ its stand-alone HTML user guide containing embedded CSS, JavaScript and
+ images from the AsciiDoc article template with this command.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>asciidoc -b html5 -d manpage asciidoc.1.txt</code>
+</dt>
+<dd>
+<p>
+ Generating the asciidoc manpage using the html5 backend.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_exit_status">EXIT STATUS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<strong>0</strong>
+</dt>
+<dd>
+<p>
+ Success
+</p>
+</dd>
+<dt class="hdlist1">
+<strong>1</strong>
+</dt>
+<dd>
+<p>
+ Failure (syntax or usage error; configuration error; document
+ processing failure; unexpected error).
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bugs">BUGS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>See the AsciiDoc distribution BUGS file.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_author">AUTHOR</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc was originally written by Stuart Rackham. Many people have
+contributed to it.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_resources">RESOURCES</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>GitHub: <a href="https://github.com/asciidoc/asciidoc-py3/">https://github.com/asciidoc/asciidoc-py3/</a></p></div>
+<div class="paragraph"><p>Main web site: <a href="https://asciidoc.org/">https://asciidoc.org/</a></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>a2x(1)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_copying">COPYING</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Copyright (C) 2002-2013 Stuart Rackham.</p></div>
+<div class="paragraph"><p>Copyright (C) 2013-2020 AsciiDoc Contributors.</p></div>
+<div class="paragraph"><p>Free use of this software is granted under the terms of the GNU General
+Public License version 2 (GPLv2).</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/asciimathml-html5.html b/tests/data/asciimathml-html5.html
index 1971ef5..0586cf8 100644
--- a/tests/data/asciimathml-html5.html
+++ b/tests/data/asciimathml-html5.html
@@ -1,1794 +1,1794 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>ASCIIMathML Formulae</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-<script type="text/javascript">
-/*<![CDATA[*/
-/*
-ASCIIMathML.js
-==============
-This file contains JavaScript functions to convert ASCII math notation
-to Presentation MathML. The conversion is done while the (X)HTML page
-loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
-Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
-Just add the next line to your (X)HTML page with this file in the same folder:
-This is a convenient and inexpensive solution for authoring MathML.
-
-Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
-Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
-For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
-If you use it on a webpage, please send the URL to jipsen@chapman.edu
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License (at http://www.gnu.org/copyleft/gpl.html)
-for more details.
-*/
-
-var checkForMathML = true; // check if browser can display MathML
-var notifyIfNoMathML = true; // display note if no MathML capability
-var alertIfNoMathML = false; // show alert box if no MathML capability
-var mathcolor = ""; // change it to "" (to inherit) or any other color
-var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
- // or another family (e.g. "arial")
-var displaystyle = true; // puts limits above and below large operators
-var showasciiformulaonhover = true; // helps students learn ASCIIMath
-var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
-var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
-var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
-var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
- // for IE this works only in <!-- -->
-//var separatetokens;// has been removed (email me if this is a problem)
-var isIE = document.createElementNS==null;
-
-if (document.getElementById==null)
- alert("This webpage requires a recent browser such as\
-\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
-
-// all further global variables start with "AM"
-
-function AMcreateElementXHTML(t) {
- if (isIE) return document.createElement(t);
- else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
-}
-
-function AMnoMathMLNote() {
- var nd = AMcreateElementXHTML("h3");
- nd.setAttribute("align","center")
- nd.appendChild(AMcreateElementXHTML("p"));
- nd.appendChild(document.createTextNode("To view the "));
- var an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("ASCIIMathML"));
- an.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
- an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("MathPlayer"));
- an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
- nd.appendChild(AMcreateElementXHTML("p"));
- return nd;
-}
-
-function AMisMathMLavailable() {
- if (navigator.appName.slice(0,8)=="Netscape")
- if (navigator.appVersion.slice(0,1)>="5") return null;
- else return AMnoMathMLNote();
- else if (navigator.appName.slice(0,9)=="Microsoft")
- try {
- var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
- return null;
- } catch (e) {
- return AMnoMathMLNote();
- }
- else return AMnoMathMLNote();
-}
-
-// character lists for Mozilla/Netscape fonts
-var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
-var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
-var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
-
-var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
- RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
- LEFTRIGHT = 9, TEXT = 10; // token types
-
-var AMsqrt = {input:"sqrt", tag:"msqrt", output:"sqrt", tex:null, ttype:UNARY},
- AMroot = {input:"root", tag:"mroot", output:"root", tex:null, ttype:BINARY},
- AMfrac = {input:"frac", tag:"mfrac", output:"/", tex:null, ttype:BINARY},
- AMdiv = {input:"/", tag:"mfrac", output:"/", tex:null, ttype:INFIX},
- AMover = {input:"stackrel", tag:"mover", output:"stackrel", tex:null, ttype:BINARY},
- AMsub = {input:"_", tag:"msub", output:"_", tex:null, ttype:INFIX},
- AMsup = {input:"^", tag:"msup", output:"^", tex:null, ttype:INFIX},
- AMtext = {input:"text", tag:"mtext", output:"text", tex:null, ttype:TEXT},
- AMmbox = {input:"mbox", tag:"mtext", output:"mbox", tex:null, ttype:TEXT},
- AMquote = {input:"\"", tag:"mtext", output:"mbox", tex:null, ttype:TEXT};
-
-var AMsymbols = [
-//some greek symbols
-{input:"alpha", tag:"mi", output:"\u03B1", tex:null, ttype:CONST},
-{input:"beta", tag:"mi", output:"\u03B2", tex:null, ttype:CONST},
-{input:"chi", tag:"mi", output:"\u03C7", tex:null, ttype:CONST},
-{input:"delta", tag:"mi", output:"\u03B4", tex:null, ttype:CONST},
-{input:"Delta", tag:"mo", output:"\u0394", tex:null, ttype:CONST},
-{input:"epsi", tag:"mi", output:"\u03B5", tex:"epsilon", ttype:CONST},
-{input:"varepsilon", tag:"mi", output:"\u025B", tex:null, ttype:CONST},
-{input:"eta", tag:"mi", output:"\u03B7", tex:null, ttype:CONST},
-{input:"gamma", tag:"mi", output:"\u03B3", tex:null, ttype:CONST},
-{input:"Gamma", tag:"mo", output:"\u0393", tex:null, ttype:CONST},
-{input:"iota", tag:"mi", output:"\u03B9", tex:null, ttype:CONST},
-{input:"kappa", tag:"mi", output:"\u03BA", tex:null, ttype:CONST},
-{input:"lambda", tag:"mi", output:"\u03BB", tex:null, ttype:CONST},
-{input:"Lambda", tag:"mo", output:"\u039B", tex:null, ttype:CONST},
-{input:"mu", tag:"mi", output:"\u03BC", tex:null, ttype:CONST},
-{input:"nu", tag:"mi", output:"\u03BD", tex:null, ttype:CONST},
-{input:"omega", tag:"mi", output:"\u03C9", tex:null, ttype:CONST},
-{input:"Omega", tag:"mo", output:"\u03A9", tex:null, ttype:CONST},
-{input:"phi", tag:"mi", output:"\u03C6", tex:null, ttype:CONST},
-{input:"varphi", tag:"mi", output:"\u03D5", tex:null, ttype:CONST},
-{input:"Phi", tag:"mo", output:"\u03A6", tex:null, ttype:CONST},
-{input:"pi", tag:"mi", output:"\u03C0", tex:null, ttype:CONST},
-{input:"Pi", tag:"mo", output:"\u03A0", tex:null, ttype:CONST},
-{input:"psi", tag:"mi", output:"\u03C8", tex:null, ttype:CONST},
-{input:"Psi", tag:"mi", output:"\u03A8", tex:null, ttype:CONST},
-{input:"rho", tag:"mi", output:"\u03C1", tex:null, ttype:CONST},
-{input:"sigma", tag:"mi", output:"\u03C3", tex:null, ttype:CONST},
-{input:"Sigma", tag:"mo", output:"\u03A3", tex:null, ttype:CONST},
-{input:"tau", tag:"mi", output:"\u03C4", tex:null, ttype:CONST},
-{input:"theta", tag:"mi", output:"\u03B8", tex:null, ttype:CONST},
-{input:"vartheta", tag:"mi", output:"\u03D1", tex:null, ttype:CONST},
-{input:"Theta", tag:"mo", output:"\u0398", tex:null, ttype:CONST},
-{input:"upsilon", tag:"mi", output:"\u03C5", tex:null, ttype:CONST},
-{input:"xi", tag:"mi", output:"\u03BE", tex:null, ttype:CONST},
-{input:"Xi", tag:"mo", output:"\u039E", tex:null, ttype:CONST},
-{input:"zeta", tag:"mi", output:"\u03B6", tex:null, ttype:CONST},
-
-//binary operation symbols
-{input:"*", tag:"mo", output:"\u22C5", tex:"cdot", ttype:CONST},
-{input:"**", tag:"mo", output:"\u22C6", tex:"star", ttype:CONST},
-{input:"//", tag:"mo", output:"/", tex:null, ttype:CONST},
-{input:"\\\\", tag:"mo", output:"\\", tex:"backslash", ttype:CONST},
-{input:"setminus", tag:"mo", output:"\\", tex:null, ttype:CONST},
-{input:"xx", tag:"mo", output:"\u00D7", tex:"times", ttype:CONST},
-{input:"-:", tag:"mo", output:"\u00F7", tex:"divide", ttype:CONST},
-{input:"@", tag:"mo", output:"\u2218", tex:"circ", ttype:CONST},
-{input:"o+", tag:"mo", output:"\u2295", tex:"oplus", ttype:CONST},
-{input:"ox", tag:"mo", output:"\u2297", tex:"otimes", ttype:CONST},
-{input:"o.", tag:"mo", output:"\u2299", tex:"odot", ttype:CONST},
-{input:"sum", tag:"mo", output:"\u2211", tex:null, ttype:UNDEROVER},
-{input:"prod", tag:"mo", output:"\u220F", tex:null, ttype:UNDEROVER},
-{input:"^^", tag:"mo", output:"\u2227", tex:"wedge", ttype:CONST},
-{input:"^^^", tag:"mo", output:"\u22C0", tex:"bigwedge", ttype:UNDEROVER},
-{input:"vv", tag:"mo", output:"\u2228", tex:"vee", ttype:CONST},
-{input:"vvv", tag:"mo", output:"\u22C1", tex:"bigvee", ttype:UNDEROVER},
-{input:"nn", tag:"mo", output:"\u2229", tex:"cap", ttype:CONST},
-{input:"nnn", tag:"mo", output:"\u22C2", tex:"bigcap", ttype:UNDEROVER},
-{input:"uu", tag:"mo", output:"\u222A", tex:"cup", ttype:CONST},
-{input:"uuu", tag:"mo", output:"\u22C3", tex:"bigcup", ttype:UNDEROVER},
-
-//binary relation symbols
-{input:"!=", tag:"mo", output:"\u2260", tex:"ne", ttype:CONST},
-{input:":=", tag:"mo", output:":=", tex:null, ttype:CONST},
-{input:"lt", tag:"mo", output:"<", tex:null, ttype:CONST},
-{input:"<=", tag:"mo", output:"\u2264", tex:"le", ttype:CONST},
-{input:"lt=", tag:"mo", output:"\u2264", tex:"leq", ttype:CONST},
-{input:">=", tag:"mo", output:"\u2265", tex:"ge", ttype:CONST},
-{input:"geq", tag:"mo", output:"\u2265", tex:null, ttype:CONST},
-{input:"-<", tag:"mo", output:"\u227A", tex:"prec", ttype:CONST},
-{input:"-lt", tag:"mo", output:"\u227A", tex:null, ttype:CONST},
-{input:">-", tag:"mo", output:"\u227B", tex:"succ", ttype:CONST},
-{input:"-<=", tag:"mo", output:"\u2AAF", tex:"preceq", ttype:CONST},
-{input:">-=", tag:"mo", output:"\u2AB0", tex:"succeq", ttype:CONST},
-{input:"in", tag:"mo", output:"\u2208", tex:null, ttype:CONST},
-{input:"!in", tag:"mo", output:"\u2209", tex:"notin", ttype:CONST},
-{input:"sub", tag:"mo", output:"\u2282", tex:"subset", ttype:CONST},
-{input:"sup", tag:"mo", output:"\u2283", tex:"supset", ttype:CONST},
-{input:"sube", tag:"mo", output:"\u2286", tex:"subseteq", ttype:CONST},
-{input:"supe", tag:"mo", output:"\u2287", tex:"supseteq", ttype:CONST},
-{input:"-=", tag:"mo", output:"\u2261", tex:"equiv", ttype:CONST},
-{input:"~=", tag:"mo", output:"\u2245", tex:"cong", ttype:CONST},
-{input:"~~", tag:"mo", output:"\u2248", tex:"approx", ttype:CONST},
-{input:"prop", tag:"mo", output:"\u221D", tex:"propto", ttype:CONST},
-
-//logical symbols
-{input:"and", tag:"mtext", output:"and", tex:null, ttype:SPACE},
-{input:"or", tag:"mtext", output:"or", tex:null, ttype:SPACE},
-{input:"not", tag:"mo", output:"\u00AC", tex:"neg", ttype:CONST},
-{input:"=>", tag:"mo", output:"\u21D2", tex:"implies", ttype:CONST},
-{input:"if", tag:"mo", output:"if", tex:null, ttype:SPACE},
-{input:"<=>", tag:"mo", output:"\u21D4", tex:"iff", ttype:CONST},
-{input:"AA", tag:"mo", output:"\u2200", tex:"forall", ttype:CONST},
-{input:"EE", tag:"mo", output:"\u2203", tex:"exists", ttype:CONST},
-{input:"_|_", tag:"mo", output:"\u22A5", tex:"bot", ttype:CONST},
-{input:"TT", tag:"mo", output:"\u22A4", tex:"top", ttype:CONST},
-{input:"|--", tag:"mo", output:"\u22A2", tex:"vdash", ttype:CONST},
-{input:"|==", tag:"mo", output:"\u22A8", tex:"models", ttype:CONST},
-
-//grouping brackets
-{input:"(", tag:"mo", output:"(", tex:null, ttype:LEFTBRACKET},
-{input:")", tag:"mo", output:")", tex:null, ttype:RIGHTBRACKET},
-{input:"[", tag:"mo", output:"[", tex:null, ttype:LEFTBRACKET},
-{input:"]", tag:"mo", output:"]", tex:null, ttype:RIGHTBRACKET},
-{input:"{", tag:"mo", output:"{", tex:null, ttype:LEFTBRACKET},
-{input:"}", tag:"mo", output:"}", tex:null, ttype:RIGHTBRACKET},
-{input:"|", tag:"mo", output:"|", tex:null, ttype:LEFTRIGHT},
-//{input:"||", tag:"mo", output:"||", tex:null, ttype:LEFTRIGHT},
-{input:"(:", tag:"mo", output:"\u2329", tex:"langle", ttype:LEFTBRACKET},
-{input:":)", tag:"mo", output:"\u232A", tex:"rangle", ttype:RIGHTBRACKET},
-{input:"<<", tag:"mo", output:"\u2329", tex:null, ttype:LEFTBRACKET},
-{input:">>", tag:"mo", output:"\u232A", tex:null, ttype:RIGHTBRACKET},
-{input:"{:", tag:"mo", output:"{:", tex:null, ttype:LEFTBRACKET, invisible:true},
-{input:":}", tag:"mo", output:":}", tex:null, ttype:RIGHTBRACKET, invisible:true},
-
-//miscellaneous symbols
-{input:"int", tag:"mo", output:"\u222B", tex:null, ttype:CONST},
-{input:"dx", tag:"mi", output:"{:d x:}", tex:null, ttype:DEFINITION},
-{input:"dy", tag:"mi", output:"{:d y:}", tex:null, ttype:DEFINITION},
-{input:"dz", tag:"mi", output:"{:d z:}", tex:null, ttype:DEFINITION},
-{input:"dt", tag:"mi", output:"{:d t:}", tex:null, ttype:DEFINITION},
-{input:"oint", tag:"mo", output:"\u222E", tex:null, ttype:CONST},
-{input:"del", tag:"mo", output:"\u2202", tex:"partial", ttype:CONST},
-{input:"grad", tag:"mo", output:"\u2207", tex:"nabla", ttype:CONST},
-{input:"+-", tag:"mo", output:"\u00B1", tex:"pm", ttype:CONST},
-{input:"O/", tag:"mo", output:"\u2205", tex:"emptyset", ttype:CONST},
-{input:"oo", tag:"mo", output:"\u221E", tex:"infty", ttype:CONST},
-{input:"aleph", tag:"mo", output:"\u2135", tex:null, ttype:CONST},
-{input:"...", tag:"mo", output:"...", tex:"ldots", ttype:CONST},
-{input:":.", tag:"mo", output:"\u2234", tex:"therefore", ttype:CONST},
-{input:"/_", tag:"mo", output:"\u2220", tex:"angle", ttype:CONST},
-{input:"\\ ", tag:"mo", output:"\u00A0", tex:null, ttype:CONST},
-{input:"quad", tag:"mo", output:"\u00A0\u00A0", tex:null, ttype:CONST},
-{input:"qquad", tag:"mo", output:"\u00A0\u00A0\u00A0\u00A0", tex:null, ttype:CONST},
-{input:"cdots", tag:"mo", output:"\u22EF", tex:null, ttype:CONST},
-{input:"vdots", tag:"mo", output:"\u22EE", tex:null, ttype:CONST},
-{input:"ddots", tag:"mo", output:"\u22F1", tex:null, ttype:CONST},
-{input:"diamond", tag:"mo", output:"\u22C4", tex:null, ttype:CONST},
-{input:"square", tag:"mo", output:"\u25A1", tex:null, ttype:CONST},
-{input:"|__", tag:"mo", output:"\u230A", tex:"lfloor", ttype:CONST},
-{input:"__|", tag:"mo", output:"\u230B", tex:"rfloor", ttype:CONST},
-{input:"|~", tag:"mo", output:"\u2308", tex:"lceiling", ttype:CONST},
-{input:"~|", tag:"mo", output:"\u2309", tex:"rceiling", ttype:CONST},
-{input:"CC", tag:"mo", output:"\u2102", tex:null, ttype:CONST},
-{input:"NN", tag:"mo", output:"\u2115", tex:null, ttype:CONST},
-{input:"QQ", tag:"mo", output:"\u211A", tex:null, ttype:CONST},
-{input:"RR", tag:"mo", output:"\u211D", tex:null, ttype:CONST},
-{input:"ZZ", tag:"mo", output:"\u2124", tex:null, ttype:CONST},
-{input:"f", tag:"mi", output:"f", tex:null, ttype:UNARY, func:true},
-{input:"g", tag:"mi", output:"g", tex:null, ttype:UNARY, func:true},
-
-//standard functions
-{input:"lim", tag:"mo", output:"lim", tex:null, ttype:UNDEROVER},
-{input:"Lim", tag:"mo", output:"Lim", tex:null, ttype:UNDEROVER},
-{input:"sin", tag:"mo", output:"sin", tex:null, ttype:UNARY, func:true},
-{input:"cos", tag:"mo", output:"cos", tex:null, ttype:UNARY, func:true},
-{input:"tan", tag:"mo", output:"tan", tex:null, ttype:UNARY, func:true},
-{input:"sinh", tag:"mo", output:"sinh", tex:null, ttype:UNARY, func:true},
-{input:"cosh", tag:"mo", output:"cosh", tex:null, ttype:UNARY, func:true},
-{input:"tanh", tag:"mo", output:"tanh", tex:null, ttype:UNARY, func:true},
-{input:"cot", tag:"mo", output:"cot", tex:null, ttype:UNARY, func:true},
-{input:"sec", tag:"mo", output:"sec", tex:null, ttype:UNARY, func:true},
-{input:"csc", tag:"mo", output:"csc", tex:null, ttype:UNARY, func:true},
-{input:"log", tag:"mo", output:"log", tex:null, ttype:UNARY, func:true},
-{input:"ln", tag:"mo", output:"ln", tex:null, ttype:UNARY, func:true},
-{input:"det", tag:"mo", output:"det", tex:null, ttype:UNARY, func:true},
-{input:"dim", tag:"mo", output:"dim", tex:null, ttype:CONST},
-{input:"mod", tag:"mo", output:"mod", tex:null, ttype:CONST},
-{input:"gcd", tag:"mo", output:"gcd", tex:null, ttype:UNARY, func:true},
-{input:"lcm", tag:"mo", output:"lcm", tex:null, ttype:UNARY, func:true},
-{input:"lub", tag:"mo", output:"lub", tex:null, ttype:CONST},
-{input:"glb", tag:"mo", output:"glb", tex:null, ttype:CONST},
-{input:"min", tag:"mo", output:"min", tex:null, ttype:UNDEROVER},
-{input:"max", tag:"mo", output:"max", tex:null, ttype:UNDEROVER},
-
-//arrows
-{input:"uarr", tag:"mo", output:"\u2191", tex:"uparrow", ttype:CONST},
-{input:"darr", tag:"mo", output:"\u2193", tex:"downarrow", ttype:CONST},
-{input:"rarr", tag:"mo", output:"\u2192", tex:"rightarrow", ttype:CONST},
-{input:"->", tag:"mo", output:"\u2192", tex:"to", ttype:CONST},
-{input:"|->", tag:"mo", output:"\u21A6", tex:"mapsto", ttype:CONST},
-{input:"larr", tag:"mo", output:"\u2190", tex:"leftarrow", ttype:CONST},
-{input:"harr", tag:"mo", output:"\u2194", tex:"leftrightarrow", ttype:CONST},
-{input:"rArr", tag:"mo", output:"\u21D2", tex:"Rightarrow", ttype:CONST},
-{input:"lArr", tag:"mo", output:"\u21D0", tex:"Leftarrow", ttype:CONST},
-{input:"hArr", tag:"mo", output:"\u21D4", tex:"Leftrightarrow", ttype:CONST},
-
-//commands with argument
-AMsqrt, AMroot, AMfrac, AMdiv, AMover, AMsub, AMsup,
-{input:"hat", tag:"mover", output:"\u005E", tex:null, ttype:UNARY, acc:true},
-{input:"bar", tag:"mover", output:"\u00AF", tex:"overline", ttype:UNARY, acc:true},
-{input:"vec", tag:"mover", output:"\u2192", tex:null, ttype:UNARY, acc:true},
-{input:"dot", tag:"mover", output:".", tex:null, ttype:UNARY, acc:true},
-{input:"ddot", tag:"mover", output:"..", tex:null, ttype:UNARY, acc:true},
-{input:"ul", tag:"munder", output:"\u0332", tex:"underline", ttype:UNARY, acc:true},
-AMtext, AMmbox, AMquote,
-{input:"bb", tag:"mstyle", atname:"fontweight", atval:"bold", output:"bb", tex:null, ttype:UNARY},
-{input:"mathbf", tag:"mstyle", atname:"fontweight", atval:"bold", output:"mathbf", tex:null, ttype:UNARY},
-{input:"sf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"sf", tex:null, ttype:UNARY},
-{input:"mathsf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"mathsf", tex:null, ttype:UNARY},
-{input:"bbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"bbb", tex:null, ttype:UNARY, codes:AMbbb},
-{input:"mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"mathbb", tex:null, ttype:UNARY, codes:AMbbb},
-{input:"cc", tag:"mstyle", atname:"mathvariant", atval:"script", output:"cc", tex:null, ttype:UNARY, codes:AMcal},
-{input:"mathcal", tag:"mstyle", atname:"mathvariant", atval:"script", output:"mathcal", tex:null, ttype:UNARY, codes:AMcal},
-{input:"tt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"tt", tex:null, ttype:UNARY},
-{input:"mathtt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"mathtt", tex:null, ttype:UNARY},
-{input:"fr", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"fr", tex:null, ttype:UNARY, codes:AMfrk},
-{input:"mathfrak", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"mathfrak", tex:null, ttype:UNARY, codes:AMfrk}
-];
-
-function compareNames(s1,s2) {
- if (s1.input > s2.input) return 1
- else return -1;
-}
-
-var AMnames = []; //list of input symbols
-
-function AMinitSymbols() {
- var texsymbols = [], i;
- for (i=0; i<AMsymbols.length; i++)
- if (AMsymbols[i].tex)
- texsymbols[texsymbols.length] = {input:AMsymbols[i].tex,
- tag:AMsymbols[i].tag, output:AMsymbols[i].output, ttype:AMsymbols[i].ttype};
- AMsymbols = AMsymbols.concat(texsymbols);
- AMsymbols.sort(compareNames);
- for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
-}
-
-var AMmathml = "http://www.w3.org/1998/Math/MathML";
-
-function AMcreateElementMathML(t) {
- if (isIE) return document.createElement("m:"+t);
- else return document.createElementNS(AMmathml,t);
-}
-
-function AMcreateMmlNode(t,frag) {
-// var node = AMcreateElementMathML(name);
- if (isIE) var node = document.createElement("m:"+t);
- else var node = document.createElementNS(AMmathml,t);
- node.appendChild(frag);
- return node;
-}
-
-function newcommand(oldstr,newstr) {
- AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
- tex:null, ttype:DEFINITION}]);
-}
-
-function AMremoveCharsAndBlanks(str,n) {
-//remove n characters and any following blanks
- var st;
- if (str.charAt(n)=="\\" && str.charAt(n+1)!="\\" && str.charAt(n+1)!=" ")
- st = str.slice(n+1);
- else st = str.slice(n);
- for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
- return st.slice(i);
-}
-
-function AMposition(arr, str, n) {
-// return position >=n where str appears or would be inserted
-// assumes arr is sorted
- if (n==0) {
- var h,m;
- n = -1;
- h = arr.length;
- while (n+1<h) {
- m = (n+h) >> 1;
- if (arr[m]<str) n = m; else h = m;
- }
- return h;
- } else
- for (var i=n; i<arr.length && arr[i]<str; i++);
- return i; // i=arr.length || arr[i]>=str
-}
-
-function AMgetSymbol(str) {
-//return maximal initial substring of str that appears in names
-//return null if there is none
- var k = 0; //new pos
- var j = 0; //old pos
- var mk; //match pos
- var st;
- var tagst;
- var match = "";
- var more = true;
- for (var i=1; i<=str.length && more; i++) {
- st = str.slice(0,i); //initial substring of length i
- j = k;
- k = AMposition(AMnames, st, j);
- if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
- match = AMnames[k];
- mk = k;
- i = match.length;
- }
- more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
- }
- AMpreviousSymbol=AMcurrentSymbol;
- if (match!=""){
- AMcurrentSymbol=AMsymbols[mk].ttype;
- return AMsymbols[mk];
- }
-// if str[0] is a digit or - return maxsubstring of digits.digits
- AMcurrentSymbol=CONST;
- k = 1;
- st = str.slice(0,1);
- var integ = true;
- while ("0"<=st && st<="9" && k<=str.length) {
- st = str.slice(k,k+1);
- k++;
- }
- if (st == decimalsign) {
- st = str.slice(k,k+1);
- if ("0"<=st && st<="9") {
- integ = false;
- k++;
- while ("0"<=st && st<="9" && k<=str.length) {
- st = str.slice(k,k+1);
- k++;
- }
- }
- }
- if ((integ && k>1) || k>2) {
- st = str.slice(0,k-1);
- tagst = "mn";
- } else {
- k = 2;
- st = str.slice(0,1); //take 1 character
- tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
- }
- if (st=="-" && AMpreviousSymbol==INFIX) {
- AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
- return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
- }
- return {input:st, tag:tagst, output:st, ttype:CONST};
-}
-
-function AMremoveBrackets(node) {
- var st;
- if (node.nodeName=="mrow") {
- st = node.firstChild.firstChild.nodeValue;
- if (st=="(" || st=="[" || st=="{") node.removeChild(node.firstChild);
- }
- if (node.nodeName=="mrow") {
- st = node.lastChild.firstChild.nodeValue;
- if (st==")" || st=="]" || st=="}") node.removeChild(node.lastChild);
- }
-}
-
-/*Parsing ASCII math expressions with the following grammar
-v ::= [A-Za-z] | greek letters | numbers | other constant symbols
-u ::= sqrt | text | bb | other unary symbols for font commands
-b ::= frac | root | stackrel binary symbols
-l ::= ( | [ | { | (: | {: left brackets
-r ::= ) | ] | } | :) | :} right brackets
-S ::= v | lEr | uS | bSS Simple expression
-I ::= S_S | S^S | S_S^S | S Intermediate expression
-E ::= IE | I/I Expression
-Each terminal symbol is translated into a corresponding mathml node.*/
-
-var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;
-
-function AMparseSexpr(str) { //parses str and returns [node,tailstr]
- var symbol, node, result, i, st,// rightvert = false,
- newFrag = document.createDocumentFragment();
- str = AMremoveCharsAndBlanks(str,0);
- symbol = AMgetSymbol(str); //either a token or a bracket or empty
- if (symbol == null || symbol.ttype == RIGHTBRACKET && AMnestingDepth > 0) {
- return [null,str];
- }
- if (symbol.ttype == DEFINITION) {
- str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- }
- switch (symbol.ttype) {
- case UNDEROVER:
- case CONST:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str];
- case LEFTBRACKET: //read (expr+)
- AMnestingDepth++;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseExpr(str,true);
- AMnestingDepth--;
- if (typeof symbol.invisible == "boolean" && symbol.invisible)
- node = AMcreateMmlNode("mrow",result[0]);
- else {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- }
- return [node,result[1]];
- case TEXT:
- if (symbol!=AMquote) str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (str.charAt(0)=="{") i=str.indexOf("}");
- else if (str.charAt(0)=="(") i=str.indexOf(")");
- else if (str.charAt(0)=="[") i=str.indexOf("]");
- else if (symbol==AMquote) i=str.slice(1).indexOf("\"")+1;
- else i = 0;
- if (i==-1) i = str.length;
- st = str.slice(1,i);
- if (st.charAt(0) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- }
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
- if (st.charAt(st.length-1) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- }
- str = AMremoveCharsAndBlanks(str,i+1);
- return [AMcreateMmlNode("mrow",newFrag),str];
- case UNARY:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
- st = str.charAt(0);
- if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- } else {
- node = AMcreateMmlNode("mrow",
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- node.appendChild(result[0]);
- return [node,result[1]];
- }
- }
- AMremoveBrackets(result[0]);
- if (symbol.input == "sqrt") { // sqrt
- return [AMcreateMmlNode(symbol.tag,result[0]),result[1]];
- } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.appendChild(AMcreateMmlNode("mo",document.createTextNode(symbol.output)));
- return [node,result[1]];
- } else { // font change command
- if (!isIE && typeof symbol.codes != "undefined") {
- for (i=0; i<result[0].childNodes.length; i++)
- if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
- st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
- result[0].childNodes[i].firstChild.nodeValue);
- var newst = [];
- for (var j=0; j<st.length; j++)
- if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
- String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
- else newst = newst + st.charAt(j);
- if (result[0].nodeName=="mi")
- result[0]=AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst));
- else result[0].replaceChild(AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
- }
- }
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.setAttribute(symbol.atname,symbol.atval);
- return [node,result[1]];
- }
- case BINARY:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str];
- AMremoveBrackets(result[0]);
- var result2 = AMparseSexpr(result[1]);
- if (result2[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str];
- AMremoveBrackets(result2[0]);
- if (symbol.input=="root" || symbol.input=="stackrel")
- newFrag.appendChild(result2[0]);
- newFrag.appendChild(result[0]);
- if (symbol.input=="frac") newFrag.appendChild(result2[0]);
- return [AMcreateMmlNode(symbol.tag,newFrag),result2[1]];
- case INFIX:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),str];
- case SPACE:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- return [AMcreateMmlNode("mrow",newFrag),str];
- case LEFTRIGHT:
-// if (rightvert) return [null,str]; else rightvert = true;
- AMnestingDepth++;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseExpr(str,false);
- AMnestingDepth--;
- var st = "";
- if (result[0].lastChild!=null)
- st = result[0].lastChild.firstChild.nodeValue;
- if (st == "|") { // its an absolute value subterm
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- return [node,result[1]];
- } else { // the "|" is a \mid
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- return [node,str];
- }
- default:
-//alert("default");
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str];
- }
-}
-
-function AMparseIexpr(str) {
- var symbol, sym1, sym2, node, result, underover;
- str = AMremoveCharsAndBlanks(str,0);
- sym1 = AMgetSymbol(str);
- result = AMparseSexpr(str);
- node = result[0];
- str = result[1];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX && symbol.input != "/") {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
-// if (symbol.input == "/") result = AMparseIexpr(str); else ...
- result = AMparseSexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- else AMremoveBrackets(result[0]);
- str = result[1];
-// if (symbol.input == "/") AMremoveBrackets(node);
- if (symbol.input == "_") {
- sym2 = AMgetSymbol(str);
- underover = (sym1.ttype == UNDEROVER);
- if (sym2.input == "^") {
- str = AMremoveCharsAndBlanks(str,sym2.input.length);
- var res2 = AMparseSexpr(str);
- AMremoveBrackets(res2[0]);
- str = res2[1];
- node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
- node.appendChild(result[0]);
- node.appendChild(res2[0]);
- node = AMcreateMmlNode("mrow",node); // so sum does not stretch
- } else {
- node = AMcreateMmlNode((underover?"munder":"msub"),node);
- node.appendChild(result[0]);
- }
- } else {
- node = AMcreateMmlNode(symbol.tag,node);
- node.appendChild(result[0]);
- }
- }
- return [node,str];
-}
-
-function AMparseExpr(str,rightbracket) {
- var symbol, node, result, i, nodeList = [],
- newFrag = document.createDocumentFragment();
- do {
- str = AMremoveCharsAndBlanks(str,0);
- result = AMparseIexpr(str);
- node = result[0];
- str = result[1];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX && symbol.input == "/") {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseIexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- else AMremoveBrackets(result[0]);
- str = result[1];
- AMremoveBrackets(node);
- node = AMcreateMmlNode(symbol.tag,node);
- node.appendChild(result[0]);
- newFrag.appendChild(node);
- symbol = AMgetSymbol(str);
- }
- else if (node!=undefined) newFrag.appendChild(node);
- } while ((symbol.ttype != RIGHTBRACKET &&
- (symbol.ttype != LEFTRIGHT || rightbracket)
- || AMnestingDepth == 0) && symbol!=null && symbol.output!="");
- if (symbol.ttype == RIGHTBRACKET || symbol.ttype == LEFTRIGHT) {
-// if (AMnestingDepth > 0) AMnestingDepth--;
- var len = newFrag.childNodes.length;
- if (len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
- newFrag.childNodes[len-2].nodeName == "mo" &&
- newFrag.childNodes[len-2].firstChild.nodeValue == ",") { //matrix
- var right = newFrag.childNodes[len-1].lastChild.firstChild.nodeValue;
- if (right==")" || right=="]") {
- var left = newFrag.childNodes[len-1].firstChild.firstChild.nodeValue;
- if (left=="(" && right==")" && symbol.output != "}" ||
- left=="[" && right=="]") {
- var pos = []; // positions of commas
- var matrix = true;
- var m = newFrag.childNodes.length;
- for (i=0; matrix && i<m; i=i+2) {
- pos[i] = [];
- node = newFrag.childNodes[i];
- if (matrix) matrix = node.nodeName=="mrow" &&
- (i==m-1 || node.nextSibling.nodeName=="mo" &&
- node.nextSibling.firstChild.nodeValue==",")&&
- node.firstChild.firstChild.nodeValue==left &&
- node.lastChild.firstChild.nodeValue==right;
- if (matrix)
- for (var j=0; j<node.childNodes.length; j++)
- if (node.childNodes[j].firstChild.nodeValue==",")
- pos[i][pos[i].length]=j;
- if (matrix && i>1) matrix = pos[i].length == pos[i-2].length;
- }
- if (matrix) {
- var row, frag, n, k, table = document.createDocumentFragment();
- for (i=0; i<m; i=i+2) {
- row = document.createDocumentFragment();
- frag = document.createDocumentFragment();
- node = newFrag.firstChild; // <mrow>(-,-,...,-,-)</mrow>
- n = node.childNodes.length;
- k = 0;
- node.removeChild(node.firstChild); //remove (
- for (j=1; j<n-1; j++) {
- if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
- node.removeChild(node.firstChild); //remove ,
- row.appendChild(AMcreateMmlNode("mtd",frag));
- k++;
- } else frag.appendChild(node.firstChild);
- }
- row.appendChild(AMcreateMmlNode("mtd",frag));
- if (newFrag.childNodes.length>2) {
- newFrag.removeChild(newFrag.firstChild); //remove <mrow>)</mrow>
- newFrag.removeChild(newFrag.firstChild); //remove <mo>,</mo>
- }
- table.appendChild(AMcreateMmlNode("mtr",row));
- }
- node = AMcreateMmlNode("mtable",table);
- if (typeof symbol.invisible == "boolean" && symbol.invisible) node.setAttribute("columnalign","left");
- newFrag.replaceChild(node,newFrag.firstChild);
- }
- }
- }
- }
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- newFrag.appendChild(node);
- }
- }
- return [newFrag,str];
-}
-
-function AMparseMath(str) {
- var result, node = AMcreateElementMathML("mstyle");
- if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
- if (displaystyle) node.setAttribute("displaystyle","true");
- if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
- AMnestingDepth = 0;
- node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false)[0]);
- node = AMcreateMmlNode("math",node);
- if (showasciiformulaonhover) //fixed by djhsu so newline
- node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
- if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
- var fnode = AMcreateElementXHTML("font");
- fnode.setAttribute("face",mathfontfamily);
- fnode.appendChild(node);
- return fnode;
- }
- return node;
-}
-
-function AMstrarr2docFrag(arr, linebreaks) {
- var newFrag=document.createDocumentFragment();
- var expr = false;
- for (var i=0; i<arr.length; i++) {
- if (expr) newFrag.appendChild(AMparseMath(arr[i]));
- else {
- var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[0])));
- for (var j=1; j<arri.length; j++) {
- newFrag.appendChild(AMcreateElementXHTML("p"));
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[j])));
- }
- }
- expr = !expr;
- }
- return newFrag;
-}
-
-function AMprocessNodeR(n, linebreaks) {
- var mtch, str, arr, frg, i;
- if (n.childNodes.length == 0) {
- if ((n.nodeType!=8 || linebreaks) &&
- n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
- n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
- n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
- str = n.nodeValue;
- if (!(str == null)) {
- str = str.replace(/\r\n\r\n/g,"\n\n");
- if (doubleblankmathdelimiter) {
- str = str.replace(/\x20\x20\./g," "+AMdelimiter1+".");
- str = str.replace(/\x20\x20,/g," "+AMdelimiter1+",");
- str = str.replace(/\x20\x20/g," "+AMdelimiter1+" ");
- }
- str = str.replace(/\x20+/g," ");
- str = str.replace(/\s*\r\n/g," ");
- mtch = false;
- str = str.replace(new RegExp(AMescape2, "g"),
- function(st){mtch=true;return "AMescape2"});
- str = str.replace(new RegExp(AMescape1, "g"),
- function(st){mtch=true;return "AMescape1"});
- str = str.replace(new RegExp(AMdelimiter2regexp, "g"),AMdelimiter1);
- arr = str.split(AMdelimiter1);
- for (i=0; i<arr.length; i++)
- arr[i]=arr[i].replace(/AMescape2/g,AMdelimiter2).
- replace(/AMescape1/g,AMdelimiter1);
- if (arr.length>1 || mtch) {
- if (checkForMathML) {
- checkForMathML = false;
- var nd = AMisMathMLavailable();
- AMnoMathML = nd != null;
- if (AMnoMathML && notifyIfNoMathML)
- if (alertIfNoMathML)
- alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
- or Firefox/Mozilla/Netscape");
- else AMbody.insertBefore(nd,AMbody.childNodes[0]);
- }
- if (!AMnoMathML) {
- frg = AMstrarr2docFrag(arr,n.nodeType==8);
- var len = frg.childNodes.length;
- n.parentNode.replaceChild(frg,n);
- return len-1;
- } else return 0;
- }
- }
- } else return 0;
- } else if (n.nodeName!="math") {
- for (i=0; i<n.childNodes.length; i++)
- i += AMprocessNodeR(n.childNodes[i], linebreaks);
- }
- return 0;
-}
-
-function AMprocessNode(n, linebreaks, spanclassAM) {
- var frag,st;
- if (spanclassAM!=null) {
- frag = document.getElementsByTagName("span")
- for (var i=0;i<frag.length;i++)
- if (frag[i].className == "AM")
- AMprocessNodeR(frag[i],linebreaks);
- } else {
- try {
- st = n.innerHTML;
- } catch(err) {}
- if (st==null ||
- st.indexOf(AMdelimiter1)!=-1 || st.indexOf(AMdelimiter2)!=-1)
- AMprocessNodeR(n,linebreaks);
- }
- if (isIE) { //needed to match size and font of formula to surrounding text
- frag = document.getElementsByTagName('math');
- for (var i=0;i<frag.length;i++) frag[i].update()
- }
-}
-
-var AMbody;
-var AMnoMathML = false, AMtranslated = false;
-
-function translate(spanclassAM) {
- if (!AMtranslated) { // run this only once
- AMtranslated = true;
- AMinitSymbols();
- AMbody = document.getElementsByTagName("body")[0];
- AMprocessNode(AMbody, false, spanclassAM);
- }
-}
-
-if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
- document.write("<object id=\"mathplayer\"\
- classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
- document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
-}
-
-// GO1.1 Generic onload by Brothercake
-// http://www.brothercake.com/
-//onload function (replaces the onload="translate()" in the <body> tag)
-function generic()
-{
- translate();
-};
-//setup onload function
-if(typeof window.addEventListener != 'undefined')
-{
- //.. gecko, safari, konqueror and standard
- window.addEventListener('load', generic, false);
-}
-else if(typeof document.addEventListener != 'undefined')
-{
- //.. opera 7
- document.addEventListener('load', generic, false);
-}
-else if(typeof window.attachEvent != 'undefined')
-{
- //.. win/ie
- window.attachEvent('onload', generic);
-}
-//** remove this condition to degrade older browsers
-else
-{
- //.. mac/ie5 and anything else that gets this far
- //if there's an existing onload function
- if(typeof window.onload == 'function')
- {
- //store it
- var existing = onload;
- //add new onload handler
- window.onload = function()
- {
- //call existing onload function
- existing();
- //call generic onload function
- generic();
- };
- }
- else
- {
- //setup onload function
- window.onload = generic;
- }
-}
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>ASCIIMathML Formulae</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a> is
-a clever JavaScript written by Peter Jipsen that dynamically
-transforms mathematical formulae written in a wiki-like plain text
-markup to <a href="http://www.w3.org/Math/">MathML</a> markup which is displayed as
-standard mathematical notation by the Web Browser. See <em>Appendix E</em>
-in the AsciiDoc User Guide for more details.</p></div>
-<div class="paragraph"><p>The AsciiDoc <span class="monospaced">xhtml11</span> backend supports ASCIIMathML&#8201;&#8212;&#8201;it links the
-ASCIIMathML script and escapes ASCIIMathML delimiters and special
-characters to yield valid XHTML. To use ASCIIMathML:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Include the <span class="monospaced">-a asciimath</span> command-line option when you run
- <span class="monospaced">asciidoc(1)</span>.
-</p>
-</li>
-<li>
-<p>
-Enclose ASCIIMathML formulas inside math or double-dollar
- passthroughs or in math passthrough blocks.
-</p>
-</li>
-</ol></div>
-<div class="paragraph"><p>Here&#8217;s the <a href="asciimathml.txt">AsciiDoc source</a> that generated this
-page.</p></div>
-<div class="ulist"><div class="title">NOTE</div><ul>
-<li>
-<p>
-When you use the <span class="monospaced">asciimath:[]</span> inline macro you need to escape <span class="monospaced">]</span>
- characters in the formulas with a backslash, escaping is unnecessary
- if you use the double-dollar macro (for examples see the second
- formula below).
-</p>
-</li>
-<li>
-<p>
-See the
- <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
- website for ASCIIMathML documentation and the latest version.
-</p>
-</li>
-<li>
-<p>
-If the formulas don&#8217;t appear to be correct you probably need to
- install the correct math fonts (see the
- <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
- website for details).
-</p>
-</li>
-<li>
-<p>
-See the <a href="latexmathml.html">LaTeXMathML page</a> if you prefer to use
- LaTeX math formulas.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>A list of example formulas:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-`[[a,b],[c,d]]((n),(k))`
-</p>
-</li>
-<li>
-<p>
-`x/x={(1,if x!=0),(text{undefined},if x=0):}`
-</p>
-</li>
-<li>
-<p>
-`d/dxf(x)=lim_(h-&gt;0)(f(x+h)-f(x))/h`
-</p>
-</li>
-<li>
-<p>
-`sum_(i=1)\^n i=(n(n+1))/2`$ and <strong>bold
- `int_0\^(pi/2) sinx\ dx=1`</strong>
-</p>
-</li>
-<li>
-<p>
-`(a,b]={x in RR : a &lt; x &lt;= b}`
-</p>
-</li>
-<li>
-<p>
-`x^2+y_1+z_12^34`
-</p>
-</li>
-</ul></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="paragraph"><p>The first three terms factor to give
-`(x+b/(2a))^2=(b^2)/(4a^2)-c/a`.</p></div>
-<div class="paragraph"><p>`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.</p></div>
-<div class="paragraph"><p>Now we take square roots on both sides and get
-`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.
-Finally we move the `b/(2a)` to the right and simplify to
-get the two solutions:
-<strong>`x_(1,2)=(-b+-sqrt(b^2-4ac))/(2a)`</strong>.</p></div>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>ASCIIMathML Formulae</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+<script type="text/javascript">
+/*<![CDATA[*/
+/*
+ASCIIMathML.js
+==============
+This file contains JavaScript functions to convert ASCII math notation
+to Presentation MathML. The conversion is done while the (X)HTML page
+loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
+Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
+Just add the next line to your (X)HTML page with this file in the same folder:
+This is a convenient and inexpensive solution for authoring MathML.
+
+Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
+Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
+For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
+If you use it on a webpage, please send the URL to jipsen@chapman.edu
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License (at http://www.gnu.org/copyleft/gpl.html)
+for more details.
+*/
+
+var checkForMathML = true; // check if browser can display MathML
+var notifyIfNoMathML = true; // display note if no MathML capability
+var alertIfNoMathML = false; // show alert box if no MathML capability
+var mathcolor = ""; // change it to "" (to inherit) or any other color
+var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
+ // or another family (e.g. "arial")
+var displaystyle = true; // puts limits above and below large operators
+var showasciiformulaonhover = true; // helps students learn ASCIIMath
+var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
+var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
+var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
+var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
+ // for IE this works only in <!-- -->
+//var separatetokens;// has been removed (email me if this is a problem)
+var isIE = document.createElementNS==null;
+
+if (document.getElementById==null)
+ alert("This webpage requires a recent browser such as\
+\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
+
+// all further global variables start with "AM"
+
+function AMcreateElementXHTML(t) {
+ if (isIE) return document.createElement(t);
+ else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
+}
+
+function AMnoMathMLNote() {
+ var nd = AMcreateElementXHTML("h3");
+ nd.setAttribute("align","center")
+ nd.appendChild(AMcreateElementXHTML("p"));
+ nd.appendChild(document.createTextNode("To view the "));
+ var an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("ASCIIMathML"));
+ an.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
+ an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("MathPlayer"));
+ an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
+ nd.appendChild(AMcreateElementXHTML("p"));
+ return nd;
+}
+
+function AMisMathMLavailable() {
+ if (navigator.appName.slice(0,8)=="Netscape")
+ if (navigator.appVersion.slice(0,1)>="5") return null;
+ else return AMnoMathMLNote();
+ else if (navigator.appName.slice(0,9)=="Microsoft")
+ try {
+ var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
+ return null;
+ } catch (e) {
+ return AMnoMathMLNote();
+ }
+ else return AMnoMathMLNote();
+}
+
+// character lists for Mozilla/Netscape fonts
+var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
+var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
+var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
+
+var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
+ RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
+ LEFTRIGHT = 9, TEXT = 10; // token types
+
+var AMsqrt = {input:"sqrt", tag:"msqrt", output:"sqrt", tex:null, ttype:UNARY},
+ AMroot = {input:"root", tag:"mroot", output:"root", tex:null, ttype:BINARY},
+ AMfrac = {input:"frac", tag:"mfrac", output:"/", tex:null, ttype:BINARY},
+ AMdiv = {input:"/", tag:"mfrac", output:"/", tex:null, ttype:INFIX},
+ AMover = {input:"stackrel", tag:"mover", output:"stackrel", tex:null, ttype:BINARY},
+ AMsub = {input:"_", tag:"msub", output:"_", tex:null, ttype:INFIX},
+ AMsup = {input:"^", tag:"msup", output:"^", tex:null, ttype:INFIX},
+ AMtext = {input:"text", tag:"mtext", output:"text", tex:null, ttype:TEXT},
+ AMmbox = {input:"mbox", tag:"mtext", output:"mbox", tex:null, ttype:TEXT},
+ AMquote = {input:"\"", tag:"mtext", output:"mbox", tex:null, ttype:TEXT};
+
+var AMsymbols = [
+//some greek symbols
+{input:"alpha", tag:"mi", output:"\u03B1", tex:null, ttype:CONST},
+{input:"beta", tag:"mi", output:"\u03B2", tex:null, ttype:CONST},
+{input:"chi", tag:"mi", output:"\u03C7", tex:null, ttype:CONST},
+{input:"delta", tag:"mi", output:"\u03B4", tex:null, ttype:CONST},
+{input:"Delta", tag:"mo", output:"\u0394", tex:null, ttype:CONST},
+{input:"epsi", tag:"mi", output:"\u03B5", tex:"epsilon", ttype:CONST},
+{input:"varepsilon", tag:"mi", output:"\u025B", tex:null, ttype:CONST},
+{input:"eta", tag:"mi", output:"\u03B7", tex:null, ttype:CONST},
+{input:"gamma", tag:"mi", output:"\u03B3", tex:null, ttype:CONST},
+{input:"Gamma", tag:"mo", output:"\u0393", tex:null, ttype:CONST},
+{input:"iota", tag:"mi", output:"\u03B9", tex:null, ttype:CONST},
+{input:"kappa", tag:"mi", output:"\u03BA", tex:null, ttype:CONST},
+{input:"lambda", tag:"mi", output:"\u03BB", tex:null, ttype:CONST},
+{input:"Lambda", tag:"mo", output:"\u039B", tex:null, ttype:CONST},
+{input:"mu", tag:"mi", output:"\u03BC", tex:null, ttype:CONST},
+{input:"nu", tag:"mi", output:"\u03BD", tex:null, ttype:CONST},
+{input:"omega", tag:"mi", output:"\u03C9", tex:null, ttype:CONST},
+{input:"Omega", tag:"mo", output:"\u03A9", tex:null, ttype:CONST},
+{input:"phi", tag:"mi", output:"\u03C6", tex:null, ttype:CONST},
+{input:"varphi", tag:"mi", output:"\u03D5", tex:null, ttype:CONST},
+{input:"Phi", tag:"mo", output:"\u03A6", tex:null, ttype:CONST},
+{input:"pi", tag:"mi", output:"\u03C0", tex:null, ttype:CONST},
+{input:"Pi", tag:"mo", output:"\u03A0", tex:null, ttype:CONST},
+{input:"psi", tag:"mi", output:"\u03C8", tex:null, ttype:CONST},
+{input:"Psi", tag:"mi", output:"\u03A8", tex:null, ttype:CONST},
+{input:"rho", tag:"mi", output:"\u03C1", tex:null, ttype:CONST},
+{input:"sigma", tag:"mi", output:"\u03C3", tex:null, ttype:CONST},
+{input:"Sigma", tag:"mo", output:"\u03A3", tex:null, ttype:CONST},
+{input:"tau", tag:"mi", output:"\u03C4", tex:null, ttype:CONST},
+{input:"theta", tag:"mi", output:"\u03B8", tex:null, ttype:CONST},
+{input:"vartheta", tag:"mi", output:"\u03D1", tex:null, ttype:CONST},
+{input:"Theta", tag:"mo", output:"\u0398", tex:null, ttype:CONST},
+{input:"upsilon", tag:"mi", output:"\u03C5", tex:null, ttype:CONST},
+{input:"xi", tag:"mi", output:"\u03BE", tex:null, ttype:CONST},
+{input:"Xi", tag:"mo", output:"\u039E", tex:null, ttype:CONST},
+{input:"zeta", tag:"mi", output:"\u03B6", tex:null, ttype:CONST},
+
+//binary operation symbols
+{input:"*", tag:"mo", output:"\u22C5", tex:"cdot", ttype:CONST},
+{input:"**", tag:"mo", output:"\u22C6", tex:"star", ttype:CONST},
+{input:"//", tag:"mo", output:"/", tex:null, ttype:CONST},
+{input:"\\\\", tag:"mo", output:"\\", tex:"backslash", ttype:CONST},
+{input:"setminus", tag:"mo", output:"\\", tex:null, ttype:CONST},
+{input:"xx", tag:"mo", output:"\u00D7", tex:"times", ttype:CONST},
+{input:"-:", tag:"mo", output:"\u00F7", tex:"divide", ttype:CONST},
+{input:"@", tag:"mo", output:"\u2218", tex:"circ", ttype:CONST},
+{input:"o+", tag:"mo", output:"\u2295", tex:"oplus", ttype:CONST},
+{input:"ox", tag:"mo", output:"\u2297", tex:"otimes", ttype:CONST},
+{input:"o.", tag:"mo", output:"\u2299", tex:"odot", ttype:CONST},
+{input:"sum", tag:"mo", output:"\u2211", tex:null, ttype:UNDEROVER},
+{input:"prod", tag:"mo", output:"\u220F", tex:null, ttype:UNDEROVER},
+{input:"^^", tag:"mo", output:"\u2227", tex:"wedge", ttype:CONST},
+{input:"^^^", tag:"mo", output:"\u22C0", tex:"bigwedge", ttype:UNDEROVER},
+{input:"vv", tag:"mo", output:"\u2228", tex:"vee", ttype:CONST},
+{input:"vvv", tag:"mo", output:"\u22C1", tex:"bigvee", ttype:UNDEROVER},
+{input:"nn", tag:"mo", output:"\u2229", tex:"cap", ttype:CONST},
+{input:"nnn", tag:"mo", output:"\u22C2", tex:"bigcap", ttype:UNDEROVER},
+{input:"uu", tag:"mo", output:"\u222A", tex:"cup", ttype:CONST},
+{input:"uuu", tag:"mo", output:"\u22C3", tex:"bigcup", ttype:UNDEROVER},
+
+//binary relation symbols
+{input:"!=", tag:"mo", output:"\u2260", tex:"ne", ttype:CONST},
+{input:":=", tag:"mo", output:":=", tex:null, ttype:CONST},
+{input:"lt", tag:"mo", output:"<", tex:null, ttype:CONST},
+{input:"<=", tag:"mo", output:"\u2264", tex:"le", ttype:CONST},
+{input:"lt=", tag:"mo", output:"\u2264", tex:"leq", ttype:CONST},
+{input:">=", tag:"mo", output:"\u2265", tex:"ge", ttype:CONST},
+{input:"geq", tag:"mo", output:"\u2265", tex:null, ttype:CONST},
+{input:"-<", tag:"mo", output:"\u227A", tex:"prec", ttype:CONST},
+{input:"-lt", tag:"mo", output:"\u227A", tex:null, ttype:CONST},
+{input:">-", tag:"mo", output:"\u227B", tex:"succ", ttype:CONST},
+{input:"-<=", tag:"mo", output:"\u2AAF", tex:"preceq", ttype:CONST},
+{input:">-=", tag:"mo", output:"\u2AB0", tex:"succeq", ttype:CONST},
+{input:"in", tag:"mo", output:"\u2208", tex:null, ttype:CONST},
+{input:"!in", tag:"mo", output:"\u2209", tex:"notin", ttype:CONST},
+{input:"sub", tag:"mo", output:"\u2282", tex:"subset", ttype:CONST},
+{input:"sup", tag:"mo", output:"\u2283", tex:"supset", ttype:CONST},
+{input:"sube", tag:"mo", output:"\u2286", tex:"subseteq", ttype:CONST},
+{input:"supe", tag:"mo", output:"\u2287", tex:"supseteq", ttype:CONST},
+{input:"-=", tag:"mo", output:"\u2261", tex:"equiv", ttype:CONST},
+{input:"~=", tag:"mo", output:"\u2245", tex:"cong", ttype:CONST},
+{input:"~~", tag:"mo", output:"\u2248", tex:"approx", ttype:CONST},
+{input:"prop", tag:"mo", output:"\u221D", tex:"propto", ttype:CONST},
+
+//logical symbols
+{input:"and", tag:"mtext", output:"and", tex:null, ttype:SPACE},
+{input:"or", tag:"mtext", output:"or", tex:null, ttype:SPACE},
+{input:"not", tag:"mo", output:"\u00AC", tex:"neg", ttype:CONST},
+{input:"=>", tag:"mo", output:"\u21D2", tex:"implies", ttype:CONST},
+{input:"if", tag:"mo", output:"if", tex:null, ttype:SPACE},
+{input:"<=>", tag:"mo", output:"\u21D4", tex:"iff", ttype:CONST},
+{input:"AA", tag:"mo", output:"\u2200", tex:"forall", ttype:CONST},
+{input:"EE", tag:"mo", output:"\u2203", tex:"exists", ttype:CONST},
+{input:"_|_", tag:"mo", output:"\u22A5", tex:"bot", ttype:CONST},
+{input:"TT", tag:"mo", output:"\u22A4", tex:"top", ttype:CONST},
+{input:"|--", tag:"mo", output:"\u22A2", tex:"vdash", ttype:CONST},
+{input:"|==", tag:"mo", output:"\u22A8", tex:"models", ttype:CONST},
+
+//grouping brackets
+{input:"(", tag:"mo", output:"(", tex:null, ttype:LEFTBRACKET},
+{input:")", tag:"mo", output:")", tex:null, ttype:RIGHTBRACKET},
+{input:"[", tag:"mo", output:"[", tex:null, ttype:LEFTBRACKET},
+{input:"]", tag:"mo", output:"]", tex:null, ttype:RIGHTBRACKET},
+{input:"{", tag:"mo", output:"{", tex:null, ttype:LEFTBRACKET},
+{input:"}", tag:"mo", output:"}", tex:null, ttype:RIGHTBRACKET},
+{input:"|", tag:"mo", output:"|", tex:null, ttype:LEFTRIGHT},
+//{input:"||", tag:"mo", output:"||", tex:null, ttype:LEFTRIGHT},
+{input:"(:", tag:"mo", output:"\u2329", tex:"langle", ttype:LEFTBRACKET},
+{input:":)", tag:"mo", output:"\u232A", tex:"rangle", ttype:RIGHTBRACKET},
+{input:"<<", tag:"mo", output:"\u2329", tex:null, ttype:LEFTBRACKET},
+{input:">>", tag:"mo", output:"\u232A", tex:null, ttype:RIGHTBRACKET},
+{input:"{:", tag:"mo", output:"{:", tex:null, ttype:LEFTBRACKET, invisible:true},
+{input:":}", tag:"mo", output:":}", tex:null, ttype:RIGHTBRACKET, invisible:true},
+
+//miscellaneous symbols
+{input:"int", tag:"mo", output:"\u222B", tex:null, ttype:CONST},
+{input:"dx", tag:"mi", output:"{:d x:}", tex:null, ttype:DEFINITION},
+{input:"dy", tag:"mi", output:"{:d y:}", tex:null, ttype:DEFINITION},
+{input:"dz", tag:"mi", output:"{:d z:}", tex:null, ttype:DEFINITION},
+{input:"dt", tag:"mi", output:"{:d t:}", tex:null, ttype:DEFINITION},
+{input:"oint", tag:"mo", output:"\u222E", tex:null, ttype:CONST},
+{input:"del", tag:"mo", output:"\u2202", tex:"partial", ttype:CONST},
+{input:"grad", tag:"mo", output:"\u2207", tex:"nabla", ttype:CONST},
+{input:"+-", tag:"mo", output:"\u00B1", tex:"pm", ttype:CONST},
+{input:"O/", tag:"mo", output:"\u2205", tex:"emptyset", ttype:CONST},
+{input:"oo", tag:"mo", output:"\u221E", tex:"infty", ttype:CONST},
+{input:"aleph", tag:"mo", output:"\u2135", tex:null, ttype:CONST},
+{input:"...", tag:"mo", output:"...", tex:"ldots", ttype:CONST},
+{input:":.", tag:"mo", output:"\u2234", tex:"therefore", ttype:CONST},
+{input:"/_", tag:"mo", output:"\u2220", tex:"angle", ttype:CONST},
+{input:"\\ ", tag:"mo", output:"\u00A0", tex:null, ttype:CONST},
+{input:"quad", tag:"mo", output:"\u00A0\u00A0", tex:null, ttype:CONST},
+{input:"qquad", tag:"mo", output:"\u00A0\u00A0\u00A0\u00A0", tex:null, ttype:CONST},
+{input:"cdots", tag:"mo", output:"\u22EF", tex:null, ttype:CONST},
+{input:"vdots", tag:"mo", output:"\u22EE", tex:null, ttype:CONST},
+{input:"ddots", tag:"mo", output:"\u22F1", tex:null, ttype:CONST},
+{input:"diamond", tag:"mo", output:"\u22C4", tex:null, ttype:CONST},
+{input:"square", tag:"mo", output:"\u25A1", tex:null, ttype:CONST},
+{input:"|__", tag:"mo", output:"\u230A", tex:"lfloor", ttype:CONST},
+{input:"__|", tag:"mo", output:"\u230B", tex:"rfloor", ttype:CONST},
+{input:"|~", tag:"mo", output:"\u2308", tex:"lceiling", ttype:CONST},
+{input:"~|", tag:"mo", output:"\u2309", tex:"rceiling", ttype:CONST},
+{input:"CC", tag:"mo", output:"\u2102", tex:null, ttype:CONST},
+{input:"NN", tag:"mo", output:"\u2115", tex:null, ttype:CONST},
+{input:"QQ", tag:"mo", output:"\u211A", tex:null, ttype:CONST},
+{input:"RR", tag:"mo", output:"\u211D", tex:null, ttype:CONST},
+{input:"ZZ", tag:"mo", output:"\u2124", tex:null, ttype:CONST},
+{input:"f", tag:"mi", output:"f", tex:null, ttype:UNARY, func:true},
+{input:"g", tag:"mi", output:"g", tex:null, ttype:UNARY, func:true},
+
+//standard functions
+{input:"lim", tag:"mo", output:"lim", tex:null, ttype:UNDEROVER},
+{input:"Lim", tag:"mo", output:"Lim", tex:null, ttype:UNDEROVER},
+{input:"sin", tag:"mo", output:"sin", tex:null, ttype:UNARY, func:true},
+{input:"cos", tag:"mo", output:"cos", tex:null, ttype:UNARY, func:true},
+{input:"tan", tag:"mo", output:"tan", tex:null, ttype:UNARY, func:true},
+{input:"sinh", tag:"mo", output:"sinh", tex:null, ttype:UNARY, func:true},
+{input:"cosh", tag:"mo", output:"cosh", tex:null, ttype:UNARY, func:true},
+{input:"tanh", tag:"mo", output:"tanh", tex:null, ttype:UNARY, func:true},
+{input:"cot", tag:"mo", output:"cot", tex:null, ttype:UNARY, func:true},
+{input:"sec", tag:"mo", output:"sec", tex:null, ttype:UNARY, func:true},
+{input:"csc", tag:"mo", output:"csc", tex:null, ttype:UNARY, func:true},
+{input:"log", tag:"mo", output:"log", tex:null, ttype:UNARY, func:true},
+{input:"ln", tag:"mo", output:"ln", tex:null, ttype:UNARY, func:true},
+{input:"det", tag:"mo", output:"det", tex:null, ttype:UNARY, func:true},
+{input:"dim", tag:"mo", output:"dim", tex:null, ttype:CONST},
+{input:"mod", tag:"mo", output:"mod", tex:null, ttype:CONST},
+{input:"gcd", tag:"mo", output:"gcd", tex:null, ttype:UNARY, func:true},
+{input:"lcm", tag:"mo", output:"lcm", tex:null, ttype:UNARY, func:true},
+{input:"lub", tag:"mo", output:"lub", tex:null, ttype:CONST},
+{input:"glb", tag:"mo", output:"glb", tex:null, ttype:CONST},
+{input:"min", tag:"mo", output:"min", tex:null, ttype:UNDEROVER},
+{input:"max", tag:"mo", output:"max", tex:null, ttype:UNDEROVER},
+
+//arrows
+{input:"uarr", tag:"mo", output:"\u2191", tex:"uparrow", ttype:CONST},
+{input:"darr", tag:"mo", output:"\u2193", tex:"downarrow", ttype:CONST},
+{input:"rarr", tag:"mo", output:"\u2192", tex:"rightarrow", ttype:CONST},
+{input:"->", tag:"mo", output:"\u2192", tex:"to", ttype:CONST},
+{input:"|->", tag:"mo", output:"\u21A6", tex:"mapsto", ttype:CONST},
+{input:"larr", tag:"mo", output:"\u2190", tex:"leftarrow", ttype:CONST},
+{input:"harr", tag:"mo", output:"\u2194", tex:"leftrightarrow", ttype:CONST},
+{input:"rArr", tag:"mo", output:"\u21D2", tex:"Rightarrow", ttype:CONST},
+{input:"lArr", tag:"mo", output:"\u21D0", tex:"Leftarrow", ttype:CONST},
+{input:"hArr", tag:"mo", output:"\u21D4", tex:"Leftrightarrow", ttype:CONST},
+
+//commands with argument
+AMsqrt, AMroot, AMfrac, AMdiv, AMover, AMsub, AMsup,
+{input:"hat", tag:"mover", output:"\u005E", tex:null, ttype:UNARY, acc:true},
+{input:"bar", tag:"mover", output:"\u00AF", tex:"overline", ttype:UNARY, acc:true},
+{input:"vec", tag:"mover", output:"\u2192", tex:null, ttype:UNARY, acc:true},
+{input:"dot", tag:"mover", output:".", tex:null, ttype:UNARY, acc:true},
+{input:"ddot", tag:"mover", output:"..", tex:null, ttype:UNARY, acc:true},
+{input:"ul", tag:"munder", output:"\u0332", tex:"underline", ttype:UNARY, acc:true},
+AMtext, AMmbox, AMquote,
+{input:"bb", tag:"mstyle", atname:"fontweight", atval:"bold", output:"bb", tex:null, ttype:UNARY},
+{input:"mathbf", tag:"mstyle", atname:"fontweight", atval:"bold", output:"mathbf", tex:null, ttype:UNARY},
+{input:"sf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"sf", tex:null, ttype:UNARY},
+{input:"mathsf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"mathsf", tex:null, ttype:UNARY},
+{input:"bbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"bbb", tex:null, ttype:UNARY, codes:AMbbb},
+{input:"mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"mathbb", tex:null, ttype:UNARY, codes:AMbbb},
+{input:"cc", tag:"mstyle", atname:"mathvariant", atval:"script", output:"cc", tex:null, ttype:UNARY, codes:AMcal},
+{input:"mathcal", tag:"mstyle", atname:"mathvariant", atval:"script", output:"mathcal", tex:null, ttype:UNARY, codes:AMcal},
+{input:"tt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"tt", tex:null, ttype:UNARY},
+{input:"mathtt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"mathtt", tex:null, ttype:UNARY},
+{input:"fr", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"fr", tex:null, ttype:UNARY, codes:AMfrk},
+{input:"mathfrak", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"mathfrak", tex:null, ttype:UNARY, codes:AMfrk}
+];
+
+function compareNames(s1,s2) {
+ if (s1.input > s2.input) return 1
+ else return -1;
+}
+
+var AMnames = []; //list of input symbols
+
+function AMinitSymbols() {
+ var texsymbols = [], i;
+ for (i=0; i<AMsymbols.length; i++)
+ if (AMsymbols[i].tex)
+ texsymbols[texsymbols.length] = {input:AMsymbols[i].tex,
+ tag:AMsymbols[i].tag, output:AMsymbols[i].output, ttype:AMsymbols[i].ttype};
+ AMsymbols = AMsymbols.concat(texsymbols);
+ AMsymbols.sort(compareNames);
+ for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
+}
+
+var AMmathml = "http://www.w3.org/1998/Math/MathML";
+
+function AMcreateElementMathML(t) {
+ if (isIE) return document.createElement("m:"+t);
+ else return document.createElementNS(AMmathml,t);
+}
+
+function AMcreateMmlNode(t,frag) {
+// var node = AMcreateElementMathML(name);
+ if (isIE) var node = document.createElement("m:"+t);
+ else var node = document.createElementNS(AMmathml,t);
+ node.appendChild(frag);
+ return node;
+}
+
+function newcommand(oldstr,newstr) {
+ AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
+ tex:null, ttype:DEFINITION}]);
+}
+
+function AMremoveCharsAndBlanks(str,n) {
+//remove n characters and any following blanks
+ var st;
+ if (str.charAt(n)=="\\" && str.charAt(n+1)!="\\" && str.charAt(n+1)!=" ")
+ st = str.slice(n+1);
+ else st = str.slice(n);
+ for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
+ return st.slice(i);
+}
+
+function AMposition(arr, str, n) {
+// return position >=n where str appears or would be inserted
+// assumes arr is sorted
+ if (n==0) {
+ var h,m;
+ n = -1;
+ h = arr.length;
+ while (n+1<h) {
+ m = (n+h) >> 1;
+ if (arr[m]<str) n = m; else h = m;
+ }
+ return h;
+ } else
+ for (var i=n; i<arr.length && arr[i]<str; i++);
+ return i; // i=arr.length || arr[i]>=str
+}
+
+function AMgetSymbol(str) {
+//return maximal initial substring of str that appears in names
+//return null if there is none
+ var k = 0; //new pos
+ var j = 0; //old pos
+ var mk; //match pos
+ var st;
+ var tagst;
+ var match = "";
+ var more = true;
+ for (var i=1; i<=str.length && more; i++) {
+ st = str.slice(0,i); //initial substring of length i
+ j = k;
+ k = AMposition(AMnames, st, j);
+ if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
+ match = AMnames[k];
+ mk = k;
+ i = match.length;
+ }
+ more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
+ }
+ AMpreviousSymbol=AMcurrentSymbol;
+ if (match!=""){
+ AMcurrentSymbol=AMsymbols[mk].ttype;
+ return AMsymbols[mk];
+ }
+// if str[0] is a digit or - return maxsubstring of digits.digits
+ AMcurrentSymbol=CONST;
+ k = 1;
+ st = str.slice(0,1);
+ var integ = true;
+ while ("0"<=st && st<="9" && k<=str.length) {
+ st = str.slice(k,k+1);
+ k++;
+ }
+ if (st == decimalsign) {
+ st = str.slice(k,k+1);
+ if ("0"<=st && st<="9") {
+ integ = false;
+ k++;
+ while ("0"<=st && st<="9" && k<=str.length) {
+ st = str.slice(k,k+1);
+ k++;
+ }
+ }
+ }
+ if ((integ && k>1) || k>2) {
+ st = str.slice(0,k-1);
+ tagst = "mn";
+ } else {
+ k = 2;
+ st = str.slice(0,1); //take 1 character
+ tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
+ }
+ if (st=="-" && AMpreviousSymbol==INFIX) {
+ AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
+ return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
+ }
+ return {input:st, tag:tagst, output:st, ttype:CONST};
+}
+
+function AMremoveBrackets(node) {
+ var st;
+ if (node.nodeName=="mrow") {
+ st = node.firstChild.firstChild.nodeValue;
+ if (st=="(" || st=="[" || st=="{") node.removeChild(node.firstChild);
+ }
+ if (node.nodeName=="mrow") {
+ st = node.lastChild.firstChild.nodeValue;
+ if (st==")" || st=="]" || st=="}") node.removeChild(node.lastChild);
+ }
+}
+
+/*Parsing ASCII math expressions with the following grammar
+v ::= [A-Za-z] | greek letters | numbers | other constant symbols
+u ::= sqrt | text | bb | other unary symbols for font commands
+b ::= frac | root | stackrel binary symbols
+l ::= ( | [ | { | (: | {: left brackets
+r ::= ) | ] | } | :) | :} right brackets
+S ::= v | lEr | uS | bSS Simple expression
+I ::= S_S | S^S | S_S^S | S Intermediate expression
+E ::= IE | I/I Expression
+Each terminal symbol is translated into a corresponding mathml node.*/
+
+var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;
+
+function AMparseSexpr(str) { //parses str and returns [node,tailstr]
+ var symbol, node, result, i, st,// rightvert = false,
+ newFrag = document.createDocumentFragment();
+ str = AMremoveCharsAndBlanks(str,0);
+ symbol = AMgetSymbol(str); //either a token or a bracket or empty
+ if (symbol == null || symbol.ttype == RIGHTBRACKET && AMnestingDepth > 0) {
+ return [null,str];
+ }
+ if (symbol.ttype == DEFINITION) {
+ str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ }
+ switch (symbol.ttype) {
+ case UNDEROVER:
+ case CONST:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str];
+ case LEFTBRACKET: //read (expr+)
+ AMnestingDepth++;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseExpr(str,true);
+ AMnestingDepth--;
+ if (typeof symbol.invisible == "boolean" && symbol.invisible)
+ node = AMcreateMmlNode("mrow",result[0]);
+ else {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ }
+ return [node,result[1]];
+ case TEXT:
+ if (symbol!=AMquote) str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (str.charAt(0)=="{") i=str.indexOf("}");
+ else if (str.charAt(0)=="(") i=str.indexOf(")");
+ else if (str.charAt(0)=="[") i=str.indexOf("]");
+ else if (symbol==AMquote) i=str.slice(1).indexOf("\"")+1;
+ else i = 0;
+ if (i==-1) i = str.length;
+ st = str.slice(1,i);
+ if (st.charAt(0) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ }
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
+ if (st.charAt(st.length-1) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ }
+ str = AMremoveCharsAndBlanks(str,i+1);
+ return [AMcreateMmlNode("mrow",newFrag),str];
+ case UNARY:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
+ st = str.charAt(0);
+ if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ } else {
+ node = AMcreateMmlNode("mrow",
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ node.appendChild(result[0]);
+ return [node,result[1]];
+ }
+ }
+ AMremoveBrackets(result[0]);
+ if (symbol.input == "sqrt") { // sqrt
+ return [AMcreateMmlNode(symbol.tag,result[0]),result[1]];
+ } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.appendChild(AMcreateMmlNode("mo",document.createTextNode(symbol.output)));
+ return [node,result[1]];
+ } else { // font change command
+ if (!isIE && typeof symbol.codes != "undefined") {
+ for (i=0; i<result[0].childNodes.length; i++)
+ if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
+ st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
+ result[0].childNodes[i].firstChild.nodeValue);
+ var newst = [];
+ for (var j=0; j<st.length; j++)
+ if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
+ String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
+ else newst = newst + st.charAt(j);
+ if (result[0].nodeName=="mi")
+ result[0]=AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst));
+ else result[0].replaceChild(AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.setAttribute(symbol.atname,symbol.atval);
+ return [node,result[1]];
+ }
+ case BINARY:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str];
+ AMremoveBrackets(result[0]);
+ var result2 = AMparseSexpr(result[1]);
+ if (result2[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str];
+ AMremoveBrackets(result2[0]);
+ if (symbol.input=="root" || symbol.input=="stackrel")
+ newFrag.appendChild(result2[0]);
+ newFrag.appendChild(result[0]);
+ if (symbol.input=="frac") newFrag.appendChild(result2[0]);
+ return [AMcreateMmlNode(symbol.tag,newFrag),result2[1]];
+ case INFIX:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),str];
+ case SPACE:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ return [AMcreateMmlNode("mrow",newFrag),str];
+ case LEFTRIGHT:
+// if (rightvert) return [null,str]; else rightvert = true;
+ AMnestingDepth++;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseExpr(str,false);
+ AMnestingDepth--;
+ var st = "";
+ if (result[0].lastChild!=null)
+ st = result[0].lastChild.firstChild.nodeValue;
+ if (st == "|") { // its an absolute value subterm
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ return [node,result[1]];
+ } else { // the "|" is a \mid
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ return [node,str];
+ }
+ default:
+//alert("default");
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str];
+ }
+}
+
+function AMparseIexpr(str) {
+ var symbol, sym1, sym2, node, result, underover;
+ str = AMremoveCharsAndBlanks(str,0);
+ sym1 = AMgetSymbol(str);
+ result = AMparseSexpr(str);
+ node = result[0];
+ str = result[1];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX && symbol.input != "/") {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+// if (symbol.input == "/") result = AMparseIexpr(str); else ...
+ result = AMparseSexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ else AMremoveBrackets(result[0]);
+ str = result[1];
+// if (symbol.input == "/") AMremoveBrackets(node);
+ if (symbol.input == "_") {
+ sym2 = AMgetSymbol(str);
+ underover = (sym1.ttype == UNDEROVER);
+ if (sym2.input == "^") {
+ str = AMremoveCharsAndBlanks(str,sym2.input.length);
+ var res2 = AMparseSexpr(str);
+ AMremoveBrackets(res2[0]);
+ str = res2[1];
+ node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
+ node.appendChild(result[0]);
+ node.appendChild(res2[0]);
+ node = AMcreateMmlNode("mrow",node); // so sum does not stretch
+ } else {
+ node = AMcreateMmlNode((underover?"munder":"msub"),node);
+ node.appendChild(result[0]);
+ }
+ } else {
+ node = AMcreateMmlNode(symbol.tag,node);
+ node.appendChild(result[0]);
+ }
+ }
+ return [node,str];
+}
+
+function AMparseExpr(str,rightbracket) {
+ var symbol, node, result, i, nodeList = [],
+ newFrag = document.createDocumentFragment();
+ do {
+ str = AMremoveCharsAndBlanks(str,0);
+ result = AMparseIexpr(str);
+ node = result[0];
+ str = result[1];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX && symbol.input == "/") {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseIexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ else AMremoveBrackets(result[0]);
+ str = result[1];
+ AMremoveBrackets(node);
+ node = AMcreateMmlNode(symbol.tag,node);
+ node.appendChild(result[0]);
+ newFrag.appendChild(node);
+ symbol = AMgetSymbol(str);
+ }
+ else if (node!=undefined) newFrag.appendChild(node);
+ } while ((symbol.ttype != RIGHTBRACKET &&
+ (symbol.ttype != LEFTRIGHT || rightbracket)
+ || AMnestingDepth == 0) && symbol!=null && symbol.output!="");
+ if (symbol.ttype == RIGHTBRACKET || symbol.ttype == LEFTRIGHT) {
+// if (AMnestingDepth > 0) AMnestingDepth--;
+ var len = newFrag.childNodes.length;
+ if (len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
+ newFrag.childNodes[len-2].nodeName == "mo" &&
+ newFrag.childNodes[len-2].firstChild.nodeValue == ",") { //matrix
+ var right = newFrag.childNodes[len-1].lastChild.firstChild.nodeValue;
+ if (right==")" || right=="]") {
+ var left = newFrag.childNodes[len-1].firstChild.firstChild.nodeValue;
+ if (left=="(" && right==")" && symbol.output != "}" ||
+ left=="[" && right=="]") {
+ var pos = []; // positions of commas
+ var matrix = true;
+ var m = newFrag.childNodes.length;
+ for (i=0; matrix && i<m; i=i+2) {
+ pos[i] = [];
+ node = newFrag.childNodes[i];
+ if (matrix) matrix = node.nodeName=="mrow" &&
+ (i==m-1 || node.nextSibling.nodeName=="mo" &&
+ node.nextSibling.firstChild.nodeValue==",")&&
+ node.firstChild.firstChild.nodeValue==left &&
+ node.lastChild.firstChild.nodeValue==right;
+ if (matrix)
+ for (var j=0; j<node.childNodes.length; j++)
+ if (node.childNodes[j].firstChild.nodeValue==",")
+ pos[i][pos[i].length]=j;
+ if (matrix && i>1) matrix = pos[i].length == pos[i-2].length;
+ }
+ if (matrix) {
+ var row, frag, n, k, table = document.createDocumentFragment();
+ for (i=0; i<m; i=i+2) {
+ row = document.createDocumentFragment();
+ frag = document.createDocumentFragment();
+ node = newFrag.firstChild; // <mrow>(-,-,...,-,-)</mrow>
+ n = node.childNodes.length;
+ k = 0;
+ node.removeChild(node.firstChild); //remove (
+ for (j=1; j<n-1; j++) {
+ if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
+ node.removeChild(node.firstChild); //remove ,
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ k++;
+ } else frag.appendChild(node.firstChild);
+ }
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ if (newFrag.childNodes.length>2) {
+ newFrag.removeChild(newFrag.firstChild); //remove <mrow>)</mrow>
+ newFrag.removeChild(newFrag.firstChild); //remove <mo>,</mo>
+ }
+ table.appendChild(AMcreateMmlNode("mtr",row));
+ }
+ node = AMcreateMmlNode("mtable",table);
+ if (typeof symbol.invisible == "boolean" && symbol.invisible) node.setAttribute("columnalign","left");
+ newFrag.replaceChild(node,newFrag.firstChild);
+ }
+ }
+ }
+ }
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ newFrag.appendChild(node);
+ }
+ }
+ return [newFrag,str];
+}
+
+function AMparseMath(str) {
+ var result, node = AMcreateElementMathML("mstyle");
+ if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
+ if (displaystyle) node.setAttribute("displaystyle","true");
+ if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
+ AMnestingDepth = 0;
+ node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false)[0]);
+ node = AMcreateMmlNode("math",node);
+ if (showasciiformulaonhover) //fixed by djhsu so newline
+ node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
+ if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
+ var fnode = AMcreateElementXHTML("font");
+ fnode.setAttribute("face",mathfontfamily);
+ fnode.appendChild(node);
+ return fnode;
+ }
+ return node;
+}
+
+function AMstrarr2docFrag(arr, linebreaks) {
+ var newFrag=document.createDocumentFragment();
+ var expr = false;
+ for (var i=0; i<arr.length; i++) {
+ if (expr) newFrag.appendChild(AMparseMath(arr[i]));
+ else {
+ var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[0])));
+ for (var j=1; j<arri.length; j++) {
+ newFrag.appendChild(AMcreateElementXHTML("p"));
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[j])));
+ }
+ }
+ expr = !expr;
+ }
+ return newFrag;
+}
+
+function AMprocessNodeR(n, linebreaks) {
+ var mtch, str, arr, frg, i;
+ if (n.childNodes.length == 0) {
+ if ((n.nodeType!=8 || linebreaks) &&
+ n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
+ n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
+ n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
+ str = n.nodeValue;
+ if (!(str == null)) {
+ str = str.replace(/\r\n\r\n/g,"\n\n");
+ if (doubleblankmathdelimiter) {
+ str = str.replace(/\x20\x20\./g," "+AMdelimiter1+".");
+ str = str.replace(/\x20\x20,/g," "+AMdelimiter1+",");
+ str = str.replace(/\x20\x20/g," "+AMdelimiter1+" ");
+ }
+ str = str.replace(/\x20+/g," ");
+ str = str.replace(/\s*\r\n/g," ");
+ mtch = false;
+ str = str.replace(new RegExp(AMescape2, "g"),
+ function(st){mtch=true;return "AMescape2"});
+ str = str.replace(new RegExp(AMescape1, "g"),
+ function(st){mtch=true;return "AMescape1"});
+ str = str.replace(new RegExp(AMdelimiter2regexp, "g"),AMdelimiter1);
+ arr = str.split(AMdelimiter1);
+ for (i=0; i<arr.length; i++)
+ arr[i]=arr[i].replace(/AMescape2/g,AMdelimiter2).
+ replace(/AMescape1/g,AMdelimiter1);
+ if (arr.length>1 || mtch) {
+ if (checkForMathML) {
+ checkForMathML = false;
+ var nd = AMisMathMLavailable();
+ AMnoMathML = nd != null;
+ if (AMnoMathML && notifyIfNoMathML)
+ if (alertIfNoMathML)
+ alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
+ or Firefox/Mozilla/Netscape");
+ else AMbody.insertBefore(nd,AMbody.childNodes[0]);
+ }
+ if (!AMnoMathML) {
+ frg = AMstrarr2docFrag(arr,n.nodeType==8);
+ var len = frg.childNodes.length;
+ n.parentNode.replaceChild(frg,n);
+ return len-1;
+ } else return 0;
+ }
+ }
+ } else return 0;
+ } else if (n.nodeName!="math") {
+ for (i=0; i<n.childNodes.length; i++)
+ i += AMprocessNodeR(n.childNodes[i], linebreaks);
+ }
+ return 0;
+}
+
+function AMprocessNode(n, linebreaks, spanclassAM) {
+ var frag,st;
+ if (spanclassAM!=null) {
+ frag = document.getElementsByTagName("span")
+ for (var i=0;i<frag.length;i++)
+ if (frag[i].className == "AM")
+ AMprocessNodeR(frag[i],linebreaks);
+ } else {
+ try {
+ st = n.innerHTML;
+ } catch(err) {}
+ if (st==null ||
+ st.indexOf(AMdelimiter1)!=-1 || st.indexOf(AMdelimiter2)!=-1)
+ AMprocessNodeR(n,linebreaks);
+ }
+ if (isIE) { //needed to match size and font of formula to surrounding text
+ frag = document.getElementsByTagName('math');
+ for (var i=0;i<frag.length;i++) frag[i].update()
+ }
+}
+
+var AMbody;
+var AMnoMathML = false, AMtranslated = false;
+
+function translate(spanclassAM) {
+ if (!AMtranslated) { // run this only once
+ AMtranslated = true;
+ AMinitSymbols();
+ AMbody = document.getElementsByTagName("body")[0];
+ AMprocessNode(AMbody, false, spanclassAM);
+ }
+}
+
+if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
+ document.write("<object id=\"mathplayer\"\
+ classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
+ document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
+}
+
+// GO1.1 Generic onload by Brothercake
+// http://www.brothercake.com/
+//onload function (replaces the onload="translate()" in the <body> tag)
+function generic()
+{
+ translate();
+};
+//setup onload function
+if(typeof window.addEventListener != 'undefined')
+{
+ //.. gecko, safari, konqueror and standard
+ window.addEventListener('load', generic, false);
+}
+else if(typeof document.addEventListener != 'undefined')
+{
+ //.. opera 7
+ document.addEventListener('load', generic, false);
+}
+else if(typeof window.attachEvent != 'undefined')
+{
+ //.. win/ie
+ window.attachEvent('onload', generic);
+}
+//** remove this condition to degrade older browsers
+else
+{
+ //.. mac/ie5 and anything else that gets this far
+ //if there's an existing onload function
+ if(typeof window.onload == 'function')
+ {
+ //store it
+ var existing = onload;
+ //add new onload handler
+ window.onload = function()
+ {
+ //call existing onload function
+ existing();
+ //call generic onload function
+ generic();
+ };
+ }
+ else
+ {
+ //setup onload function
+ window.onload = generic;
+ }
+}
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>ASCIIMathML Formulae</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a> is
+a clever JavaScript written by Peter Jipsen that dynamically
+transforms mathematical formulae written in a wiki-like plain text
+markup to <a href="http://www.w3.org/Math/">MathML</a> markup which is displayed as
+standard mathematical notation by the Web Browser. See <em>Appendix E</em>
+in the AsciiDoc User Guide for more details.</p></div>
+<div class="paragraph"><p>The AsciiDoc <span class="monospaced">xhtml11</span> backend supports ASCIIMathML&#8201;&#8212;&#8201;it links the
+ASCIIMathML script and escapes ASCIIMathML delimiters and special
+characters to yield valid XHTML. To use ASCIIMathML:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Include the <span class="monospaced">-a asciimath</span> command-line option when you run
+ <span class="monospaced">asciidoc(1)</span>.
+</p>
+</li>
+<li>
+<p>
+Enclose ASCIIMathML formulas inside math or double-dollar
+ passthroughs or in math passthrough blocks.
+</p>
+</li>
+</ol></div>
+<div class="paragraph"><p>Here&#8217;s the <a href="asciimathml.txt">AsciiDoc source</a> that generated this
+page.</p></div>
+<div class="ulist"><div class="title">NOTE</div><ul>
+<li>
+<p>
+When you use the <span class="monospaced">asciimath:[]</span> inline macro you need to escape <span class="monospaced">]</span>
+ characters in the formulas with a backslash, escaping is unnecessary
+ if you use the double-dollar macro (for examples see the second
+ formula below).
+</p>
+</li>
+<li>
+<p>
+See the
+ <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
+ website for ASCIIMathML documentation and the latest version.
+</p>
+</li>
+<li>
+<p>
+If the formulas don&#8217;t appear to be correct you probably need to
+ install the correct math fonts (see the
+ <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
+ website for details).
+</p>
+</li>
+<li>
+<p>
+See the <a href="latexmathml.html">LaTeXMathML page</a> if you prefer to use
+ LaTeX math formulas.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>A list of example formulas:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+`[[a,b],[c,d]]((n),(k))`
+</p>
+</li>
+<li>
+<p>
+`x/x={(1,if x!=0),(text{undefined},if x=0):}`
+</p>
+</li>
+<li>
+<p>
+`d/dxf(x)=lim_(h-&gt;0)(f(x+h)-f(x))/h`
+</p>
+</li>
+<li>
+<p>
+`sum_(i=1)\^n i=(n(n+1))/2`$ and <strong>bold
+ `int_0\^(pi/2) sinx\ dx=1`</strong>
+</p>
+</li>
+<li>
+<p>
+`(a,b]={x in RR : a &lt; x &lt;= b}`
+</p>
+</li>
+<li>
+<p>
+`x^2+y_1+z_12^34`
+</p>
+</li>
+</ul></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="paragraph"><p>The first three terms factor to give
+`(x+b/(2a))^2=(b^2)/(4a^2)-c/a`.</p></div>
+<div class="paragraph"><p>`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.</p></div>
+<div class="paragraph"><p>Now we take square roots on both sides and get
+`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.
+Finally we move the `b/(2a)` to the right and simplify to
+get the two solutions:
+<strong>`x_(1,2)=(-b+-sqrt(b^2-4ac))/(2a)`</strong>.</p></div>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/asciimathml-xhtml11.html b/tests/data/asciimathml-xhtml11.html
index 3aac988..ce43b24 100644
--- a/tests/data/asciimathml-xhtml11.html
+++ b/tests/data/asciimathml-xhtml11.html
@@ -1,1796 +1,1796 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>ASCIIMathML Formulae</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-<script type="text/javascript">
-/*<![CDATA[*/
-/*
-ASCIIMathML.js
-==============
-This file contains JavaScript functions to convert ASCII math notation
-to Presentation MathML. The conversion is done while the (X)HTML page
-loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
-Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
-Just add the next line to your (X)HTML page with this file in the same folder:
-This is a convenient and inexpensive solution for authoring MathML.
-
-Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
-Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
-For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
-If you use it on a webpage, please send the URL to jipsen@chapman.edu
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License (at http://www.gnu.org/copyleft/gpl.html)
-for more details.
-*/
-
-var checkForMathML = true; // check if browser can display MathML
-var notifyIfNoMathML = true; // display note if no MathML capability
-var alertIfNoMathML = false; // show alert box if no MathML capability
-var mathcolor = ""; // change it to "" (to inherit) or any other color
-var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
- // or another family (e.g. "arial")
-var displaystyle = true; // puts limits above and below large operators
-var showasciiformulaonhover = true; // helps students learn ASCIIMath
-var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
-var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
-var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
-var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
- // for IE this works only in <!-- -->
-//var separatetokens;// has been removed (email me if this is a problem)
-var isIE = document.createElementNS==null;
-
-if (document.getElementById==null)
- alert("This webpage requires a recent browser such as\
-\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
-
-// all further global variables start with "AM"
-
-function AMcreateElementXHTML(t) {
- if (isIE) return document.createElement(t);
- else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
-}
-
-function AMnoMathMLNote() {
- var nd = AMcreateElementXHTML("h3");
- nd.setAttribute("align","center")
- nd.appendChild(AMcreateElementXHTML("p"));
- nd.appendChild(document.createTextNode("To view the "));
- var an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("ASCIIMathML"));
- an.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
- an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("MathPlayer"));
- an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
- nd.appendChild(AMcreateElementXHTML("p"));
- return nd;
-}
-
-function AMisMathMLavailable() {
- if (navigator.appName.slice(0,8)=="Netscape")
- if (navigator.appVersion.slice(0,1)>="5") return null;
- else return AMnoMathMLNote();
- else if (navigator.appName.slice(0,9)=="Microsoft")
- try {
- var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
- return null;
- } catch (e) {
- return AMnoMathMLNote();
- }
- else return AMnoMathMLNote();
-}
-
-// character lists for Mozilla/Netscape fonts
-var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
-var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
-var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
-
-var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
- RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
- LEFTRIGHT = 9, TEXT = 10; // token types
-
-var AMsqrt = {input:"sqrt", tag:"msqrt", output:"sqrt", tex:null, ttype:UNARY},
- AMroot = {input:"root", tag:"mroot", output:"root", tex:null, ttype:BINARY},
- AMfrac = {input:"frac", tag:"mfrac", output:"/", tex:null, ttype:BINARY},
- AMdiv = {input:"/", tag:"mfrac", output:"/", tex:null, ttype:INFIX},
- AMover = {input:"stackrel", tag:"mover", output:"stackrel", tex:null, ttype:BINARY},
- AMsub = {input:"_", tag:"msub", output:"_", tex:null, ttype:INFIX},
- AMsup = {input:"^", tag:"msup", output:"^", tex:null, ttype:INFIX},
- AMtext = {input:"text", tag:"mtext", output:"text", tex:null, ttype:TEXT},
- AMmbox = {input:"mbox", tag:"mtext", output:"mbox", tex:null, ttype:TEXT},
- AMquote = {input:"\"", tag:"mtext", output:"mbox", tex:null, ttype:TEXT};
-
-var AMsymbols = [
-//some greek symbols
-{input:"alpha", tag:"mi", output:"\u03B1", tex:null, ttype:CONST},
-{input:"beta", tag:"mi", output:"\u03B2", tex:null, ttype:CONST},
-{input:"chi", tag:"mi", output:"\u03C7", tex:null, ttype:CONST},
-{input:"delta", tag:"mi", output:"\u03B4", tex:null, ttype:CONST},
-{input:"Delta", tag:"mo", output:"\u0394", tex:null, ttype:CONST},
-{input:"epsi", tag:"mi", output:"\u03B5", tex:"epsilon", ttype:CONST},
-{input:"varepsilon", tag:"mi", output:"\u025B", tex:null, ttype:CONST},
-{input:"eta", tag:"mi", output:"\u03B7", tex:null, ttype:CONST},
-{input:"gamma", tag:"mi", output:"\u03B3", tex:null, ttype:CONST},
-{input:"Gamma", tag:"mo", output:"\u0393", tex:null, ttype:CONST},
-{input:"iota", tag:"mi", output:"\u03B9", tex:null, ttype:CONST},
-{input:"kappa", tag:"mi", output:"\u03BA", tex:null, ttype:CONST},
-{input:"lambda", tag:"mi", output:"\u03BB", tex:null, ttype:CONST},
-{input:"Lambda", tag:"mo", output:"\u039B", tex:null, ttype:CONST},
-{input:"mu", tag:"mi", output:"\u03BC", tex:null, ttype:CONST},
-{input:"nu", tag:"mi", output:"\u03BD", tex:null, ttype:CONST},
-{input:"omega", tag:"mi", output:"\u03C9", tex:null, ttype:CONST},
-{input:"Omega", tag:"mo", output:"\u03A9", tex:null, ttype:CONST},
-{input:"phi", tag:"mi", output:"\u03C6", tex:null, ttype:CONST},
-{input:"varphi", tag:"mi", output:"\u03D5", tex:null, ttype:CONST},
-{input:"Phi", tag:"mo", output:"\u03A6", tex:null, ttype:CONST},
-{input:"pi", tag:"mi", output:"\u03C0", tex:null, ttype:CONST},
-{input:"Pi", tag:"mo", output:"\u03A0", tex:null, ttype:CONST},
-{input:"psi", tag:"mi", output:"\u03C8", tex:null, ttype:CONST},
-{input:"Psi", tag:"mi", output:"\u03A8", tex:null, ttype:CONST},
-{input:"rho", tag:"mi", output:"\u03C1", tex:null, ttype:CONST},
-{input:"sigma", tag:"mi", output:"\u03C3", tex:null, ttype:CONST},
-{input:"Sigma", tag:"mo", output:"\u03A3", tex:null, ttype:CONST},
-{input:"tau", tag:"mi", output:"\u03C4", tex:null, ttype:CONST},
-{input:"theta", tag:"mi", output:"\u03B8", tex:null, ttype:CONST},
-{input:"vartheta", tag:"mi", output:"\u03D1", tex:null, ttype:CONST},
-{input:"Theta", tag:"mo", output:"\u0398", tex:null, ttype:CONST},
-{input:"upsilon", tag:"mi", output:"\u03C5", tex:null, ttype:CONST},
-{input:"xi", tag:"mi", output:"\u03BE", tex:null, ttype:CONST},
-{input:"Xi", tag:"mo", output:"\u039E", tex:null, ttype:CONST},
-{input:"zeta", tag:"mi", output:"\u03B6", tex:null, ttype:CONST},
-
-//binary operation symbols
-{input:"*", tag:"mo", output:"\u22C5", tex:"cdot", ttype:CONST},
-{input:"**", tag:"mo", output:"\u22C6", tex:"star", ttype:CONST},
-{input:"//", tag:"mo", output:"/", tex:null, ttype:CONST},
-{input:"\\\\", tag:"mo", output:"\\", tex:"backslash", ttype:CONST},
-{input:"setminus", tag:"mo", output:"\\", tex:null, ttype:CONST},
-{input:"xx", tag:"mo", output:"\u00D7", tex:"times", ttype:CONST},
-{input:"-:", tag:"mo", output:"\u00F7", tex:"divide", ttype:CONST},
-{input:"@", tag:"mo", output:"\u2218", tex:"circ", ttype:CONST},
-{input:"o+", tag:"mo", output:"\u2295", tex:"oplus", ttype:CONST},
-{input:"ox", tag:"mo", output:"\u2297", tex:"otimes", ttype:CONST},
-{input:"o.", tag:"mo", output:"\u2299", tex:"odot", ttype:CONST},
-{input:"sum", tag:"mo", output:"\u2211", tex:null, ttype:UNDEROVER},
-{input:"prod", tag:"mo", output:"\u220F", tex:null, ttype:UNDEROVER},
-{input:"^^", tag:"mo", output:"\u2227", tex:"wedge", ttype:CONST},
-{input:"^^^", tag:"mo", output:"\u22C0", tex:"bigwedge", ttype:UNDEROVER},
-{input:"vv", tag:"mo", output:"\u2228", tex:"vee", ttype:CONST},
-{input:"vvv", tag:"mo", output:"\u22C1", tex:"bigvee", ttype:UNDEROVER},
-{input:"nn", tag:"mo", output:"\u2229", tex:"cap", ttype:CONST},
-{input:"nnn", tag:"mo", output:"\u22C2", tex:"bigcap", ttype:UNDEROVER},
-{input:"uu", tag:"mo", output:"\u222A", tex:"cup", ttype:CONST},
-{input:"uuu", tag:"mo", output:"\u22C3", tex:"bigcup", ttype:UNDEROVER},
-
-//binary relation symbols
-{input:"!=", tag:"mo", output:"\u2260", tex:"ne", ttype:CONST},
-{input:":=", tag:"mo", output:":=", tex:null, ttype:CONST},
-{input:"lt", tag:"mo", output:"<", tex:null, ttype:CONST},
-{input:"<=", tag:"mo", output:"\u2264", tex:"le", ttype:CONST},
-{input:"lt=", tag:"mo", output:"\u2264", tex:"leq", ttype:CONST},
-{input:">=", tag:"mo", output:"\u2265", tex:"ge", ttype:CONST},
-{input:"geq", tag:"mo", output:"\u2265", tex:null, ttype:CONST},
-{input:"-<", tag:"mo", output:"\u227A", tex:"prec", ttype:CONST},
-{input:"-lt", tag:"mo", output:"\u227A", tex:null, ttype:CONST},
-{input:">-", tag:"mo", output:"\u227B", tex:"succ", ttype:CONST},
-{input:"-<=", tag:"mo", output:"\u2AAF", tex:"preceq", ttype:CONST},
-{input:">-=", tag:"mo", output:"\u2AB0", tex:"succeq", ttype:CONST},
-{input:"in", tag:"mo", output:"\u2208", tex:null, ttype:CONST},
-{input:"!in", tag:"mo", output:"\u2209", tex:"notin", ttype:CONST},
-{input:"sub", tag:"mo", output:"\u2282", tex:"subset", ttype:CONST},
-{input:"sup", tag:"mo", output:"\u2283", tex:"supset", ttype:CONST},
-{input:"sube", tag:"mo", output:"\u2286", tex:"subseteq", ttype:CONST},
-{input:"supe", tag:"mo", output:"\u2287", tex:"supseteq", ttype:CONST},
-{input:"-=", tag:"mo", output:"\u2261", tex:"equiv", ttype:CONST},
-{input:"~=", tag:"mo", output:"\u2245", tex:"cong", ttype:CONST},
-{input:"~~", tag:"mo", output:"\u2248", tex:"approx", ttype:CONST},
-{input:"prop", tag:"mo", output:"\u221D", tex:"propto", ttype:CONST},
-
-//logical symbols
-{input:"and", tag:"mtext", output:"and", tex:null, ttype:SPACE},
-{input:"or", tag:"mtext", output:"or", tex:null, ttype:SPACE},
-{input:"not", tag:"mo", output:"\u00AC", tex:"neg", ttype:CONST},
-{input:"=>", tag:"mo", output:"\u21D2", tex:"implies", ttype:CONST},
-{input:"if", tag:"mo", output:"if", tex:null, ttype:SPACE},
-{input:"<=>", tag:"mo", output:"\u21D4", tex:"iff", ttype:CONST},
-{input:"AA", tag:"mo", output:"\u2200", tex:"forall", ttype:CONST},
-{input:"EE", tag:"mo", output:"\u2203", tex:"exists", ttype:CONST},
-{input:"_|_", tag:"mo", output:"\u22A5", tex:"bot", ttype:CONST},
-{input:"TT", tag:"mo", output:"\u22A4", tex:"top", ttype:CONST},
-{input:"|--", tag:"mo", output:"\u22A2", tex:"vdash", ttype:CONST},
-{input:"|==", tag:"mo", output:"\u22A8", tex:"models", ttype:CONST},
-
-//grouping brackets
-{input:"(", tag:"mo", output:"(", tex:null, ttype:LEFTBRACKET},
-{input:")", tag:"mo", output:")", tex:null, ttype:RIGHTBRACKET},
-{input:"[", tag:"mo", output:"[", tex:null, ttype:LEFTBRACKET},
-{input:"]", tag:"mo", output:"]", tex:null, ttype:RIGHTBRACKET},
-{input:"{", tag:"mo", output:"{", tex:null, ttype:LEFTBRACKET},
-{input:"}", tag:"mo", output:"}", tex:null, ttype:RIGHTBRACKET},
-{input:"|", tag:"mo", output:"|", tex:null, ttype:LEFTRIGHT},
-//{input:"||", tag:"mo", output:"||", tex:null, ttype:LEFTRIGHT},
-{input:"(:", tag:"mo", output:"\u2329", tex:"langle", ttype:LEFTBRACKET},
-{input:":)", tag:"mo", output:"\u232A", tex:"rangle", ttype:RIGHTBRACKET},
-{input:"<<", tag:"mo", output:"\u2329", tex:null, ttype:LEFTBRACKET},
-{input:">>", tag:"mo", output:"\u232A", tex:null, ttype:RIGHTBRACKET},
-{input:"{:", tag:"mo", output:"{:", tex:null, ttype:LEFTBRACKET, invisible:true},
-{input:":}", tag:"mo", output:":}", tex:null, ttype:RIGHTBRACKET, invisible:true},
-
-//miscellaneous symbols
-{input:"int", tag:"mo", output:"\u222B", tex:null, ttype:CONST},
-{input:"dx", tag:"mi", output:"{:d x:}", tex:null, ttype:DEFINITION},
-{input:"dy", tag:"mi", output:"{:d y:}", tex:null, ttype:DEFINITION},
-{input:"dz", tag:"mi", output:"{:d z:}", tex:null, ttype:DEFINITION},
-{input:"dt", tag:"mi", output:"{:d t:}", tex:null, ttype:DEFINITION},
-{input:"oint", tag:"mo", output:"\u222E", tex:null, ttype:CONST},
-{input:"del", tag:"mo", output:"\u2202", tex:"partial", ttype:CONST},
-{input:"grad", tag:"mo", output:"\u2207", tex:"nabla", ttype:CONST},
-{input:"+-", tag:"mo", output:"\u00B1", tex:"pm", ttype:CONST},
-{input:"O/", tag:"mo", output:"\u2205", tex:"emptyset", ttype:CONST},
-{input:"oo", tag:"mo", output:"\u221E", tex:"infty", ttype:CONST},
-{input:"aleph", tag:"mo", output:"\u2135", tex:null, ttype:CONST},
-{input:"...", tag:"mo", output:"...", tex:"ldots", ttype:CONST},
-{input:":.", tag:"mo", output:"\u2234", tex:"therefore", ttype:CONST},
-{input:"/_", tag:"mo", output:"\u2220", tex:"angle", ttype:CONST},
-{input:"\\ ", tag:"mo", output:"\u00A0", tex:null, ttype:CONST},
-{input:"quad", tag:"mo", output:"\u00A0\u00A0", tex:null, ttype:CONST},
-{input:"qquad", tag:"mo", output:"\u00A0\u00A0\u00A0\u00A0", tex:null, ttype:CONST},
-{input:"cdots", tag:"mo", output:"\u22EF", tex:null, ttype:CONST},
-{input:"vdots", tag:"mo", output:"\u22EE", tex:null, ttype:CONST},
-{input:"ddots", tag:"mo", output:"\u22F1", tex:null, ttype:CONST},
-{input:"diamond", tag:"mo", output:"\u22C4", tex:null, ttype:CONST},
-{input:"square", tag:"mo", output:"\u25A1", tex:null, ttype:CONST},
-{input:"|__", tag:"mo", output:"\u230A", tex:"lfloor", ttype:CONST},
-{input:"__|", tag:"mo", output:"\u230B", tex:"rfloor", ttype:CONST},
-{input:"|~", tag:"mo", output:"\u2308", tex:"lceiling", ttype:CONST},
-{input:"~|", tag:"mo", output:"\u2309", tex:"rceiling", ttype:CONST},
-{input:"CC", tag:"mo", output:"\u2102", tex:null, ttype:CONST},
-{input:"NN", tag:"mo", output:"\u2115", tex:null, ttype:CONST},
-{input:"QQ", tag:"mo", output:"\u211A", tex:null, ttype:CONST},
-{input:"RR", tag:"mo", output:"\u211D", tex:null, ttype:CONST},
-{input:"ZZ", tag:"mo", output:"\u2124", tex:null, ttype:CONST},
-{input:"f", tag:"mi", output:"f", tex:null, ttype:UNARY, func:true},
-{input:"g", tag:"mi", output:"g", tex:null, ttype:UNARY, func:true},
-
-//standard functions
-{input:"lim", tag:"mo", output:"lim", tex:null, ttype:UNDEROVER},
-{input:"Lim", tag:"mo", output:"Lim", tex:null, ttype:UNDEROVER},
-{input:"sin", tag:"mo", output:"sin", tex:null, ttype:UNARY, func:true},
-{input:"cos", tag:"mo", output:"cos", tex:null, ttype:UNARY, func:true},
-{input:"tan", tag:"mo", output:"tan", tex:null, ttype:UNARY, func:true},
-{input:"sinh", tag:"mo", output:"sinh", tex:null, ttype:UNARY, func:true},
-{input:"cosh", tag:"mo", output:"cosh", tex:null, ttype:UNARY, func:true},
-{input:"tanh", tag:"mo", output:"tanh", tex:null, ttype:UNARY, func:true},
-{input:"cot", tag:"mo", output:"cot", tex:null, ttype:UNARY, func:true},
-{input:"sec", tag:"mo", output:"sec", tex:null, ttype:UNARY, func:true},
-{input:"csc", tag:"mo", output:"csc", tex:null, ttype:UNARY, func:true},
-{input:"log", tag:"mo", output:"log", tex:null, ttype:UNARY, func:true},
-{input:"ln", tag:"mo", output:"ln", tex:null, ttype:UNARY, func:true},
-{input:"det", tag:"mo", output:"det", tex:null, ttype:UNARY, func:true},
-{input:"dim", tag:"mo", output:"dim", tex:null, ttype:CONST},
-{input:"mod", tag:"mo", output:"mod", tex:null, ttype:CONST},
-{input:"gcd", tag:"mo", output:"gcd", tex:null, ttype:UNARY, func:true},
-{input:"lcm", tag:"mo", output:"lcm", tex:null, ttype:UNARY, func:true},
-{input:"lub", tag:"mo", output:"lub", tex:null, ttype:CONST},
-{input:"glb", tag:"mo", output:"glb", tex:null, ttype:CONST},
-{input:"min", tag:"mo", output:"min", tex:null, ttype:UNDEROVER},
-{input:"max", tag:"mo", output:"max", tex:null, ttype:UNDEROVER},
-
-//arrows
-{input:"uarr", tag:"mo", output:"\u2191", tex:"uparrow", ttype:CONST},
-{input:"darr", tag:"mo", output:"\u2193", tex:"downarrow", ttype:CONST},
-{input:"rarr", tag:"mo", output:"\u2192", tex:"rightarrow", ttype:CONST},
-{input:"->", tag:"mo", output:"\u2192", tex:"to", ttype:CONST},
-{input:"|->", tag:"mo", output:"\u21A6", tex:"mapsto", ttype:CONST},
-{input:"larr", tag:"mo", output:"\u2190", tex:"leftarrow", ttype:CONST},
-{input:"harr", tag:"mo", output:"\u2194", tex:"leftrightarrow", ttype:CONST},
-{input:"rArr", tag:"mo", output:"\u21D2", tex:"Rightarrow", ttype:CONST},
-{input:"lArr", tag:"mo", output:"\u21D0", tex:"Leftarrow", ttype:CONST},
-{input:"hArr", tag:"mo", output:"\u21D4", tex:"Leftrightarrow", ttype:CONST},
-
-//commands with argument
-AMsqrt, AMroot, AMfrac, AMdiv, AMover, AMsub, AMsup,
-{input:"hat", tag:"mover", output:"\u005E", tex:null, ttype:UNARY, acc:true},
-{input:"bar", tag:"mover", output:"\u00AF", tex:"overline", ttype:UNARY, acc:true},
-{input:"vec", tag:"mover", output:"\u2192", tex:null, ttype:UNARY, acc:true},
-{input:"dot", tag:"mover", output:".", tex:null, ttype:UNARY, acc:true},
-{input:"ddot", tag:"mover", output:"..", tex:null, ttype:UNARY, acc:true},
-{input:"ul", tag:"munder", output:"\u0332", tex:"underline", ttype:UNARY, acc:true},
-AMtext, AMmbox, AMquote,
-{input:"bb", tag:"mstyle", atname:"fontweight", atval:"bold", output:"bb", tex:null, ttype:UNARY},
-{input:"mathbf", tag:"mstyle", atname:"fontweight", atval:"bold", output:"mathbf", tex:null, ttype:UNARY},
-{input:"sf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"sf", tex:null, ttype:UNARY},
-{input:"mathsf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"mathsf", tex:null, ttype:UNARY},
-{input:"bbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"bbb", tex:null, ttype:UNARY, codes:AMbbb},
-{input:"mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"mathbb", tex:null, ttype:UNARY, codes:AMbbb},
-{input:"cc", tag:"mstyle", atname:"mathvariant", atval:"script", output:"cc", tex:null, ttype:UNARY, codes:AMcal},
-{input:"mathcal", tag:"mstyle", atname:"mathvariant", atval:"script", output:"mathcal", tex:null, ttype:UNARY, codes:AMcal},
-{input:"tt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"tt", tex:null, ttype:UNARY},
-{input:"mathtt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"mathtt", tex:null, ttype:UNARY},
-{input:"fr", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"fr", tex:null, ttype:UNARY, codes:AMfrk},
-{input:"mathfrak", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"mathfrak", tex:null, ttype:UNARY, codes:AMfrk}
-];
-
-function compareNames(s1,s2) {
- if (s1.input > s2.input) return 1
- else return -1;
-}
-
-var AMnames = []; //list of input symbols
-
-function AMinitSymbols() {
- var texsymbols = [], i;
- for (i=0; i<AMsymbols.length; i++)
- if (AMsymbols[i].tex)
- texsymbols[texsymbols.length] = {input:AMsymbols[i].tex,
- tag:AMsymbols[i].tag, output:AMsymbols[i].output, ttype:AMsymbols[i].ttype};
- AMsymbols = AMsymbols.concat(texsymbols);
- AMsymbols.sort(compareNames);
- for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
-}
-
-var AMmathml = "http://www.w3.org/1998/Math/MathML";
-
-function AMcreateElementMathML(t) {
- if (isIE) return document.createElement("m:"+t);
- else return document.createElementNS(AMmathml,t);
-}
-
-function AMcreateMmlNode(t,frag) {
-// var node = AMcreateElementMathML(name);
- if (isIE) var node = document.createElement("m:"+t);
- else var node = document.createElementNS(AMmathml,t);
- node.appendChild(frag);
- return node;
-}
-
-function newcommand(oldstr,newstr) {
- AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
- tex:null, ttype:DEFINITION}]);
-}
-
-function AMremoveCharsAndBlanks(str,n) {
-//remove n characters and any following blanks
- var st;
- if (str.charAt(n)=="\\" && str.charAt(n+1)!="\\" && str.charAt(n+1)!=" ")
- st = str.slice(n+1);
- else st = str.slice(n);
- for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
- return st.slice(i);
-}
-
-function AMposition(arr, str, n) {
-// return position >=n where str appears or would be inserted
-// assumes arr is sorted
- if (n==0) {
- var h,m;
- n = -1;
- h = arr.length;
- while (n+1<h) {
- m = (n+h) >> 1;
- if (arr[m]<str) n = m; else h = m;
- }
- return h;
- } else
- for (var i=n; i<arr.length && arr[i]<str; i++);
- return i; // i=arr.length || arr[i]>=str
-}
-
-function AMgetSymbol(str) {
-//return maximal initial substring of str that appears in names
-//return null if there is none
- var k = 0; //new pos
- var j = 0; //old pos
- var mk; //match pos
- var st;
- var tagst;
- var match = "";
- var more = true;
- for (var i=1; i<=str.length && more; i++) {
- st = str.slice(0,i); //initial substring of length i
- j = k;
- k = AMposition(AMnames, st, j);
- if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
- match = AMnames[k];
- mk = k;
- i = match.length;
- }
- more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
- }
- AMpreviousSymbol=AMcurrentSymbol;
- if (match!=""){
- AMcurrentSymbol=AMsymbols[mk].ttype;
- return AMsymbols[mk];
- }
-// if str[0] is a digit or - return maxsubstring of digits.digits
- AMcurrentSymbol=CONST;
- k = 1;
- st = str.slice(0,1);
- var integ = true;
- while ("0"<=st && st<="9" && k<=str.length) {
- st = str.slice(k,k+1);
- k++;
- }
- if (st == decimalsign) {
- st = str.slice(k,k+1);
- if ("0"<=st && st<="9") {
- integ = false;
- k++;
- while ("0"<=st && st<="9" && k<=str.length) {
- st = str.slice(k,k+1);
- k++;
- }
- }
- }
- if ((integ && k>1) || k>2) {
- st = str.slice(0,k-1);
- tagst = "mn";
- } else {
- k = 2;
- st = str.slice(0,1); //take 1 character
- tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
- }
- if (st=="-" && AMpreviousSymbol==INFIX) {
- AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
- return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
- }
- return {input:st, tag:tagst, output:st, ttype:CONST};
-}
-
-function AMremoveBrackets(node) {
- var st;
- if (node.nodeName=="mrow") {
- st = node.firstChild.firstChild.nodeValue;
- if (st=="(" || st=="[" || st=="{") node.removeChild(node.firstChild);
- }
- if (node.nodeName=="mrow") {
- st = node.lastChild.firstChild.nodeValue;
- if (st==")" || st=="]" || st=="}") node.removeChild(node.lastChild);
- }
-}
-
-/*Parsing ASCII math expressions with the following grammar
-v ::= [A-Za-z] | greek letters | numbers | other constant symbols
-u ::= sqrt | text | bb | other unary symbols for font commands
-b ::= frac | root | stackrel binary symbols
-l ::= ( | [ | { | (: | {: left brackets
-r ::= ) | ] | } | :) | :} right brackets
-S ::= v | lEr | uS | bSS Simple expression
-I ::= S_S | S^S | S_S^S | S Intermediate expression
-E ::= IE | I/I Expression
-Each terminal symbol is translated into a corresponding mathml node.*/
-
-var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;
-
-function AMparseSexpr(str) { //parses str and returns [node,tailstr]
- var symbol, node, result, i, st,// rightvert = false,
- newFrag = document.createDocumentFragment();
- str = AMremoveCharsAndBlanks(str,0);
- symbol = AMgetSymbol(str); //either a token or a bracket or empty
- if (symbol == null || symbol.ttype == RIGHTBRACKET && AMnestingDepth > 0) {
- return [null,str];
- }
- if (symbol.ttype == DEFINITION) {
- str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- }
- switch (symbol.ttype) {
- case UNDEROVER:
- case CONST:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str];
- case LEFTBRACKET: //read (expr+)
- AMnestingDepth++;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseExpr(str,true);
- AMnestingDepth--;
- if (typeof symbol.invisible == "boolean" && symbol.invisible)
- node = AMcreateMmlNode("mrow",result[0]);
- else {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- }
- return [node,result[1]];
- case TEXT:
- if (symbol!=AMquote) str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (str.charAt(0)=="{") i=str.indexOf("}");
- else if (str.charAt(0)=="(") i=str.indexOf(")");
- else if (str.charAt(0)=="[") i=str.indexOf("]");
- else if (symbol==AMquote) i=str.slice(1).indexOf("\"")+1;
- else i = 0;
- if (i==-1) i = str.length;
- st = str.slice(1,i);
- if (st.charAt(0) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- }
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
- if (st.charAt(st.length-1) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- }
- str = AMremoveCharsAndBlanks(str,i+1);
- return [AMcreateMmlNode("mrow",newFrag),str];
- case UNARY:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
- st = str.charAt(0);
- if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- } else {
- node = AMcreateMmlNode("mrow",
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- node.appendChild(result[0]);
- return [node,result[1]];
- }
- }
- AMremoveBrackets(result[0]);
- if (symbol.input == "sqrt") { // sqrt
- return [AMcreateMmlNode(symbol.tag,result[0]),result[1]];
- } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.appendChild(AMcreateMmlNode("mo",document.createTextNode(symbol.output)));
- return [node,result[1]];
- } else { // font change command
- if (!isIE && typeof symbol.codes != "undefined") {
- for (i=0; i<result[0].childNodes.length; i++)
- if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
- st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
- result[0].childNodes[i].firstChild.nodeValue);
- var newst = [];
- for (var j=0; j<st.length; j++)
- if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
- String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
- else newst = newst + st.charAt(j);
- if (result[0].nodeName=="mi")
- result[0]=AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst));
- else result[0].replaceChild(AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
- }
- }
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.setAttribute(symbol.atname,symbol.atval);
- return [node,result[1]];
- }
- case BINARY:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str];
- AMremoveBrackets(result[0]);
- var result2 = AMparseSexpr(result[1]);
- if (result2[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str];
- AMremoveBrackets(result2[0]);
- if (symbol.input=="root" || symbol.input=="stackrel")
- newFrag.appendChild(result2[0]);
- newFrag.appendChild(result[0]);
- if (symbol.input=="frac") newFrag.appendChild(result2[0]);
- return [AMcreateMmlNode(symbol.tag,newFrag),result2[1]];
- case INFIX:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),str];
- case SPACE:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","1ex");
- newFrag.appendChild(node);
- return [AMcreateMmlNode("mrow",newFrag),str];
- case LEFTRIGHT:
-// if (rightvert) return [null,str]; else rightvert = true;
- AMnestingDepth++;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseExpr(str,false);
- AMnestingDepth--;
- var st = "";
- if (result[0].lastChild!=null)
- st = result[0].lastChild.firstChild.nodeValue;
- if (st == "|") { // its an absolute value subterm
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- return [node,result[1]];
- } else { // the "|" is a \mid
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- return [node,str];
- }
- default:
-//alert("default");
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str];
- }
-}
-
-function AMparseIexpr(str) {
- var symbol, sym1, sym2, node, result, underover;
- str = AMremoveCharsAndBlanks(str,0);
- sym1 = AMgetSymbol(str);
- result = AMparseSexpr(str);
- node = result[0];
- str = result[1];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX && symbol.input != "/") {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
-// if (symbol.input == "/") result = AMparseIexpr(str); else ...
- result = AMparseSexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- else AMremoveBrackets(result[0]);
- str = result[1];
-// if (symbol.input == "/") AMremoveBrackets(node);
- if (symbol.input == "_") {
- sym2 = AMgetSymbol(str);
- underover = (sym1.ttype == UNDEROVER);
- if (sym2.input == "^") {
- str = AMremoveCharsAndBlanks(str,sym2.input.length);
- var res2 = AMparseSexpr(str);
- AMremoveBrackets(res2[0]);
- str = res2[1];
- node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
- node.appendChild(result[0]);
- node.appendChild(res2[0]);
- node = AMcreateMmlNode("mrow",node); // so sum does not stretch
- } else {
- node = AMcreateMmlNode((underover?"munder":"msub"),node);
- node.appendChild(result[0]);
- }
- } else {
- node = AMcreateMmlNode(symbol.tag,node);
- node.appendChild(result[0]);
- }
- }
- return [node,str];
-}
-
-function AMparseExpr(str,rightbracket) {
- var symbol, node, result, i, nodeList = [],
- newFrag = document.createDocumentFragment();
- do {
- str = AMremoveCharsAndBlanks(str,0);
- result = AMparseIexpr(str);
- node = result[0];
- str = result[1];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX && symbol.input == "/") {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseIexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- else AMremoveBrackets(result[0]);
- str = result[1];
- AMremoveBrackets(node);
- node = AMcreateMmlNode(symbol.tag,node);
- node.appendChild(result[0]);
- newFrag.appendChild(node);
- symbol = AMgetSymbol(str);
- }
- else if (node!=undefined) newFrag.appendChild(node);
- } while ((symbol.ttype != RIGHTBRACKET &&
- (symbol.ttype != LEFTRIGHT || rightbracket)
- || AMnestingDepth == 0) && symbol!=null && symbol.output!="");
- if (symbol.ttype == RIGHTBRACKET || symbol.ttype == LEFTRIGHT) {
-// if (AMnestingDepth > 0) AMnestingDepth--;
- var len = newFrag.childNodes.length;
- if (len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
- newFrag.childNodes[len-2].nodeName == "mo" &&
- newFrag.childNodes[len-2].firstChild.nodeValue == ",") { //matrix
- var right = newFrag.childNodes[len-1].lastChild.firstChild.nodeValue;
- if (right==")" || right=="]") {
- var left = newFrag.childNodes[len-1].firstChild.firstChild.nodeValue;
- if (left=="(" && right==")" && symbol.output != "}" ||
- left=="[" && right=="]") {
- var pos = []; // positions of commas
- var matrix = true;
- var m = newFrag.childNodes.length;
- for (i=0; matrix && i<m; i=i+2) {
- pos[i] = [];
- node = newFrag.childNodes[i];
- if (matrix) matrix = node.nodeName=="mrow" &&
- (i==m-1 || node.nextSibling.nodeName=="mo" &&
- node.nextSibling.firstChild.nodeValue==",")&&
- node.firstChild.firstChild.nodeValue==left &&
- node.lastChild.firstChild.nodeValue==right;
- if (matrix)
- for (var j=0; j<node.childNodes.length; j++)
- if (node.childNodes[j].firstChild.nodeValue==",")
- pos[i][pos[i].length]=j;
- if (matrix && i>1) matrix = pos[i].length == pos[i-2].length;
- }
- if (matrix) {
- var row, frag, n, k, table = document.createDocumentFragment();
- for (i=0; i<m; i=i+2) {
- row = document.createDocumentFragment();
- frag = document.createDocumentFragment();
- node = newFrag.firstChild; // <mrow>(-,-,...,-,-)</mrow>
- n = node.childNodes.length;
- k = 0;
- node.removeChild(node.firstChild); //remove (
- for (j=1; j<n-1; j++) {
- if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
- node.removeChild(node.firstChild); //remove ,
- row.appendChild(AMcreateMmlNode("mtd",frag));
- k++;
- } else frag.appendChild(node.firstChild);
- }
- row.appendChild(AMcreateMmlNode("mtd",frag));
- if (newFrag.childNodes.length>2) {
- newFrag.removeChild(newFrag.firstChild); //remove <mrow>)</mrow>
- newFrag.removeChild(newFrag.firstChild); //remove <mo>,</mo>
- }
- table.appendChild(AMcreateMmlNode("mtr",row));
- }
- node = AMcreateMmlNode("mtable",table);
- if (typeof symbol.invisible == "boolean" && symbol.invisible) node.setAttribute("columnalign","left");
- newFrag.replaceChild(node,newFrag.firstChild);
- }
- }
- }
- }
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- newFrag.appendChild(node);
- }
- }
- return [newFrag,str];
-}
-
-function AMparseMath(str) {
- var result, node = AMcreateElementMathML("mstyle");
- if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
- if (displaystyle) node.setAttribute("displaystyle","true");
- if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
- AMnestingDepth = 0;
- node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false)[0]);
- node = AMcreateMmlNode("math",node);
- if (showasciiformulaonhover) //fixed by djhsu so newline
- node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
- if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
- var fnode = AMcreateElementXHTML("font");
- fnode.setAttribute("face",mathfontfamily);
- fnode.appendChild(node);
- return fnode;
- }
- return node;
-}
-
-function AMstrarr2docFrag(arr, linebreaks) {
- var newFrag=document.createDocumentFragment();
- var expr = false;
- for (var i=0; i<arr.length; i++) {
- if (expr) newFrag.appendChild(AMparseMath(arr[i]));
- else {
- var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[0])));
- for (var j=1; j<arri.length; j++) {
- newFrag.appendChild(AMcreateElementXHTML("p"));
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[j])));
- }
- }
- expr = !expr;
- }
- return newFrag;
-}
-
-function AMprocessNodeR(n, linebreaks) {
- var mtch, str, arr, frg, i;
- if (n.childNodes.length == 0) {
- if ((n.nodeType!=8 || linebreaks) &&
- n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
- n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
- n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
- str = n.nodeValue;
- if (!(str == null)) {
- str = str.replace(/\r\n\r\n/g,"\n\n");
- if (doubleblankmathdelimiter) {
- str = str.replace(/\x20\x20\./g," "+AMdelimiter1+".");
- str = str.replace(/\x20\x20,/g," "+AMdelimiter1+",");
- str = str.replace(/\x20\x20/g," "+AMdelimiter1+" ");
- }
- str = str.replace(/\x20+/g," ");
- str = str.replace(/\s*\r\n/g," ");
- mtch = false;
- str = str.replace(new RegExp(AMescape2, "g"),
- function(st){mtch=true;return "AMescape2"});
- str = str.replace(new RegExp(AMescape1, "g"),
- function(st){mtch=true;return "AMescape1"});
- str = str.replace(new RegExp(AMdelimiter2regexp, "g"),AMdelimiter1);
- arr = str.split(AMdelimiter1);
- for (i=0; i<arr.length; i++)
- arr[i]=arr[i].replace(/AMescape2/g,AMdelimiter2).
- replace(/AMescape1/g,AMdelimiter1);
- if (arr.length>1 || mtch) {
- if (checkForMathML) {
- checkForMathML = false;
- var nd = AMisMathMLavailable();
- AMnoMathML = nd != null;
- if (AMnoMathML && notifyIfNoMathML)
- if (alertIfNoMathML)
- alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
- or Firefox/Mozilla/Netscape");
- else AMbody.insertBefore(nd,AMbody.childNodes[0]);
- }
- if (!AMnoMathML) {
- frg = AMstrarr2docFrag(arr,n.nodeType==8);
- var len = frg.childNodes.length;
- n.parentNode.replaceChild(frg,n);
- return len-1;
- } else return 0;
- }
- }
- } else return 0;
- } else if (n.nodeName!="math") {
- for (i=0; i<n.childNodes.length; i++)
- i += AMprocessNodeR(n.childNodes[i], linebreaks);
- }
- return 0;
-}
-
-function AMprocessNode(n, linebreaks, spanclassAM) {
- var frag,st;
- if (spanclassAM!=null) {
- frag = document.getElementsByTagName("span")
- for (var i=0;i<frag.length;i++)
- if (frag[i].className == "AM")
- AMprocessNodeR(frag[i],linebreaks);
- } else {
- try {
- st = n.innerHTML;
- } catch(err) {}
- if (st==null ||
- st.indexOf(AMdelimiter1)!=-1 || st.indexOf(AMdelimiter2)!=-1)
- AMprocessNodeR(n,linebreaks);
- }
- if (isIE) { //needed to match size and font of formula to surrounding text
- frag = document.getElementsByTagName('math');
- for (var i=0;i<frag.length;i++) frag[i].update()
- }
-}
-
-var AMbody;
-var AMnoMathML = false, AMtranslated = false;
-
-function translate(spanclassAM) {
- if (!AMtranslated) { // run this only once
- AMtranslated = true;
- AMinitSymbols();
- AMbody = document.getElementsByTagName("body")[0];
- AMprocessNode(AMbody, false, spanclassAM);
- }
-}
-
-if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
- document.write("<object id=\"mathplayer\"\
- classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
- document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
-}
-
-// GO1.1 Generic onload by Brothercake
-// http://www.brothercake.com/
-//onload function (replaces the onload="translate()" in the <body> tag)
-function generic()
-{
- translate();
-};
-//setup onload function
-if(typeof window.addEventListener != 'undefined')
-{
- //.. gecko, safari, konqueror and standard
- window.addEventListener('load', generic, false);
-}
-else if(typeof document.addEventListener != 'undefined')
-{
- //.. opera 7
- document.addEventListener('load', generic, false);
-}
-else if(typeof window.attachEvent != 'undefined')
-{
- //.. win/ie
- window.attachEvent('onload', generic);
-}
-//** remove this condition to degrade older browsers
-else
-{
- //.. mac/ie5 and anything else that gets this far
- //if there's an existing onload function
- if(typeof window.onload == 'function')
- {
- //store it
- var existing = onload;
- //add new onload handler
- window.onload = function()
- {
- //call existing onload function
- existing();
- //call generic onload function
- generic();
- };
- }
- else
- {
- //setup onload function
- window.onload = generic;
- }
-}
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>ASCIIMathML Formulae</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a> is
-a clever JavaScript written by Peter Jipsen that dynamically
-transforms mathematical formulae written in a wiki-like plain text
-markup to <a href="http://www.w3.org/Math/">MathML</a> markup which is displayed as
-standard mathematical notation by the Web Browser. See <em>Appendix E</em>
-in the AsciiDoc User Guide for more details.</p></div>
-<div class="paragraph"><p>The AsciiDoc <code>xhtml11</code> backend supports ASCIIMathML&#8201;&#8212;&#8201;it links the
-ASCIIMathML script and escapes ASCIIMathML delimiters and special
-characters to yield valid XHTML. To use ASCIIMathML:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Include the <code>-a asciimath</code> command-line option when you run
- <code>asciidoc(1)</code>.
-</p>
-</li>
-<li>
-<p>
-Enclose ASCIIMathML formulas inside math or double-dollar
- passthroughs or in math passthrough blocks.
-</p>
-</li>
-</ol></div>
-<div class="paragraph"><p>Here&#8217;s the <a href="asciimathml.txt">AsciiDoc source</a> that generated this
-page.</p></div>
-<div class="ulist"><div class="title">NOTE</div><ul>
-<li>
-<p>
-When you use the <code>asciimath:[]</code> inline macro you need to escape <code>]</code>
- characters in the formulas with a backslash, escaping is unnecessary
- if you use the double-dollar macro (for examples see the second
- formula below).
-</p>
-</li>
-<li>
-<p>
-See the
- <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
- website for ASCIIMathML documentation and the latest version.
-</p>
-</li>
-<li>
-<p>
-If the formulas don&#8217;t appear to be correct you probably need to
- install the correct math fonts (see the
- <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
- website for details).
-</p>
-</li>
-<li>
-<p>
-See the <a href="latexmathml.html">LaTeXMathML page</a> if you prefer to use
- LaTeX math formulas.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>A list of example formulas:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-`[[a,b],[c,d]]((n),(k))`
-</p>
-</li>
-<li>
-<p>
-`x/x={(1,if x!=0),(text{undefined},if x=0):}`
-</p>
-</li>
-<li>
-<p>
-`d/dxf(x)=lim_(h-&gt;0)(f(x+h)-f(x))/h`
-</p>
-</li>
-<li>
-<p>
-`sum_(i=1)\^n i=(n(n+1))/2`$ and <strong>bold
- `int_0\^(pi/2) sinx\ dx=1`</strong>
-</p>
-</li>
-<li>
-<p>
-`(a,b]={x in RR : a &lt; x &lt;= b}`
-</p>
-</li>
-<li>
-<p>
-`x^2+y_1+z_12^34`
-</p>
-</li>
-</ul></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="paragraph"><p>The first three terms factor to give
-`(x+b/(2a))^2=(b^2)/(4a^2)-c/a`.</p></div>
-<div class="paragraph"><p>`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.</p></div>
-<div class="paragraph"><p>Now we take square roots on both sides and get
-`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.
-Finally we move the `b/(2a)` to the right and simplify to
-get the two solutions:
-<strong>`x_(1,2)=(-b+-sqrt(b^2-4ac))/(2a)`</strong>.</p></div>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>ASCIIMathML Formulae</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+<script type="text/javascript">
+/*<![CDATA[*/
+/*
+ASCIIMathML.js
+==============
+This file contains JavaScript functions to convert ASCII math notation
+to Presentation MathML. The conversion is done while the (X)HTML page
+loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
+Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
+Just add the next line to your (X)HTML page with this file in the same folder:
+This is a convenient and inexpensive solution for authoring MathML.
+
+Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
+Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
+For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
+If you use it on a webpage, please send the URL to jipsen@chapman.edu
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License (at http://www.gnu.org/copyleft/gpl.html)
+for more details.
+*/
+
+var checkForMathML = true; // check if browser can display MathML
+var notifyIfNoMathML = true; // display note if no MathML capability
+var alertIfNoMathML = false; // show alert box if no MathML capability
+var mathcolor = ""; // change it to "" (to inherit) or any other color
+var mathfontfamily = "serif"; // change to "" to inherit (works in IE)
+ // or another family (e.g. "arial")
+var displaystyle = true; // puts limits above and below large operators
+var showasciiformulaonhover = true; // helps students learn ASCIIMath
+var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
+var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
+var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
+var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
+ // for IE this works only in <!-- -->
+//var separatetokens;// has been removed (email me if this is a problem)
+var isIE = document.createElementNS==null;
+
+if (document.getElementById==null)
+ alert("This webpage requires a recent browser such as\
+\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
+
+// all further global variables start with "AM"
+
+function AMcreateElementXHTML(t) {
+ if (isIE) return document.createElement(t);
+ else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
+}
+
+function AMnoMathMLNote() {
+ var nd = AMcreateElementXHTML("h3");
+ nd.setAttribute("align","center")
+ nd.appendChild(AMcreateElementXHTML("p"));
+ nd.appendChild(document.createTextNode("To view the "));
+ var an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("ASCIIMathML"));
+ an.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
+ an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("MathPlayer"));
+ an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
+ nd.appendChild(AMcreateElementXHTML("p"));
+ return nd;
+}
+
+function AMisMathMLavailable() {
+ if (navigator.appName.slice(0,8)=="Netscape")
+ if (navigator.appVersion.slice(0,1)>="5") return null;
+ else return AMnoMathMLNote();
+ else if (navigator.appName.slice(0,9)=="Microsoft")
+ try {
+ var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
+ return null;
+ } catch (e) {
+ return AMnoMathMLNote();
+ }
+ else return AMnoMathMLNote();
+}
+
+// character lists for Mozilla/Netscape fonts
+var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
+var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
+var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
+
+var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
+ RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
+ LEFTRIGHT = 9, TEXT = 10; // token types
+
+var AMsqrt = {input:"sqrt", tag:"msqrt", output:"sqrt", tex:null, ttype:UNARY},
+ AMroot = {input:"root", tag:"mroot", output:"root", tex:null, ttype:BINARY},
+ AMfrac = {input:"frac", tag:"mfrac", output:"/", tex:null, ttype:BINARY},
+ AMdiv = {input:"/", tag:"mfrac", output:"/", tex:null, ttype:INFIX},
+ AMover = {input:"stackrel", tag:"mover", output:"stackrel", tex:null, ttype:BINARY},
+ AMsub = {input:"_", tag:"msub", output:"_", tex:null, ttype:INFIX},
+ AMsup = {input:"^", tag:"msup", output:"^", tex:null, ttype:INFIX},
+ AMtext = {input:"text", tag:"mtext", output:"text", tex:null, ttype:TEXT},
+ AMmbox = {input:"mbox", tag:"mtext", output:"mbox", tex:null, ttype:TEXT},
+ AMquote = {input:"\"", tag:"mtext", output:"mbox", tex:null, ttype:TEXT};
+
+var AMsymbols = [
+//some greek symbols
+{input:"alpha", tag:"mi", output:"\u03B1", tex:null, ttype:CONST},
+{input:"beta", tag:"mi", output:"\u03B2", tex:null, ttype:CONST},
+{input:"chi", tag:"mi", output:"\u03C7", tex:null, ttype:CONST},
+{input:"delta", tag:"mi", output:"\u03B4", tex:null, ttype:CONST},
+{input:"Delta", tag:"mo", output:"\u0394", tex:null, ttype:CONST},
+{input:"epsi", tag:"mi", output:"\u03B5", tex:"epsilon", ttype:CONST},
+{input:"varepsilon", tag:"mi", output:"\u025B", tex:null, ttype:CONST},
+{input:"eta", tag:"mi", output:"\u03B7", tex:null, ttype:CONST},
+{input:"gamma", tag:"mi", output:"\u03B3", tex:null, ttype:CONST},
+{input:"Gamma", tag:"mo", output:"\u0393", tex:null, ttype:CONST},
+{input:"iota", tag:"mi", output:"\u03B9", tex:null, ttype:CONST},
+{input:"kappa", tag:"mi", output:"\u03BA", tex:null, ttype:CONST},
+{input:"lambda", tag:"mi", output:"\u03BB", tex:null, ttype:CONST},
+{input:"Lambda", tag:"mo", output:"\u039B", tex:null, ttype:CONST},
+{input:"mu", tag:"mi", output:"\u03BC", tex:null, ttype:CONST},
+{input:"nu", tag:"mi", output:"\u03BD", tex:null, ttype:CONST},
+{input:"omega", tag:"mi", output:"\u03C9", tex:null, ttype:CONST},
+{input:"Omega", tag:"mo", output:"\u03A9", tex:null, ttype:CONST},
+{input:"phi", tag:"mi", output:"\u03C6", tex:null, ttype:CONST},
+{input:"varphi", tag:"mi", output:"\u03D5", tex:null, ttype:CONST},
+{input:"Phi", tag:"mo", output:"\u03A6", tex:null, ttype:CONST},
+{input:"pi", tag:"mi", output:"\u03C0", tex:null, ttype:CONST},
+{input:"Pi", tag:"mo", output:"\u03A0", tex:null, ttype:CONST},
+{input:"psi", tag:"mi", output:"\u03C8", tex:null, ttype:CONST},
+{input:"Psi", tag:"mi", output:"\u03A8", tex:null, ttype:CONST},
+{input:"rho", tag:"mi", output:"\u03C1", tex:null, ttype:CONST},
+{input:"sigma", tag:"mi", output:"\u03C3", tex:null, ttype:CONST},
+{input:"Sigma", tag:"mo", output:"\u03A3", tex:null, ttype:CONST},
+{input:"tau", tag:"mi", output:"\u03C4", tex:null, ttype:CONST},
+{input:"theta", tag:"mi", output:"\u03B8", tex:null, ttype:CONST},
+{input:"vartheta", tag:"mi", output:"\u03D1", tex:null, ttype:CONST},
+{input:"Theta", tag:"mo", output:"\u0398", tex:null, ttype:CONST},
+{input:"upsilon", tag:"mi", output:"\u03C5", tex:null, ttype:CONST},
+{input:"xi", tag:"mi", output:"\u03BE", tex:null, ttype:CONST},
+{input:"Xi", tag:"mo", output:"\u039E", tex:null, ttype:CONST},
+{input:"zeta", tag:"mi", output:"\u03B6", tex:null, ttype:CONST},
+
+//binary operation symbols
+{input:"*", tag:"mo", output:"\u22C5", tex:"cdot", ttype:CONST},
+{input:"**", tag:"mo", output:"\u22C6", tex:"star", ttype:CONST},
+{input:"//", tag:"mo", output:"/", tex:null, ttype:CONST},
+{input:"\\\\", tag:"mo", output:"\\", tex:"backslash", ttype:CONST},
+{input:"setminus", tag:"mo", output:"\\", tex:null, ttype:CONST},
+{input:"xx", tag:"mo", output:"\u00D7", tex:"times", ttype:CONST},
+{input:"-:", tag:"mo", output:"\u00F7", tex:"divide", ttype:CONST},
+{input:"@", tag:"mo", output:"\u2218", tex:"circ", ttype:CONST},
+{input:"o+", tag:"mo", output:"\u2295", tex:"oplus", ttype:CONST},
+{input:"ox", tag:"mo", output:"\u2297", tex:"otimes", ttype:CONST},
+{input:"o.", tag:"mo", output:"\u2299", tex:"odot", ttype:CONST},
+{input:"sum", tag:"mo", output:"\u2211", tex:null, ttype:UNDEROVER},
+{input:"prod", tag:"mo", output:"\u220F", tex:null, ttype:UNDEROVER},
+{input:"^^", tag:"mo", output:"\u2227", tex:"wedge", ttype:CONST},
+{input:"^^^", tag:"mo", output:"\u22C0", tex:"bigwedge", ttype:UNDEROVER},
+{input:"vv", tag:"mo", output:"\u2228", tex:"vee", ttype:CONST},
+{input:"vvv", tag:"mo", output:"\u22C1", tex:"bigvee", ttype:UNDEROVER},
+{input:"nn", tag:"mo", output:"\u2229", tex:"cap", ttype:CONST},
+{input:"nnn", tag:"mo", output:"\u22C2", tex:"bigcap", ttype:UNDEROVER},
+{input:"uu", tag:"mo", output:"\u222A", tex:"cup", ttype:CONST},
+{input:"uuu", tag:"mo", output:"\u22C3", tex:"bigcup", ttype:UNDEROVER},
+
+//binary relation symbols
+{input:"!=", tag:"mo", output:"\u2260", tex:"ne", ttype:CONST},
+{input:":=", tag:"mo", output:":=", tex:null, ttype:CONST},
+{input:"lt", tag:"mo", output:"<", tex:null, ttype:CONST},
+{input:"<=", tag:"mo", output:"\u2264", tex:"le", ttype:CONST},
+{input:"lt=", tag:"mo", output:"\u2264", tex:"leq", ttype:CONST},
+{input:">=", tag:"mo", output:"\u2265", tex:"ge", ttype:CONST},
+{input:"geq", tag:"mo", output:"\u2265", tex:null, ttype:CONST},
+{input:"-<", tag:"mo", output:"\u227A", tex:"prec", ttype:CONST},
+{input:"-lt", tag:"mo", output:"\u227A", tex:null, ttype:CONST},
+{input:">-", tag:"mo", output:"\u227B", tex:"succ", ttype:CONST},
+{input:"-<=", tag:"mo", output:"\u2AAF", tex:"preceq", ttype:CONST},
+{input:">-=", tag:"mo", output:"\u2AB0", tex:"succeq", ttype:CONST},
+{input:"in", tag:"mo", output:"\u2208", tex:null, ttype:CONST},
+{input:"!in", tag:"mo", output:"\u2209", tex:"notin", ttype:CONST},
+{input:"sub", tag:"mo", output:"\u2282", tex:"subset", ttype:CONST},
+{input:"sup", tag:"mo", output:"\u2283", tex:"supset", ttype:CONST},
+{input:"sube", tag:"mo", output:"\u2286", tex:"subseteq", ttype:CONST},
+{input:"supe", tag:"mo", output:"\u2287", tex:"supseteq", ttype:CONST},
+{input:"-=", tag:"mo", output:"\u2261", tex:"equiv", ttype:CONST},
+{input:"~=", tag:"mo", output:"\u2245", tex:"cong", ttype:CONST},
+{input:"~~", tag:"mo", output:"\u2248", tex:"approx", ttype:CONST},
+{input:"prop", tag:"mo", output:"\u221D", tex:"propto", ttype:CONST},
+
+//logical symbols
+{input:"and", tag:"mtext", output:"and", tex:null, ttype:SPACE},
+{input:"or", tag:"mtext", output:"or", tex:null, ttype:SPACE},
+{input:"not", tag:"mo", output:"\u00AC", tex:"neg", ttype:CONST},
+{input:"=>", tag:"mo", output:"\u21D2", tex:"implies", ttype:CONST},
+{input:"if", tag:"mo", output:"if", tex:null, ttype:SPACE},
+{input:"<=>", tag:"mo", output:"\u21D4", tex:"iff", ttype:CONST},
+{input:"AA", tag:"mo", output:"\u2200", tex:"forall", ttype:CONST},
+{input:"EE", tag:"mo", output:"\u2203", tex:"exists", ttype:CONST},
+{input:"_|_", tag:"mo", output:"\u22A5", tex:"bot", ttype:CONST},
+{input:"TT", tag:"mo", output:"\u22A4", tex:"top", ttype:CONST},
+{input:"|--", tag:"mo", output:"\u22A2", tex:"vdash", ttype:CONST},
+{input:"|==", tag:"mo", output:"\u22A8", tex:"models", ttype:CONST},
+
+//grouping brackets
+{input:"(", tag:"mo", output:"(", tex:null, ttype:LEFTBRACKET},
+{input:")", tag:"mo", output:")", tex:null, ttype:RIGHTBRACKET},
+{input:"[", tag:"mo", output:"[", tex:null, ttype:LEFTBRACKET},
+{input:"]", tag:"mo", output:"]", tex:null, ttype:RIGHTBRACKET},
+{input:"{", tag:"mo", output:"{", tex:null, ttype:LEFTBRACKET},
+{input:"}", tag:"mo", output:"}", tex:null, ttype:RIGHTBRACKET},
+{input:"|", tag:"mo", output:"|", tex:null, ttype:LEFTRIGHT},
+//{input:"||", tag:"mo", output:"||", tex:null, ttype:LEFTRIGHT},
+{input:"(:", tag:"mo", output:"\u2329", tex:"langle", ttype:LEFTBRACKET},
+{input:":)", tag:"mo", output:"\u232A", tex:"rangle", ttype:RIGHTBRACKET},
+{input:"<<", tag:"mo", output:"\u2329", tex:null, ttype:LEFTBRACKET},
+{input:">>", tag:"mo", output:"\u232A", tex:null, ttype:RIGHTBRACKET},
+{input:"{:", tag:"mo", output:"{:", tex:null, ttype:LEFTBRACKET, invisible:true},
+{input:":}", tag:"mo", output:":}", tex:null, ttype:RIGHTBRACKET, invisible:true},
+
+//miscellaneous symbols
+{input:"int", tag:"mo", output:"\u222B", tex:null, ttype:CONST},
+{input:"dx", tag:"mi", output:"{:d x:}", tex:null, ttype:DEFINITION},
+{input:"dy", tag:"mi", output:"{:d y:}", tex:null, ttype:DEFINITION},
+{input:"dz", tag:"mi", output:"{:d z:}", tex:null, ttype:DEFINITION},
+{input:"dt", tag:"mi", output:"{:d t:}", tex:null, ttype:DEFINITION},
+{input:"oint", tag:"mo", output:"\u222E", tex:null, ttype:CONST},
+{input:"del", tag:"mo", output:"\u2202", tex:"partial", ttype:CONST},
+{input:"grad", tag:"mo", output:"\u2207", tex:"nabla", ttype:CONST},
+{input:"+-", tag:"mo", output:"\u00B1", tex:"pm", ttype:CONST},
+{input:"O/", tag:"mo", output:"\u2205", tex:"emptyset", ttype:CONST},
+{input:"oo", tag:"mo", output:"\u221E", tex:"infty", ttype:CONST},
+{input:"aleph", tag:"mo", output:"\u2135", tex:null, ttype:CONST},
+{input:"...", tag:"mo", output:"...", tex:"ldots", ttype:CONST},
+{input:":.", tag:"mo", output:"\u2234", tex:"therefore", ttype:CONST},
+{input:"/_", tag:"mo", output:"\u2220", tex:"angle", ttype:CONST},
+{input:"\\ ", tag:"mo", output:"\u00A0", tex:null, ttype:CONST},
+{input:"quad", tag:"mo", output:"\u00A0\u00A0", tex:null, ttype:CONST},
+{input:"qquad", tag:"mo", output:"\u00A0\u00A0\u00A0\u00A0", tex:null, ttype:CONST},
+{input:"cdots", tag:"mo", output:"\u22EF", tex:null, ttype:CONST},
+{input:"vdots", tag:"mo", output:"\u22EE", tex:null, ttype:CONST},
+{input:"ddots", tag:"mo", output:"\u22F1", tex:null, ttype:CONST},
+{input:"diamond", tag:"mo", output:"\u22C4", tex:null, ttype:CONST},
+{input:"square", tag:"mo", output:"\u25A1", tex:null, ttype:CONST},
+{input:"|__", tag:"mo", output:"\u230A", tex:"lfloor", ttype:CONST},
+{input:"__|", tag:"mo", output:"\u230B", tex:"rfloor", ttype:CONST},
+{input:"|~", tag:"mo", output:"\u2308", tex:"lceiling", ttype:CONST},
+{input:"~|", tag:"mo", output:"\u2309", tex:"rceiling", ttype:CONST},
+{input:"CC", tag:"mo", output:"\u2102", tex:null, ttype:CONST},
+{input:"NN", tag:"mo", output:"\u2115", tex:null, ttype:CONST},
+{input:"QQ", tag:"mo", output:"\u211A", tex:null, ttype:CONST},
+{input:"RR", tag:"mo", output:"\u211D", tex:null, ttype:CONST},
+{input:"ZZ", tag:"mo", output:"\u2124", tex:null, ttype:CONST},
+{input:"f", tag:"mi", output:"f", tex:null, ttype:UNARY, func:true},
+{input:"g", tag:"mi", output:"g", tex:null, ttype:UNARY, func:true},
+
+//standard functions
+{input:"lim", tag:"mo", output:"lim", tex:null, ttype:UNDEROVER},
+{input:"Lim", tag:"mo", output:"Lim", tex:null, ttype:UNDEROVER},
+{input:"sin", tag:"mo", output:"sin", tex:null, ttype:UNARY, func:true},
+{input:"cos", tag:"mo", output:"cos", tex:null, ttype:UNARY, func:true},
+{input:"tan", tag:"mo", output:"tan", tex:null, ttype:UNARY, func:true},
+{input:"sinh", tag:"mo", output:"sinh", tex:null, ttype:UNARY, func:true},
+{input:"cosh", tag:"mo", output:"cosh", tex:null, ttype:UNARY, func:true},
+{input:"tanh", tag:"mo", output:"tanh", tex:null, ttype:UNARY, func:true},
+{input:"cot", tag:"mo", output:"cot", tex:null, ttype:UNARY, func:true},
+{input:"sec", tag:"mo", output:"sec", tex:null, ttype:UNARY, func:true},
+{input:"csc", tag:"mo", output:"csc", tex:null, ttype:UNARY, func:true},
+{input:"log", tag:"mo", output:"log", tex:null, ttype:UNARY, func:true},
+{input:"ln", tag:"mo", output:"ln", tex:null, ttype:UNARY, func:true},
+{input:"det", tag:"mo", output:"det", tex:null, ttype:UNARY, func:true},
+{input:"dim", tag:"mo", output:"dim", tex:null, ttype:CONST},
+{input:"mod", tag:"mo", output:"mod", tex:null, ttype:CONST},
+{input:"gcd", tag:"mo", output:"gcd", tex:null, ttype:UNARY, func:true},
+{input:"lcm", tag:"mo", output:"lcm", tex:null, ttype:UNARY, func:true},
+{input:"lub", tag:"mo", output:"lub", tex:null, ttype:CONST},
+{input:"glb", tag:"mo", output:"glb", tex:null, ttype:CONST},
+{input:"min", tag:"mo", output:"min", tex:null, ttype:UNDEROVER},
+{input:"max", tag:"mo", output:"max", tex:null, ttype:UNDEROVER},
+
+//arrows
+{input:"uarr", tag:"mo", output:"\u2191", tex:"uparrow", ttype:CONST},
+{input:"darr", tag:"mo", output:"\u2193", tex:"downarrow", ttype:CONST},
+{input:"rarr", tag:"mo", output:"\u2192", tex:"rightarrow", ttype:CONST},
+{input:"->", tag:"mo", output:"\u2192", tex:"to", ttype:CONST},
+{input:"|->", tag:"mo", output:"\u21A6", tex:"mapsto", ttype:CONST},
+{input:"larr", tag:"mo", output:"\u2190", tex:"leftarrow", ttype:CONST},
+{input:"harr", tag:"mo", output:"\u2194", tex:"leftrightarrow", ttype:CONST},
+{input:"rArr", tag:"mo", output:"\u21D2", tex:"Rightarrow", ttype:CONST},
+{input:"lArr", tag:"mo", output:"\u21D0", tex:"Leftarrow", ttype:CONST},
+{input:"hArr", tag:"mo", output:"\u21D4", tex:"Leftrightarrow", ttype:CONST},
+
+//commands with argument
+AMsqrt, AMroot, AMfrac, AMdiv, AMover, AMsub, AMsup,
+{input:"hat", tag:"mover", output:"\u005E", tex:null, ttype:UNARY, acc:true},
+{input:"bar", tag:"mover", output:"\u00AF", tex:"overline", ttype:UNARY, acc:true},
+{input:"vec", tag:"mover", output:"\u2192", tex:null, ttype:UNARY, acc:true},
+{input:"dot", tag:"mover", output:".", tex:null, ttype:UNARY, acc:true},
+{input:"ddot", tag:"mover", output:"..", tex:null, ttype:UNARY, acc:true},
+{input:"ul", tag:"munder", output:"\u0332", tex:"underline", ttype:UNARY, acc:true},
+AMtext, AMmbox, AMquote,
+{input:"bb", tag:"mstyle", atname:"fontweight", atval:"bold", output:"bb", tex:null, ttype:UNARY},
+{input:"mathbf", tag:"mstyle", atname:"fontweight", atval:"bold", output:"mathbf", tex:null, ttype:UNARY},
+{input:"sf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"sf", tex:null, ttype:UNARY},
+{input:"mathsf", tag:"mstyle", atname:"fontfamily", atval:"sans-serif", output:"mathsf", tex:null, ttype:UNARY},
+{input:"bbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"bbb", tex:null, ttype:UNARY, codes:AMbbb},
+{input:"mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", output:"mathbb", tex:null, ttype:UNARY, codes:AMbbb},
+{input:"cc", tag:"mstyle", atname:"mathvariant", atval:"script", output:"cc", tex:null, ttype:UNARY, codes:AMcal},
+{input:"mathcal", tag:"mstyle", atname:"mathvariant", atval:"script", output:"mathcal", tex:null, ttype:UNARY, codes:AMcal},
+{input:"tt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"tt", tex:null, ttype:UNARY},
+{input:"mathtt", tag:"mstyle", atname:"fontfamily", atval:"monospace", output:"mathtt", tex:null, ttype:UNARY},
+{input:"fr", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"fr", tex:null, ttype:UNARY, codes:AMfrk},
+{input:"mathfrak", tag:"mstyle", atname:"mathvariant", atval:"fraktur", output:"mathfrak", tex:null, ttype:UNARY, codes:AMfrk}
+];
+
+function compareNames(s1,s2) {
+ if (s1.input > s2.input) return 1
+ else return -1;
+}
+
+var AMnames = []; //list of input symbols
+
+function AMinitSymbols() {
+ var texsymbols = [], i;
+ for (i=0; i<AMsymbols.length; i++)
+ if (AMsymbols[i].tex)
+ texsymbols[texsymbols.length] = {input:AMsymbols[i].tex,
+ tag:AMsymbols[i].tag, output:AMsymbols[i].output, ttype:AMsymbols[i].ttype};
+ AMsymbols = AMsymbols.concat(texsymbols);
+ AMsymbols.sort(compareNames);
+ for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
+}
+
+var AMmathml = "http://www.w3.org/1998/Math/MathML";
+
+function AMcreateElementMathML(t) {
+ if (isIE) return document.createElement("m:"+t);
+ else return document.createElementNS(AMmathml,t);
+}
+
+function AMcreateMmlNode(t,frag) {
+// var node = AMcreateElementMathML(name);
+ if (isIE) var node = document.createElement("m:"+t);
+ else var node = document.createElementNS(AMmathml,t);
+ node.appendChild(frag);
+ return node;
+}
+
+function newcommand(oldstr,newstr) {
+ AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
+ tex:null, ttype:DEFINITION}]);
+}
+
+function AMremoveCharsAndBlanks(str,n) {
+//remove n characters and any following blanks
+ var st;
+ if (str.charAt(n)=="\\" && str.charAt(n+1)!="\\" && str.charAt(n+1)!=" ")
+ st = str.slice(n+1);
+ else st = str.slice(n);
+ for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
+ return st.slice(i);
+}
+
+function AMposition(arr, str, n) {
+// return position >=n where str appears or would be inserted
+// assumes arr is sorted
+ if (n==0) {
+ var h,m;
+ n = -1;
+ h = arr.length;
+ while (n+1<h) {
+ m = (n+h) >> 1;
+ if (arr[m]<str) n = m; else h = m;
+ }
+ return h;
+ } else
+ for (var i=n; i<arr.length && arr[i]<str; i++);
+ return i; // i=arr.length || arr[i]>=str
+}
+
+function AMgetSymbol(str) {
+//return maximal initial substring of str that appears in names
+//return null if there is none
+ var k = 0; //new pos
+ var j = 0; //old pos
+ var mk; //match pos
+ var st;
+ var tagst;
+ var match = "";
+ var more = true;
+ for (var i=1; i<=str.length && more; i++) {
+ st = str.slice(0,i); //initial substring of length i
+ j = k;
+ k = AMposition(AMnames, st, j);
+ if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
+ match = AMnames[k];
+ mk = k;
+ i = match.length;
+ }
+ more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
+ }
+ AMpreviousSymbol=AMcurrentSymbol;
+ if (match!=""){
+ AMcurrentSymbol=AMsymbols[mk].ttype;
+ return AMsymbols[mk];
+ }
+// if str[0] is a digit or - return maxsubstring of digits.digits
+ AMcurrentSymbol=CONST;
+ k = 1;
+ st = str.slice(0,1);
+ var integ = true;
+ while ("0"<=st && st<="9" && k<=str.length) {
+ st = str.slice(k,k+1);
+ k++;
+ }
+ if (st == decimalsign) {
+ st = str.slice(k,k+1);
+ if ("0"<=st && st<="9") {
+ integ = false;
+ k++;
+ while ("0"<=st && st<="9" && k<=str.length) {
+ st = str.slice(k,k+1);
+ k++;
+ }
+ }
+ }
+ if ((integ && k>1) || k>2) {
+ st = str.slice(0,k-1);
+ tagst = "mn";
+ } else {
+ k = 2;
+ st = str.slice(0,1); //take 1 character
+ tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
+ }
+ if (st=="-" && AMpreviousSymbol==INFIX) {
+ AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
+ return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
+ }
+ return {input:st, tag:tagst, output:st, ttype:CONST};
+}
+
+function AMremoveBrackets(node) {
+ var st;
+ if (node.nodeName=="mrow") {
+ st = node.firstChild.firstChild.nodeValue;
+ if (st=="(" || st=="[" || st=="{") node.removeChild(node.firstChild);
+ }
+ if (node.nodeName=="mrow") {
+ st = node.lastChild.firstChild.nodeValue;
+ if (st==")" || st=="]" || st=="}") node.removeChild(node.lastChild);
+ }
+}
+
+/*Parsing ASCII math expressions with the following grammar
+v ::= [A-Za-z] | greek letters | numbers | other constant symbols
+u ::= sqrt | text | bb | other unary symbols for font commands
+b ::= frac | root | stackrel binary symbols
+l ::= ( | [ | { | (: | {: left brackets
+r ::= ) | ] | } | :) | :} right brackets
+S ::= v | lEr | uS | bSS Simple expression
+I ::= S_S | S^S | S_S^S | S Intermediate expression
+E ::= IE | I/I Expression
+Each terminal symbol is translated into a corresponding mathml node.*/
+
+var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;
+
+function AMparseSexpr(str) { //parses str and returns [node,tailstr]
+ var symbol, node, result, i, st,// rightvert = false,
+ newFrag = document.createDocumentFragment();
+ str = AMremoveCharsAndBlanks(str,0);
+ symbol = AMgetSymbol(str); //either a token or a bracket or empty
+ if (symbol == null || symbol.ttype == RIGHTBRACKET && AMnestingDepth > 0) {
+ return [null,str];
+ }
+ if (symbol.ttype == DEFINITION) {
+ str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ }
+ switch (symbol.ttype) {
+ case UNDEROVER:
+ case CONST:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str];
+ case LEFTBRACKET: //read (expr+)
+ AMnestingDepth++;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseExpr(str,true);
+ AMnestingDepth--;
+ if (typeof symbol.invisible == "boolean" && symbol.invisible)
+ node = AMcreateMmlNode("mrow",result[0]);
+ else {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ }
+ return [node,result[1]];
+ case TEXT:
+ if (symbol!=AMquote) str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (str.charAt(0)=="{") i=str.indexOf("}");
+ else if (str.charAt(0)=="(") i=str.indexOf(")");
+ else if (str.charAt(0)=="[") i=str.indexOf("]");
+ else if (symbol==AMquote) i=str.slice(1).indexOf("\"")+1;
+ else i = 0;
+ if (i==-1) i = str.length;
+ st = str.slice(1,i);
+ if (st.charAt(0) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ }
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
+ if (st.charAt(st.length-1) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ }
+ str = AMremoveCharsAndBlanks(str,i+1);
+ return [AMcreateMmlNode("mrow",newFrag),str];
+ case UNARY:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
+ st = str.charAt(0);
+ if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ } else {
+ node = AMcreateMmlNode("mrow",
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ node.appendChild(result[0]);
+ return [node,result[1]];
+ }
+ }
+ AMremoveBrackets(result[0]);
+ if (symbol.input == "sqrt") { // sqrt
+ return [AMcreateMmlNode(symbol.tag,result[0]),result[1]];
+ } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.appendChild(AMcreateMmlNode("mo",document.createTextNode(symbol.output)));
+ return [node,result[1]];
+ } else { // font change command
+ if (!isIE && typeof symbol.codes != "undefined") {
+ for (i=0; i<result[0].childNodes.length; i++)
+ if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
+ st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
+ result[0].childNodes[i].firstChild.nodeValue);
+ var newst = [];
+ for (var j=0; j<st.length; j++)
+ if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
+ String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
+ else newst = newst + st.charAt(j);
+ if (result[0].nodeName=="mi")
+ result[0]=AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst));
+ else result[0].replaceChild(AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.setAttribute(symbol.atname,symbol.atval);
+ return [node,result[1]];
+ }
+ case BINARY:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str];
+ AMremoveBrackets(result[0]);
+ var result2 = AMparseSexpr(result[1]);
+ if (result2[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str];
+ AMremoveBrackets(result2[0]);
+ if (symbol.input=="root" || symbol.input=="stackrel")
+ newFrag.appendChild(result2[0]);
+ newFrag.appendChild(result[0]);
+ if (symbol.input=="frac") newFrag.appendChild(result2[0]);
+ return [AMcreateMmlNode(symbol.tag,newFrag),result2[1]];
+ case INFIX:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),str];
+ case SPACE:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","1ex");
+ newFrag.appendChild(node);
+ return [AMcreateMmlNode("mrow",newFrag),str];
+ case LEFTRIGHT:
+// if (rightvert) return [null,str]; else rightvert = true;
+ AMnestingDepth++;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseExpr(str,false);
+ AMnestingDepth--;
+ var st = "";
+ if (result[0].lastChild!=null)
+ st = result[0].lastChild.firstChild.nodeValue;
+ if (st == "|") { // its an absolute value subterm
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ return [node,result[1]];
+ } else { // the "|" is a \mid
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ return [node,str];
+ }
+ default:
+//alert("default");
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str];
+ }
+}
+
+function AMparseIexpr(str) {
+ var symbol, sym1, sym2, node, result, underover;
+ str = AMremoveCharsAndBlanks(str,0);
+ sym1 = AMgetSymbol(str);
+ result = AMparseSexpr(str);
+ node = result[0];
+ str = result[1];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX && symbol.input != "/") {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+// if (symbol.input == "/") result = AMparseIexpr(str); else ...
+ result = AMparseSexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ else AMremoveBrackets(result[0]);
+ str = result[1];
+// if (symbol.input == "/") AMremoveBrackets(node);
+ if (symbol.input == "_") {
+ sym2 = AMgetSymbol(str);
+ underover = (sym1.ttype == UNDEROVER);
+ if (sym2.input == "^") {
+ str = AMremoveCharsAndBlanks(str,sym2.input.length);
+ var res2 = AMparseSexpr(str);
+ AMremoveBrackets(res2[0]);
+ str = res2[1];
+ node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
+ node.appendChild(result[0]);
+ node.appendChild(res2[0]);
+ node = AMcreateMmlNode("mrow",node); // so sum does not stretch
+ } else {
+ node = AMcreateMmlNode((underover?"munder":"msub"),node);
+ node.appendChild(result[0]);
+ }
+ } else {
+ node = AMcreateMmlNode(symbol.tag,node);
+ node.appendChild(result[0]);
+ }
+ }
+ return [node,str];
+}
+
+function AMparseExpr(str,rightbracket) {
+ var symbol, node, result, i, nodeList = [],
+ newFrag = document.createDocumentFragment();
+ do {
+ str = AMremoveCharsAndBlanks(str,0);
+ result = AMparseIexpr(str);
+ node = result[0];
+ str = result[1];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX && symbol.input == "/") {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseIexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ else AMremoveBrackets(result[0]);
+ str = result[1];
+ AMremoveBrackets(node);
+ node = AMcreateMmlNode(symbol.tag,node);
+ node.appendChild(result[0]);
+ newFrag.appendChild(node);
+ symbol = AMgetSymbol(str);
+ }
+ else if (node!=undefined) newFrag.appendChild(node);
+ } while ((symbol.ttype != RIGHTBRACKET &&
+ (symbol.ttype != LEFTRIGHT || rightbracket)
+ || AMnestingDepth == 0) && symbol!=null && symbol.output!="");
+ if (symbol.ttype == RIGHTBRACKET || symbol.ttype == LEFTRIGHT) {
+// if (AMnestingDepth > 0) AMnestingDepth--;
+ var len = newFrag.childNodes.length;
+ if (len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
+ newFrag.childNodes[len-2].nodeName == "mo" &&
+ newFrag.childNodes[len-2].firstChild.nodeValue == ",") { //matrix
+ var right = newFrag.childNodes[len-1].lastChild.firstChild.nodeValue;
+ if (right==")" || right=="]") {
+ var left = newFrag.childNodes[len-1].firstChild.firstChild.nodeValue;
+ if (left=="(" && right==")" && symbol.output != "}" ||
+ left=="[" && right=="]") {
+ var pos = []; // positions of commas
+ var matrix = true;
+ var m = newFrag.childNodes.length;
+ for (i=0; matrix && i<m; i=i+2) {
+ pos[i] = [];
+ node = newFrag.childNodes[i];
+ if (matrix) matrix = node.nodeName=="mrow" &&
+ (i==m-1 || node.nextSibling.nodeName=="mo" &&
+ node.nextSibling.firstChild.nodeValue==",")&&
+ node.firstChild.firstChild.nodeValue==left &&
+ node.lastChild.firstChild.nodeValue==right;
+ if (matrix)
+ for (var j=0; j<node.childNodes.length; j++)
+ if (node.childNodes[j].firstChild.nodeValue==",")
+ pos[i][pos[i].length]=j;
+ if (matrix && i>1) matrix = pos[i].length == pos[i-2].length;
+ }
+ if (matrix) {
+ var row, frag, n, k, table = document.createDocumentFragment();
+ for (i=0; i<m; i=i+2) {
+ row = document.createDocumentFragment();
+ frag = document.createDocumentFragment();
+ node = newFrag.firstChild; // <mrow>(-,-,...,-,-)</mrow>
+ n = node.childNodes.length;
+ k = 0;
+ node.removeChild(node.firstChild); //remove (
+ for (j=1; j<n-1; j++) {
+ if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
+ node.removeChild(node.firstChild); //remove ,
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ k++;
+ } else frag.appendChild(node.firstChild);
+ }
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ if (newFrag.childNodes.length>2) {
+ newFrag.removeChild(newFrag.firstChild); //remove <mrow>)</mrow>
+ newFrag.removeChild(newFrag.firstChild); //remove <mo>,</mo>
+ }
+ table.appendChild(AMcreateMmlNode("mtr",row));
+ }
+ node = AMcreateMmlNode("mtable",table);
+ if (typeof symbol.invisible == "boolean" && symbol.invisible) node.setAttribute("columnalign","left");
+ newFrag.replaceChild(node,newFrag.firstChild);
+ }
+ }
+ }
+ }
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ newFrag.appendChild(node);
+ }
+ }
+ return [newFrag,str];
+}
+
+function AMparseMath(str) {
+ var result, node = AMcreateElementMathML("mstyle");
+ if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
+ if (displaystyle) node.setAttribute("displaystyle","true");
+ if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
+ AMnestingDepth = 0;
+ node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false)[0]);
+ node = AMcreateMmlNode("math",node);
+ if (showasciiformulaonhover) //fixed by djhsu so newline
+ node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
+ if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
+ var fnode = AMcreateElementXHTML("font");
+ fnode.setAttribute("face",mathfontfamily);
+ fnode.appendChild(node);
+ return fnode;
+ }
+ return node;
+}
+
+function AMstrarr2docFrag(arr, linebreaks) {
+ var newFrag=document.createDocumentFragment();
+ var expr = false;
+ for (var i=0; i<arr.length; i++) {
+ if (expr) newFrag.appendChild(AMparseMath(arr[i]));
+ else {
+ var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[0])));
+ for (var j=1; j<arri.length; j++) {
+ newFrag.appendChild(AMcreateElementXHTML("p"));
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[j])));
+ }
+ }
+ expr = !expr;
+ }
+ return newFrag;
+}
+
+function AMprocessNodeR(n, linebreaks) {
+ var mtch, str, arr, frg, i;
+ if (n.childNodes.length == 0) {
+ if ((n.nodeType!=8 || linebreaks) &&
+ n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
+ n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
+ n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
+ str = n.nodeValue;
+ if (!(str == null)) {
+ str = str.replace(/\r\n\r\n/g,"\n\n");
+ if (doubleblankmathdelimiter) {
+ str = str.replace(/\x20\x20\./g," "+AMdelimiter1+".");
+ str = str.replace(/\x20\x20,/g," "+AMdelimiter1+",");
+ str = str.replace(/\x20\x20/g," "+AMdelimiter1+" ");
+ }
+ str = str.replace(/\x20+/g," ");
+ str = str.replace(/\s*\r\n/g," ");
+ mtch = false;
+ str = str.replace(new RegExp(AMescape2, "g"),
+ function(st){mtch=true;return "AMescape2"});
+ str = str.replace(new RegExp(AMescape1, "g"),
+ function(st){mtch=true;return "AMescape1"});
+ str = str.replace(new RegExp(AMdelimiter2regexp, "g"),AMdelimiter1);
+ arr = str.split(AMdelimiter1);
+ for (i=0; i<arr.length; i++)
+ arr[i]=arr[i].replace(/AMescape2/g,AMdelimiter2).
+ replace(/AMescape1/g,AMdelimiter1);
+ if (arr.length>1 || mtch) {
+ if (checkForMathML) {
+ checkForMathML = false;
+ var nd = AMisMathMLavailable();
+ AMnoMathML = nd != null;
+ if (AMnoMathML && notifyIfNoMathML)
+ if (alertIfNoMathML)
+ alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
+ or Firefox/Mozilla/Netscape");
+ else AMbody.insertBefore(nd,AMbody.childNodes[0]);
+ }
+ if (!AMnoMathML) {
+ frg = AMstrarr2docFrag(arr,n.nodeType==8);
+ var len = frg.childNodes.length;
+ n.parentNode.replaceChild(frg,n);
+ return len-1;
+ } else return 0;
+ }
+ }
+ } else return 0;
+ } else if (n.nodeName!="math") {
+ for (i=0; i<n.childNodes.length; i++)
+ i += AMprocessNodeR(n.childNodes[i], linebreaks);
+ }
+ return 0;
+}
+
+function AMprocessNode(n, linebreaks, spanclassAM) {
+ var frag,st;
+ if (spanclassAM!=null) {
+ frag = document.getElementsByTagName("span")
+ for (var i=0;i<frag.length;i++)
+ if (frag[i].className == "AM")
+ AMprocessNodeR(frag[i],linebreaks);
+ } else {
+ try {
+ st = n.innerHTML;
+ } catch(err) {}
+ if (st==null ||
+ st.indexOf(AMdelimiter1)!=-1 || st.indexOf(AMdelimiter2)!=-1)
+ AMprocessNodeR(n,linebreaks);
+ }
+ if (isIE) { //needed to match size and font of formula to surrounding text
+ frag = document.getElementsByTagName('math');
+ for (var i=0;i<frag.length;i++) frag[i].update()
+ }
+}
+
+var AMbody;
+var AMnoMathML = false, AMtranslated = false;
+
+function translate(spanclassAM) {
+ if (!AMtranslated) { // run this only once
+ AMtranslated = true;
+ AMinitSymbols();
+ AMbody = document.getElementsByTagName("body")[0];
+ AMprocessNode(AMbody, false, spanclassAM);
+ }
+}
+
+if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
+ document.write("<object id=\"mathplayer\"\
+ classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
+ document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
+}
+
+// GO1.1 Generic onload by Brothercake
+// http://www.brothercake.com/
+//onload function (replaces the onload="translate()" in the <body> tag)
+function generic()
+{
+ translate();
+};
+//setup onload function
+if(typeof window.addEventListener != 'undefined')
+{
+ //.. gecko, safari, konqueror and standard
+ window.addEventListener('load', generic, false);
+}
+else if(typeof document.addEventListener != 'undefined')
+{
+ //.. opera 7
+ document.addEventListener('load', generic, false);
+}
+else if(typeof window.attachEvent != 'undefined')
+{
+ //.. win/ie
+ window.attachEvent('onload', generic);
+}
+//** remove this condition to degrade older browsers
+else
+{
+ //.. mac/ie5 and anything else that gets this far
+ //if there's an existing onload function
+ if(typeof window.onload == 'function')
+ {
+ //store it
+ var existing = onload;
+ //add new onload handler
+ window.onload = function()
+ {
+ //call existing onload function
+ existing();
+ //call generic onload function
+ generic();
+ };
+ }
+ else
+ {
+ //setup onload function
+ window.onload = generic;
+ }
+}
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>ASCIIMathML Formulae</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a> is
+a clever JavaScript written by Peter Jipsen that dynamically
+transforms mathematical formulae written in a wiki-like plain text
+markup to <a href="http://www.w3.org/Math/">MathML</a> markup which is displayed as
+standard mathematical notation by the Web Browser. See <em>Appendix E</em>
+in the AsciiDoc User Guide for more details.</p></div>
+<div class="paragraph"><p>The AsciiDoc <code>xhtml11</code> backend supports ASCIIMathML&#8201;&#8212;&#8201;it links the
+ASCIIMathML script and escapes ASCIIMathML delimiters and special
+characters to yield valid XHTML. To use ASCIIMathML:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Include the <code>-a asciimath</code> command-line option when you run
+ <code>asciidoc(1)</code>.
+</p>
+</li>
+<li>
+<p>
+Enclose ASCIIMathML formulas inside math or double-dollar
+ passthroughs or in math passthrough blocks.
+</p>
+</li>
+</ol></div>
+<div class="paragraph"><p>Here&#8217;s the <a href="asciimathml.txt">AsciiDoc source</a> that generated this
+page.</p></div>
+<div class="ulist"><div class="title">NOTE</div><ul>
+<li>
+<p>
+When you use the <code>asciimath:[]</code> inline macro you need to escape <code>]</code>
+ characters in the formulas with a backslash, escaping is unnecessary
+ if you use the double-dollar macro (for examples see the second
+ formula below).
+</p>
+</li>
+<li>
+<p>
+See the
+ <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
+ website for ASCIIMathML documentation and the latest version.
+</p>
+</li>
+<li>
+<p>
+If the formulas don&#8217;t appear to be correct you probably need to
+ install the correct math fonts (see the
+ <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>
+ website for details).
+</p>
+</li>
+<li>
+<p>
+See the <a href="latexmathml.html">LaTeXMathML page</a> if you prefer to use
+ LaTeX math formulas.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>A list of example formulas:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+`[[a,b],[c,d]]((n),(k))`
+</p>
+</li>
+<li>
+<p>
+`x/x={(1,if x!=0),(text{undefined},if x=0):}`
+</p>
+</li>
+<li>
+<p>
+`d/dxf(x)=lim_(h-&gt;0)(f(x+h)-f(x))/h`
+</p>
+</li>
+<li>
+<p>
+`sum_(i=1)\^n i=(n(n+1))/2`$ and <strong>bold
+ `int_0\^(pi/2) sinx\ dx=1`</strong>
+</p>
+</li>
+<li>
+<p>
+`(a,b]={x in RR : a &lt; x &lt;= b}`
+</p>
+</li>
+<li>
+<p>
+`x^2+y_1+z_12^34`
+</p>
+</li>
+</ul></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="paragraph"><p>The first three terms factor to give
+`(x+b/(2a))^2=(b^2)/(4a^2)-c/a`.</p></div>
+<div class="paragraph"><p>`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.</p></div>
+<div class="paragraph"><p>Now we take square roots on both sides and get
+`x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a)`.
+Finally we move the `b/(2a)` to the right and simplify to
+get the two solutions:
+<strong>`x_(1,2)=(-b+-sqrt(b^2-4ac))/(2a)`</strong>.</p></div>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/book-docbook.xml b/tests/data/book-docbook.xml
index 7462c33..4e3b258 100644
--- a/tests/data/book-docbook.xml
+++ b/tests/data/book-docbook.xml
@@ -1,214 +1,214 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="en">
-<bookinfo>
- <title>Book Title Goes Here</title>
- <date>2003-12</date>
- <author>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </author>
- <authorinitials>AN</authorinitials>
-<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</bookinfo>
-<dedication id="_example_dedication">
-<title>Example Dedication</title>
-<simpara>Optional dedication.</simpara>
-<simpara>This document is an AsciiDoc book skeleton containing briefly
-annotated example elements plus a couple of example index entries and
-footnotes.</simpara>
-<simpara>Books are normally used to generate DocBook markup and the titles of
-the preface, appendix, bibliography, glossary and index sections are
-significant (<emphasis>specialsections</emphasis>).</simpara>
-</dedication>
-<preface id="_example_preface">
-<title>Example Preface</title>
-<simpara>Optional preface.</simpara>
-<section id="_preface_sub_section">
-<title>Preface Sub-section</title>
-<simpara>Preface sub-section body.</simpara>
-</section>
-</preface>
-<chapter id="_the_first_chapter">
-<title>The First Chapter</title>
-<simpara>Chapters can contain sub-sections nested up to three deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>Chapters can have their own bibliography, glossary and index.</simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section id="_chapter_sub_section">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section id="_chapter_sub_section_2">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</chapter>
-<chapter id="_the_second_chapter">
-<title>The Second Chapter</title>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</chapter>
-<chapter id="_the_third_chapter">
-<title>The Third Chapter</title>
-<simpara>Book chapters are at level 1 and can contain sub-sections.</simpara>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>One or more optional appendixes go here at section level 1.</simpara>
-<section id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Sub-section body.</simpara>
-</section>
-</appendix>
-<bibliography id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv><title>Books</title>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-<bibliodiv><title>Articles</title>
-<bibliomixed>
-<bibliomisc>
-<anchor id="abc2003" xreflabel="[abc2003]"/>[abc2003] Gall Anonim. <emphasis>An article</emphasis>, Whatever. 2003.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<colophon id="_example_colophon">
-<title>Example Colophon</title>
-<simpara>Text at the end of a book describing facts about its production.</simpara>
-</colophon>
-<index id="_example_index">
-<title>Example Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="en">
+<bookinfo>
+ <title>Book Title Goes Here</title>
+ <date>2003-12</date>
+ <author>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </author>
+ <authorinitials>AN</authorinitials>
+<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</bookinfo>
+<dedication id="_example_dedication">
+<title>Example Dedication</title>
+<simpara>Optional dedication.</simpara>
+<simpara>This document is an AsciiDoc book skeleton containing briefly
+annotated example elements plus a couple of example index entries and
+footnotes.</simpara>
+<simpara>Books are normally used to generate DocBook markup and the titles of
+the preface, appendix, bibliography, glossary and index sections are
+significant (<emphasis>specialsections</emphasis>).</simpara>
+</dedication>
+<preface id="_example_preface">
+<title>Example Preface</title>
+<simpara>Optional preface.</simpara>
+<section id="_preface_sub_section">
+<title>Preface Sub-section</title>
+<simpara>Preface sub-section body.</simpara>
+</section>
+</preface>
+<chapter id="_the_first_chapter">
+<title>The First Chapter</title>
+<simpara>Chapters can contain sub-sections nested up to three deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>Chapters can have their own bibliography, glossary and index.</simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section id="_chapter_sub_section">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section id="_chapter_sub_section_2">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</chapter>
+<chapter id="_the_second_chapter">
+<title>The Second Chapter</title>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</chapter>
+<chapter id="_the_third_chapter">
+<title>The Third Chapter</title>
+<simpara>Book chapters are at level 1 and can contain sub-sections.</simpara>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>One or more optional appendixes go here at section level 1.</simpara>
+<section id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Sub-section body.</simpara>
+</section>
+</appendix>
+<bibliography id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv><title>Books</title>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+<bibliodiv><title>Articles</title>
+<bibliomixed>
+<bibliomisc>
+<anchor id="abc2003" xreflabel="[abc2003]"/>[abc2003] Gall Anonim. <emphasis>An article</emphasis>, Whatever. 2003.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<colophon id="_example_colophon">
+<title>Example Colophon</title>
+<simpara>Text at the end of a book describing facts about its production.</simpara>
+</colophon>
+<index id="_example_index">
+<title>Example Index</title>
+</index>
+</book>
diff --git a/tests/data/book-docbook5.xml b/tests/data/book-docbook5.xml
index 1b4d660..5d85345 100644
--- a/tests/data/book-docbook5.xml
+++ b/tests/data/book-docbook5.xml
@@ -1,215 +1,215 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Book Title Goes Here</title>
- <date>2003-12</date>
- <author>
- <personname>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </personname>
- </author>
- <authorinitials>AN</authorinitials>
- <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</info>
-<dedication xml:id="_example_dedication">
-<title>Example Dedication</title>
-<simpara>Optional dedication.</simpara>
-<simpara>This document is an AsciiDoc book skeleton containing briefly
-annotated example elements plus a couple of example index entries and
-footnotes.</simpara>
-<simpara>Books are normally used to generate DocBook markup and the titles of
-the preface, appendix, bibliography, glossary and index sections are
-significant (<emphasis>specialsections</emphasis>).</simpara>
-</dedication>
-<preface xml:id="_example_preface">
-<title>Example Preface</title>
-<simpara>Optional preface.</simpara>
-<section xml:id="_preface_sub_section">
-<title>Preface Sub-section</title>
-<simpara>Preface sub-section body.</simpara>
-</section>
-</preface>
-<chapter xml:id="_the_first_chapter">
-<title>The First Chapter</title>
-<simpara>Chapters can contain sub-sections nested up to three deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>Chapters can have their own bibliography, glossary and index.</simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section xml:id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section xml:id="_chapter_sub_section">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section xml:id="_chapter_sub_section_2">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</chapter>
-<chapter xml:id="_the_second_chapter">
-<title>The Second Chapter</title>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</chapter>
-<chapter xml:id="_the_third_chapter">
-<title>The Third Chapter</title>
-<simpara>Book chapters are at level 1 and can contain sub-sections.</simpara>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>One or more optional appendixes go here at section level 1.</simpara>
-<section xml:id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<simpara>Sub-section body.</simpara>
-</section>
-</appendix>
-<bibliography xml:id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv><title>Books</title>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-<bibliodiv><title>Articles</title>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="abc2003" xreflabel="[abc2003]"/>[abc2003] Gall Anonim. <emphasis>An article</emphasis>, Whatever. 2003.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<colophon xml:id="_example_colophon">
-<title>Example Colophon</title>
-<simpara>Text at the end of a book describing facts about its production.</simpara>
-</colophon>
-<index xml:id="_example_index">
-<title>Example Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Book Title Goes Here</title>
+ <date>2003-12</date>
+ <author>
+ <personname>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </personname>
+ </author>
+ <authorinitials>AN</authorinitials>
+ <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</info>
+<dedication xml:id="_example_dedication">
+<title>Example Dedication</title>
+<simpara>Optional dedication.</simpara>
+<simpara>This document is an AsciiDoc book skeleton containing briefly
+annotated example elements plus a couple of example index entries and
+footnotes.</simpara>
+<simpara>Books are normally used to generate DocBook markup and the titles of
+the preface, appendix, bibliography, glossary and index sections are
+significant (<emphasis>specialsections</emphasis>).</simpara>
+</dedication>
+<preface xml:id="_example_preface">
+<title>Example Preface</title>
+<simpara>Optional preface.</simpara>
+<section xml:id="_preface_sub_section">
+<title>Preface Sub-section</title>
+<simpara>Preface sub-section body.</simpara>
+</section>
+</preface>
+<chapter xml:id="_the_first_chapter">
+<title>The First Chapter</title>
+<simpara>Chapters can contain sub-sections nested up to three deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>Chapters can have their own bibliography, glossary and index.</simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section xml:id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section xml:id="_chapter_sub_section">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section xml:id="_chapter_sub_section_2">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</chapter>
+<chapter xml:id="_the_second_chapter">
+<title>The Second Chapter</title>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</chapter>
+<chapter xml:id="_the_third_chapter">
+<title>The Third Chapter</title>
+<simpara>Book chapters are at level 1 and can contain sub-sections.</simpara>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>One or more optional appendixes go here at section level 1.</simpara>
+<section xml:id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<simpara>Sub-section body.</simpara>
+</section>
+</appendix>
+<bibliography xml:id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv><title>Books</title>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+<bibliodiv><title>Articles</title>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="abc2003" xreflabel="[abc2003]"/>[abc2003] Gall Anonim. <emphasis>An article</emphasis>, Whatever. 2003.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<colophon xml:id="_example_colophon">
+<title>Example Colophon</title>
+<simpara>Text at the end of a book describing facts about its production.</simpara>
+</colophon>
+<index xml:id="_example_index">
+<title>Example Index</title>
+</index>
+</book>
diff --git a/tests/data/book-html4.html b/tests/data/book-html4.html
index bcdc0ee..411784d 100644
--- a/tests/data/book-html4.html
+++ b/tests/data/book-html4.html
@@ -1,158 +1,158 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Book Title Goes Here</title>
-</head>
-<body>
-<h1>Book Title Goes Here</h1>
-<p>
-<strong>Author's Name</strong><br>
-version 1.0,
-2003-12
-</p>
-<hr>
-<h2><a name="_example_dedication"></a>1. Example Dedication</h2>
-<p>Optional dedication.</p>
-<p>This document is an AsciiDoc book skeleton containing briefly
-annotated example elements plus a couple of example index entries and
-footnotes.</p>
-<p>Books are normally used to generate DocBook markup and the titles of
-the preface, appendix, bibliography, glossary and index sections are
-significant (<em>specialsections</em>).</p>
-<hr>
-<h2><a name="_example_preface"></a>2. Example Preface</h2>
-<p>Optional preface.</p>
-<h3><a name="_preface_sub_section"></a>2.1. Preface Sub-section</h3>
-<p>Preface sub-section body.</p>
-<hr>
-<h2><a name="_the_first_chapter"></a>3. The First Chapter</h2>
-<p>Chapters can contain sub-sections nested up to three deep.
-<br><i>[An example footnote.]</i><br></p>
-<p>Chapters can have their own bibliography, glossary and index.</p>
-<p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p>
-<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
-example inline image followed by an example block image:</p>
-<div>
-<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger block image</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>An example table</p>
-</div>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<p>Lorum ipum&#8230;</p>
-</td></tr></table>
-<p><b>Example 1. </b>An example example</p>
-<h3><a name="X1"></a>3.1. Sub-section with Anchor</h3>
-<p>Sub-section at level 2.</p>
-<h4><a name="_chapter_sub_section"></a>3.1.1. Chapter Sub-section</h4>
-<p>Sub-section at level 3.</p>
-<h5><a name="_chapter_sub_section_2"></a>Chapter Sub-section</h5>
-<p>Sub-section at level 4.</p>
-<p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<br><i>[A second example footnote.]</i><br></p>
-<hr>
-<h2><a name="_the_second_chapter"></a>4. The Second Chapter</h2>
-<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
-<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
-<hr>
-<h2><a name="_the_third_chapter"></a>5. The Third Chapter</h2>
-<p>Book chapters are at level 1 and can contain sub-sections.</p>
-<hr>
-<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>One or more optional appendixes go here at section level 1.</p>
-<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
-<p>Sub-section body.</p>
-<hr>
-<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
-<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
-<p><b>Books</b></p><ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<p><b>Articles</b></p><ul>
-<li>
-<p>
-<a name="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_example_glossary"></a>Example Glossary</h2>
-<p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<hr>
-<h2><a name="_example_colophon"></a>Example Colophon</h2>
-<p>Text at the end of a book describing facts about its production.</p>
-<hr>
-<h2><a name="_example_index"></a>Example Index</h2>
-<p></p>
-<p></p>
-<hr><p><small>
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Book Title Goes Here</title>
+</head>
+<body>
+<h1>Book Title Goes Here</h1>
+<p>
+<strong>Author's Name</strong><br>
+version 1.0,
+2003-12
+</p>
+<hr>
+<h2><a name="_example_dedication"></a>1. Example Dedication</h2>
+<p>Optional dedication.</p>
+<p>This document is an AsciiDoc book skeleton containing briefly
+annotated example elements plus a couple of example index entries and
+footnotes.</p>
+<p>Books are normally used to generate DocBook markup and the titles of
+the preface, appendix, bibliography, glossary and index sections are
+significant (<em>specialsections</em>).</p>
+<hr>
+<h2><a name="_example_preface"></a>2. Example Preface</h2>
+<p>Optional preface.</p>
+<h3><a name="_preface_sub_section"></a>2.1. Preface Sub-section</h3>
+<p>Preface sub-section body.</p>
+<hr>
+<h2><a name="_the_first_chapter"></a>3. The First Chapter</h2>
+<p>Chapters can contain sub-sections nested up to three deep.
+<br><i>[An example footnote.]</i><br></p>
+<p>Chapters can have their own bibliography, glossary and index.</p>
+<p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p>
+<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
+example inline image followed by an example block image:</p>
+<div>
+<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger block image</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>An example table</p>
+</div>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<p>Lorum ipum&#8230;</p>
+</td></tr></table>
+<p><b>Example 1. </b>An example example</p>
+<h3><a name="X1"></a>3.1. Sub-section with Anchor</h3>
+<p>Sub-section at level 2.</p>
+<h4><a name="_chapter_sub_section"></a>3.1.1. Chapter Sub-section</h4>
+<p>Sub-section at level 3.</p>
+<h5><a name="_chapter_sub_section_2"></a>Chapter Sub-section</h5>
+<p>Sub-section at level 4.</p>
+<p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<br><i>[A second example footnote.]</i><br></p>
+<hr>
+<h2><a name="_the_second_chapter"></a>4. The Second Chapter</h2>
+<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
+<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
+<hr>
+<h2><a name="_the_third_chapter"></a>5. The Third Chapter</h2>
+<p>Book chapters are at level 1 and can contain sub-sections.</p>
+<hr>
+<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>One or more optional appendixes go here at section level 1.</p>
+<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
+<p>Sub-section body.</p>
+<hr>
+<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
+<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
+<p><b>Books</b></p><ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<p><b>Articles</b></p><ul>
+<li>
+<p>
+<a name="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_example_glossary"></a>Example Glossary</h2>
+<p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<hr>
+<h2><a name="_example_colophon"></a>Example Colophon</h2>
+<p>Text at the end of a book describing facts about its production.</p>
+<hr>
+<h2><a name="_example_index"></a>Example Index</h2>
+<p></p>
+<p></p>
+<hr><p><small>
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/book-html5.html b/tests/data/book-html5.html
index 2ac7994..e8966fd 100644
--- a/tests/data/book-html5.html
+++ b/tests/data/book-html5.html
@@ -1,930 +1,930 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Book Title Goes Here</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Book Title Goes Here</h1>
-<span id="author">Author's Name</span><br>
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_example_dedication">1. Example Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Optional dedication.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc book skeleton containing briefly
-annotated example elements plus a couple of example index entries and
-footnotes.</p></div>
-<div class="paragraph"><p>Books are normally used to generate DocBook markup and the titles of
-the preface, appendix, bibliography, glossary and index sections are
-significant (<em>specialsections</em>).</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_preface">2. Example Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Optional preface.</p></div>
-<div class="sect2">
-<h3 id="_preface_sub_section">2.1. Preface Sub-section</h3>
-<div class="paragraph"><p>Preface sub-section body.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_chapter">3. The First Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters can contain sub-sections nested up to three deep.
-<span class="footnote"><br>[An example footnote.]<br></span></p></div>
-<div class="paragraph"><p>Chapters can have their own bibliography, glossary and index.</p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png">
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. An example table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">3.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_chapter_sub_section">3.1.1. Chapter Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_chapter">4. The Second Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_third_chapter">5. The Third Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>One or more optional appendixes go here at section level 1.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Sub-section body.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><div class="title">Books</div><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-<div class="ulist bibliography"><div class="title">Articles</div><ul>
-<li>
-<p>
-<a id="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_colophon">Example Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_index">Example Index</h2>
-<div class="sectionbody">
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Book Title Goes Here</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Book Title Goes Here</h1>
+<span id="author">Author's Name</span><br>
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_example_dedication">1. Example Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Optional dedication.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc book skeleton containing briefly
+annotated example elements plus a couple of example index entries and
+footnotes.</p></div>
+<div class="paragraph"><p>Books are normally used to generate DocBook markup and the titles of
+the preface, appendix, bibliography, glossary and index sections are
+significant (<em>specialsections</em>).</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_preface">2. Example Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Optional preface.</p></div>
+<div class="sect2">
+<h3 id="_preface_sub_section">2.1. Preface Sub-section</h3>
+<div class="paragraph"><p>Preface sub-section body.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_chapter">3. The First Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters can contain sub-sections nested up to three deep.
+<span class="footnote"><br>[An example footnote.]<br></span></p></div>
+<div class="paragraph"><p>Chapters can have their own bibliography, glossary and index.</p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png">
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. An example table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">3.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_chapter_sub_section">3.1.1. Chapter Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_chapter">4. The Second Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_third_chapter">5. The Third Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>One or more optional appendixes go here at section level 1.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Sub-section body.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><div class="title">Books</div><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+<div class="ulist bibliography"><div class="title">Articles</div><ul>
+<li>
+<p>
+<a id="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_colophon">Example Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_index">Example Index</h2>
+<div class="sectionbody">
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/book-multi-docbook.xml b/tests/data/book-multi-docbook.xml
index 8c15ecb..00225db 100644
--- a/tests/data/book-multi-docbook.xml
+++ b/tests/data/book-multi-docbook.xml
@@ -1,230 +1,230 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="en">
-<bookinfo>
- <title>Multi-Part Book Title Goes Here</title>
- <date>2003-12</date>
- <author>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </author>
- <authorinitials>AN</authorinitials>
-<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</bookinfo>
-<dedication id="_example_dedication">
-<title>Example Dedication</title>
-<simpara>The optional dedication goes here.</simpara>
-<simpara>This document is an AsciiDoc multi-part book skeleton containing
-briefly annotated element placeholders plus a couple of example index
-entries and footnotes. Books are normally used to generate DocBook
-markup and the preface, appendix, bibliography, glossary and index
-section titles are significant (<emphasis>specialsections</emphasis>).</simpara>
-<note><simpara>Multi-part books differ from all other AsciiDoc document formats
-in that top level sections (dedication, preface, book parts,
-appendices, bibliography, glossary, index) must be level zero headings
-(not level one).</simpara></note>
-</dedication>
-<preface id="_example_preface">
-<title>Example Preface</title>
-<simpara>The optional book preface goes here at section level zero.</simpara>
-<section id="_preface_sub_section">
-<title>Preface Sub-section</title>
-<note><simpara>Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</simpara></note>
-</section>
-</preface>
-<part id="_the_first_part_of_the_book">
-<title>The First Part of the Book</title>
-<partintro>
-<title>Optional part introduction title</title>
-<simpara>Optional part introduction goes here.</simpara>
-</partintro>
-<chapter id="_the_first_chapter">
-<title>The First Chapter</title>
-<simpara>Chapters can be grouped by preceding them with a level 0 Book Part
-title.</simpara>
-<simpara>Book chapters are at level 1 and can contain sub-sections nested up to
-three deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
-bibliography, glossary and index. Chapters can have their own
-bibliography, glossary and index.</simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section id="_chapter_sub_section">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section id="_chapter_sub_section_2">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</chapter>
-<chapter id="_the_second_chapter">
-<title>The Second Chapter</title>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</chapter>
-</part>
-<part id="_the_second_part_of_the_book">
-<title>The Second Part of the Book</title>
-<chapter id="_the_first_chapter_of_the_second_part">
-<title>The First Chapter of the Second Part</title>
-<simpara>Chapters grouped into book parts are at level 1 and can contain
-sub-sections.</simpara>
-</chapter>
-</part>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>One or more optional appendixes go here at section level zero.</simpara>
-<section id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<note><simpara>Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</simpara></note>
-</section>
-</appendix>
-<bibliography id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<colophon id="_example_colophon">
-<title>Example Colophon</title>
-<simpara>Text at the end of a book describing facts about its production.</simpara>
-</colophon>
-<index id="_example_index">
-<title>Example Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="en">
+<bookinfo>
+ <title>Multi-Part Book Title Goes Here</title>
+ <date>2003-12</date>
+ <author>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </author>
+ <authorinitials>AN</authorinitials>
+<revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</bookinfo>
+<dedication id="_example_dedication">
+<title>Example Dedication</title>
+<simpara>The optional dedication goes here.</simpara>
+<simpara>This document is an AsciiDoc multi-part book skeleton containing
+briefly annotated element placeholders plus a couple of example index
+entries and footnotes. Books are normally used to generate DocBook
+markup and the preface, appendix, bibliography, glossary and index
+section titles are significant (<emphasis>specialsections</emphasis>).</simpara>
+<note><simpara>Multi-part books differ from all other AsciiDoc document formats
+in that top level sections (dedication, preface, book parts,
+appendices, bibliography, glossary, index) must be level zero headings
+(not level one).</simpara></note>
+</dedication>
+<preface id="_example_preface">
+<title>Example Preface</title>
+<simpara>The optional book preface goes here at section level zero.</simpara>
+<section id="_preface_sub_section">
+<title>Preface Sub-section</title>
+<note><simpara>Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</simpara></note>
+</section>
+</preface>
+<part id="_the_first_part_of_the_book">
+<title>The First Part of the Book</title>
+<partintro>
+<title>Optional part introduction title</title>
+<simpara>Optional part introduction goes here.</simpara>
+</partintro>
+<chapter id="_the_first_chapter">
+<title>The First Chapter</title>
+<simpara>Chapters can be grouped by preceding them with a level 0 Book Part
+title.</simpara>
+<simpara>Book chapters are at level 1 and can contain sub-sections nested up to
+three deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
+bibliography, glossary and index. Chapters can have their own
+bibliography, glossary and index.</simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section id="_chapter_sub_section">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section id="_chapter_sub_section_2">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</chapter>
+<chapter id="_the_second_chapter">
+<title>The Second Chapter</title>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</chapter>
+</part>
+<part id="_the_second_part_of_the_book">
+<title>The Second Part of the Book</title>
+<chapter id="_the_first_chapter_of_the_second_part">
+<title>The First Chapter of the Second Part</title>
+<simpara>Chapters grouped into book parts are at level 1 and can contain
+sub-sections.</simpara>
+</chapter>
+</part>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>One or more optional appendixes go here at section level zero.</simpara>
+<section id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<note><simpara>Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</simpara></note>
+</section>
+</appendix>
+<bibliography id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<colophon id="_example_colophon">
+<title>Example Colophon</title>
+<simpara>Text at the end of a book describing facts about its production.</simpara>
+</colophon>
+<index id="_example_index">
+<title>Example Index</title>
+</index>
+</book>
diff --git a/tests/data/book-multi-docbook5.xml b/tests/data/book-multi-docbook5.xml
index 3243911..5714db9 100644
--- a/tests/data/book-multi-docbook5.xml
+++ b/tests/data/book-multi-docbook5.xml
@@ -1,231 +1,231 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Multi-Part Book Title Goes Here</title>
- <date>2003-12</date>
- <author>
- <personname>
- <firstname>Author's</firstname>
- <surname>Name</surname>
- </personname>
- </author>
- <authorinitials>AN</authorinitials>
- <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
-</info>
-<dedication xml:id="_example_dedication">
-<title>Example Dedication</title>
-<simpara>The optional dedication goes here.</simpara>
-<simpara>This document is an AsciiDoc multi-part book skeleton containing
-briefly annotated element placeholders plus a couple of example index
-entries and footnotes. Books are normally used to generate DocBook
-markup and the preface, appendix, bibliography, glossary and index
-section titles are significant (<emphasis>specialsections</emphasis>).</simpara>
-<note><simpara>Multi-part books differ from all other AsciiDoc document formats
-in that top level sections (dedication, preface, book parts,
-appendices, bibliography, glossary, index) must be level zero headings
-(not level one).</simpara></note>
-</dedication>
-<preface xml:id="_example_preface">
-<title>Example Preface</title>
-<simpara>The optional book preface goes here at section level zero.</simpara>
-<section xml:id="_preface_sub_section">
-<title>Preface Sub-section</title>
-<note><simpara>Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</simpara></note>
-</section>
-</preface>
-<part xml:id="_the_first_part_of_the_book">
-<title>The First Part of the Book</title>
-<partintro>
-<title>Optional part introduction title</title>
-<simpara>Optional part introduction goes here.</simpara>
-</partintro>
-<chapter xml:id="_the_first_chapter">
-<title>The First Chapter</title>
-<simpara>Chapters can be grouped by preceding them with a level 0 Book Part
-title.</simpara>
-<simpara>Book chapters are at level 1 and can contain sub-sections nested up to
-three deep.
-<footnote><simpara>An example footnote.</simpara></footnote>
-<indexterm>
- <primary>Example index entry</primary>
-</indexterm></simpara>
-<simpara>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
-bibliography, glossary and index. Chapters can have their own
-bibliography, glossary and index.</simpara>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-<indexterm>
- <primary>Big cats</primary><secondary>Lions</secondary>
-</indexterm>
-<indexterm>
- <primary>Lions</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Bengal Tiger</primary>
-</indexterm>
-<indexterm>
- <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
-</indexterm>
-<indexterm>
- <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
-</indexterm>
-<indexterm>
- <primary>Siberian Tiger</primary>
-</indexterm>
-Note that multi-entry terms generate separate index entries.</simpara>
-<simpara>Here are a couple of image examples: an <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject>
-example inline image followed by an example block image:</simpara>
-<figure><title>Tiger block image</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<example>
-<title>An example example</title>
-<simpara>Lorum ipum&#8230;</simpara>
-</example>
-<section xml:id="X1">
-<title>Sub-section with Anchor</title>
-<simpara>Sub-section at level 2.</simpara>
-<section xml:id="_chapter_sub_section">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 3.</simpara>
-<section xml:id="_chapter_sub_section_2">
-<title>Chapter Sub-section</title>
-<simpara>Sub-section at level 4.</simpara>
-<simpara>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
-</section>
-</section>
-</section>
-</chapter>
-<chapter xml:id="_the_second_chapter">
-<title>The Second Chapter</title>
-<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
-<indexterm>
- <primary>Second example index entry</primary>
-</indexterm></simpara>
-<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
-</chapter>
-</part>
-<part xml:id="_the_second_part_of_the_book">
-<title>The Second Part of the Book</title>
-<chapter xml:id="_the_first_chapter_of_the_second_part">
-<title>The First Chapter of the Second Part</title>
-<simpara>Chapters grouped into book parts are at level 1 and can contain
-sub-sections.</simpara>
-</chapter>
-</part>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>One or more optional appendixes go here at section level zero.</simpara>
-<section xml:id="_appendix_sub_section">
-<title>Appendix Sub-section</title>
-<note><simpara>Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</simpara></note>
-</section>
-</appendix>
-<bibliography xml:id="_example_bibliography">
-<title>Example Bibliography</title>
-<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_example_glossary">
-<title>Example Glossary</title>
-<simpara>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<colophon xml:id="_example_colophon">
-<title>Example Colophon</title>
-<simpara>Text at the end of a book describing facts about its production.</simpara>
-</colophon>
-<index xml:id="_example_index">
-<title>Example Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Multi-Part Book Title Goes Here</title>
+ <date>2003-12</date>
+ <author>
+ <personname>
+ <firstname>Author's</firstname>
+ <surname>Name</surname>
+ </personname>
+ </author>
+ <authorinitials>AN</authorinitials>
+ <revhistory><revision><revnumber>1.0</revnumber><date>2003-12</date><authorinitials>AN</authorinitials></revision></revhistory>
+</info>
+<dedication xml:id="_example_dedication">
+<title>Example Dedication</title>
+<simpara>The optional dedication goes here.</simpara>
+<simpara>This document is an AsciiDoc multi-part book skeleton containing
+briefly annotated element placeholders plus a couple of example index
+entries and footnotes. Books are normally used to generate DocBook
+markup and the preface, appendix, bibliography, glossary and index
+section titles are significant (<emphasis>specialsections</emphasis>).</simpara>
+<note><simpara>Multi-part books differ from all other AsciiDoc document formats
+in that top level sections (dedication, preface, book parts,
+appendices, bibliography, glossary, index) must be level zero headings
+(not level one).</simpara></note>
+</dedication>
+<preface xml:id="_example_preface">
+<title>Example Preface</title>
+<simpara>The optional book preface goes here at section level zero.</simpara>
+<section xml:id="_preface_sub_section">
+<title>Preface Sub-section</title>
+<note><simpara>Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</simpara></note>
+</section>
+</preface>
+<part xml:id="_the_first_part_of_the_book">
+<title>The First Part of the Book</title>
+<partintro>
+<title>Optional part introduction title</title>
+<simpara>Optional part introduction goes here.</simpara>
+</partintro>
+<chapter xml:id="_the_first_chapter">
+<title>The First Chapter</title>
+<simpara>Chapters can be grouped by preceding them with a level 0 Book Part
+title.</simpara>
+<simpara>Book chapters are at level 1 and can contain sub-sections nested up to
+three deep.
+<footnote><simpara>An example footnote.</simpara></footnote>
+<indexterm>
+ <primary>Example index entry</primary>
+</indexterm></simpara>
+<simpara>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
+bibliography, glossary and index. Chapters can have their own
+bibliography, glossary and index.</simpara>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+<indexterm>
+ <primary>Big cats</primary><secondary>Lions</secondary>
+</indexterm>
+<indexterm>
+ <primary>Lions</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Bengal Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Bengal Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Bengal Tiger</primary>
+</indexterm>
+<indexterm>
+ <primary>Big cats</primary><secondary>Tigers</secondary><tertiary>Siberian Tiger</tertiary>
+</indexterm>
+<indexterm>
+ <primary>Tigers</primary><secondary>Siberian Tiger</secondary>
+</indexterm>
+<indexterm>
+ <primary>Siberian Tiger</primary>
+</indexterm>
+Note that multi-entry terms generate separate index entries.</simpara>
+<simpara>Here are a couple of image examples: an <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject>
+example inline image followed by an example block image:</simpara>
+<figure><title>Tiger block image</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<example>
+<title>An example example</title>
+<simpara>Lorum ipum&#8230;</simpara>
+</example>
+<section xml:id="X1">
+<title>Sub-section with Anchor</title>
+<simpara>Sub-section at level 2.</simpara>
+<section xml:id="_chapter_sub_section">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 3.</simpara>
+<section xml:id="_chapter_sub_section_2">
+<title>Chapter Sub-section</title>
+<simpara>Sub-section at level 4.</simpara>
+<simpara>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<footnote><simpara>A second example footnote.</simpara></footnote></simpara>
+</section>
+</section>
+</section>
+</chapter>
+<chapter xml:id="_the_second_chapter">
+<title>The Second Chapter</title>
+<simpara>An example link to anchor at start of the <link linkend="X1">first sub-section</link>.
+<indexterm>
+ <primary>Second example index entry</primary>
+</indexterm></simpara>
+<simpara>An example link to a bibliography entry <xref linkend="taoup"/>.</simpara>
+</chapter>
+</part>
+<part xml:id="_the_second_part_of_the_book">
+<title>The Second Part of the Book</title>
+<chapter xml:id="_the_first_chapter_of_the_second_part">
+<title>The First Chapter of the Second Part</title>
+<simpara>Chapters grouped into book parts are at level 1 and can contain
+sub-sections.</simpara>
+</chapter>
+</part>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>One or more optional appendixes go here at section level zero.</simpara>
+<section xml:id="_appendix_sub_section">
+<title>Appendix Sub-section</title>
+<note><simpara>Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</simpara></note>
+</section>
+</appendix>
+<bibliography xml:id="_example_bibliography">
+<title>Example Bibliography</title>
+<simpara>The bibliography list is a style of AsciiDoc bulleted list.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_example_glossary">
+<title>Example Glossary</title>
+<simpara>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<colophon xml:id="_example_colophon">
+<title>Example Colophon</title>
+<simpara>Text at the end of a book describing facts about its production.</simpara>
+</colophon>
+<index xml:id="_example_index">
+<title>Example Index</title>
+</index>
+</book>
diff --git a/tests/data/book-multi-html4.html b/tests/data/book-multi-html4.html
index 894f722..34e8496 100644
--- a/tests/data/book-multi-html4.html
+++ b/tests/data/book-multi-html4.html
@@ -1,187 +1,187 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Multi-Part Book Title Goes Here</title>
-</head>
-<body>
-<h1>Multi-Part Book Title Goes Here</h1>
-<p>
-<strong>Author's Name</strong><br>
-version 1.0,
-2003-12
-</p>
-<hr>
-<h2><a name="_example_dedication"></a> Example Dedication</h2>
-<p>The optional dedication goes here.</p>
-<p>This document is an AsciiDoc multi-part book skeleton containing
-briefly annotated element placeholders plus a couple of example index
-entries and footnotes. Books are normally used to generate DocBook
-markup and the preface, appendix, bibliography, glossary and index
-section titles are significant (<em>specialsections</em>).</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Multi-part books differ from all other AsciiDoc document formats
-in that top level sections (dedication, preface, book parts,
-appendices, bibliography, glossary, index) must be level zero headings
-(not level one).</td></tr></table>
-<hr>
-<h2><a name="_example_preface"></a> Example Preface</h2>
-<p>The optional book preface goes here at section level zero.</p>
-<h3><a name="_preface_sub_section"></a>0.1. Preface Sub-section</h3>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td></tr></table>
-<hr>
-<h1><a name="_the_first_part_of_the_book"></a>The First Part of the Book</h1>
-<div>
-<p><b>Optional part introduction title</b></p>
-<p>Optional part introduction goes here.</p>
-</div>
-<hr>
-<h2><a name="_the_first_chapter"></a>1. The First Chapter</h2>
-<p>Chapters can be grouped by preceding them with a level 0 Book Part
-title.</p>
-<p>Book chapters are at level 1 and can contain sub-sections nested up to
-three deep.
-<br><i>[An example footnote.]</i><br></p>
-<p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
-bibliography, glossary and index. Chapters can have their own
-bibliography, glossary and index.</p>
-<p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p>
-<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
-example inline image followed by an example block image:</p>
-<div>
-<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger block image</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>An example table</p>
-</div>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<p>Lorum ipum&#8230;</p>
-</td></tr></table>
-<p><b>Example 1. </b>An example example</p>
-<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
-<p>Sub-section at level 2.</p>
-<h4><a name="_chapter_sub_section"></a>1.1.1. Chapter Sub-section</h4>
-<p>Sub-section at level 3.</p>
-<h5><a name="_chapter_sub_section_2"></a>Chapter Sub-section</h5>
-<p>Sub-section at level 4.</p>
-<p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<br><i>[A second example footnote.]</i><br></p>
-<hr>
-<h2><a name="_the_second_chapter"></a>2. The Second Chapter</h2>
-<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
-<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
-<hr>
-<h1><a name="_the_second_part_of_the_book"></a>The Second Part of the Book</h1>
-<hr>
-<h2><a name="_the_first_chapter_of_the_second_part"></a>1. The First Chapter of the Second Part</h2>
-<p>Chapters grouped into book parts are at level 1 and can contain
-sub-sections.</p>
-<hr>
-<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>One or more optional appendixes go here at section level zero.</p>
-<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td></tr></table>
-<hr>
-<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
-<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_example_glossary"></a>Example Glossary</h2>
-<p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<hr>
-<h2><a name="_example_colophon"></a>Example Colophon</h2>
-<p>Text at the end of a book describing facts about its production.</p>
-<hr>
-<h2><a name="_example_index"></a>Example Index</h2>
-<p></p>
-<p></p>
-<hr><p><small>
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Multi-Part Book Title Goes Here</title>
+</head>
+<body>
+<h1>Multi-Part Book Title Goes Here</h1>
+<p>
+<strong>Author's Name</strong><br>
+version 1.0,
+2003-12
+</p>
+<hr>
+<h2><a name="_example_dedication"></a> Example Dedication</h2>
+<p>The optional dedication goes here.</p>
+<p>This document is an AsciiDoc multi-part book skeleton containing
+briefly annotated element placeholders plus a couple of example index
+entries and footnotes. Books are normally used to generate DocBook
+markup and the preface, appendix, bibliography, glossary and index
+section titles are significant (<em>specialsections</em>).</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Multi-part books differ from all other AsciiDoc document formats
+in that top level sections (dedication, preface, book parts,
+appendices, bibliography, glossary, index) must be level zero headings
+(not level one).</td></tr></table>
+<hr>
+<h2><a name="_example_preface"></a> Example Preface</h2>
+<p>The optional book preface goes here at section level zero.</p>
+<h3><a name="_preface_sub_section"></a>0.1. Preface Sub-section</h3>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td></tr></table>
+<hr>
+<h1><a name="_the_first_part_of_the_book"></a>The First Part of the Book</h1>
+<div>
+<p><b>Optional part introduction title</b></p>
+<p>Optional part introduction goes here.</p>
+</div>
+<hr>
+<h2><a name="_the_first_chapter"></a>1. The First Chapter</h2>
+<p>Chapters can be grouped by preceding them with a level 0 Book Part
+title.</p>
+<p>Book chapters are at level 1 and can contain sub-sections nested up to
+three deep.
+<br><i>[An example footnote.]</i><br></p>
+<p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
+bibliography, glossary and index. Chapters can have their own
+bibliography, glossary and index.</p>
+<p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p>
+<p>Here are a couple of image examples: an <img src="images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">
+example inline image followed by an example block image:</p>
+<div>
+<img src="images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger block image</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>An example table</p>
+</div>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<p>Lorum ipum&#8230;</p>
+</td></tr></table>
+<p><b>Example 1. </b>An example example</p>
+<h3><a name="X1"></a>1.1. Sub-section with Anchor</h3>
+<p>Sub-section at level 2.</p>
+<h4><a name="_chapter_sub_section"></a>1.1.1. Chapter Sub-section</h4>
+<p>Sub-section at level 3.</p>
+<h5><a name="_chapter_sub_section_2"></a>Chapter Sub-section</h5>
+<p>Sub-section at level 4.</p>
+<p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<br><i>[A second example footnote.]</i><br></p>
+<hr>
+<h2><a name="_the_second_chapter"></a>2. The Second Chapter</h2>
+<p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p>
+<p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p>
+<hr>
+<h1><a name="_the_second_part_of_the_book"></a>The Second Part of the Book</h1>
+<hr>
+<h2><a name="_the_first_chapter_of_the_second_part"></a>1. The First Chapter of the Second Part</h2>
+<p>Chapters grouped into book parts are at level 1 and can contain
+sub-sections.</p>
+<hr>
+<h2><a name="_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>One or more optional appendixes go here at section level zero.</p>
+<h3><a name="_appendix_sub_section"></a>Appendix Sub-section</h3>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td></tr></table>
+<hr>
+<h2><a name="_example_bibliography"></a>Example Bibliography</h2>
+<p>The bibliography list is a style of AsciiDoc bulleted list.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_example_glossary"></a>Example Glossary</h2>
+<p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<hr>
+<h2><a name="_example_colophon"></a>Example Colophon</h2>
+<p>Text at the end of a book describing facts about its production.</p>
+<hr>
+<h2><a name="_example_index"></a>Example Index</h2>
+<p></p>
+<p></p>
+<hr><p><small>
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/book-multi-html5.html b/tests/data/book-multi-html5.html
index 5ac0e7e..b13ce56 100644
--- a/tests/data/book-multi-html5.html
+++ b/tests/data/book-multi-html5.html
@@ -1,964 +1,964 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Multi-Part Book Title Goes Here</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Multi-Part Book Title Goes Here</h1>
-<span id="author">Author's Name</span><br>
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_example_dedication"> Example Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional dedication goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc multi-part book skeleton containing
-briefly annotated element placeholders plus a couple of example index
-entries and footnotes. Books are normally used to generate DocBook
-markup and the preface, appendix, bibliography, glossary and index
-section titles are significant (<em>specialsections</em>).</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Multi-part books differ from all other AsciiDoc document formats
-in that top level sections (dedication, preface, book parts,
-appendices, bibliography, glossary, index) must be level zero headings
-(not level one).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_preface"> Example Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional book preface goes here at section level zero.</p></div>
-<div class="sect2">
-<h3 id="_preface_sub_section">0.1. Preface Sub-section</h3>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-<h1 id="_the_first_part_of_the_book">The First Part of the Book</h1>
-<div class="openblock">
-<div class="title">Optional part introduction title</div>
-<div class="content">
-<div class="paragraph"><p>Optional part introduction goes here.</p></div>
-</div></div>
-<div class="sect1">
-<h2 id="_the_first_chapter">1. The First Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters can be grouped by preceding them with a level 0 Book Part
-title.</p></div>
-<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections nested up to
-three deep.
-<span class="footnote"><br>[An example footnote.]<br></span></p></div>
-<div class="paragraph"><p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
-bibliography, glossary and index. Chapters can have their own
-bibliography, glossary and index.</p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png">
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. An example table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_chapter_sub_section">1.1.1. Chapter Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_chapter">2. The Second Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<h1 id="_the_second_part_of_the_book">The Second Part of the Book</h1>
-<div class="sect1">
-<h2 id="_the_first_chapter_of_the_second_part">1. The First Chapter of the Second Part</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain
-sub-sections.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>One or more optional appendixes go here at section level zero.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_colophon">Example Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_index">Example Index</h2>
-<div class="sectionbody">
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Multi-Part Book Title Goes Here</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Multi-Part Book Title Goes Here</h1>
+<span id="author">Author's Name</span><br>
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_example_dedication"> Example Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional dedication goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc multi-part book skeleton containing
+briefly annotated element placeholders plus a couple of example index
+entries and footnotes. Books are normally used to generate DocBook
+markup and the preface, appendix, bibliography, glossary and index
+section titles are significant (<em>specialsections</em>).</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Multi-part books differ from all other AsciiDoc document formats
+in that top level sections (dedication, preface, book parts,
+appendices, bibliography, glossary, index) must be level zero headings
+(not level one).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_preface"> Example Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional book preface goes here at section level zero.</p></div>
+<div class="sect2">
+<h3 id="_preface_sub_section">0.1. Preface Sub-section</h3>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+<h1 id="_the_first_part_of_the_book">The First Part of the Book</h1>
+<div class="openblock">
+<div class="title">Optional part introduction title</div>
+<div class="content">
+<div class="paragraph"><p>Optional part introduction goes here.</p></div>
+</div></div>
+<div class="sect1">
+<h2 id="_the_first_chapter">1. The First Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters can be grouped by preceding them with a level 0 Book Part
+title.</p></div>
+<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections nested up to
+three deep.
+<span class="footnote"><br>[An example footnote.]<br></span></p></div>
+<div class="paragraph"><p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
+bibliography, glossary and index. Chapters can have their own
+bibliography, glossary and index.</p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png">
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. An example table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_chapter_sub_section">1.1.1. Chapter Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br>[A second example footnote.]<br></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_chapter">2. The Second Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<h1 id="_the_second_part_of_the_book">The Second Part of the Book</h1>
+<div class="sect1">
+<h2 id="_the_first_chapter_of_the_second_part">1. The First Chapter of the Second Part</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain
+sub-sections.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>One or more optional appendixes go here at section level zero.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_colophon">Example Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_index">Example Index</h2>
+<div class="sectionbody">
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/book-multi-xhtml11.html b/tests/data/book-multi-xhtml11.html
index 4258d76..ce724cd 100644
--- a/tests/data/book-multi-xhtml11.html
+++ b/tests/data/book-multi-xhtml11.html
@@ -1,968 +1,968 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Multi-Part Book Title Goes Here</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Multi-Part Book Title Goes Here</h1>
-<span id="author">Author's Name</span><br />
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_example_dedication"> Example Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional dedication goes here.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc multi-part book skeleton containing
-briefly annotated element placeholders plus a couple of example index
-entries and footnotes. Books are normally used to generate DocBook
-markup and the preface, appendix, bibliography, glossary and index
-section titles are significant (<em>specialsections</em>).</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Multi-part books differ from all other AsciiDoc document formats
-in that top level sections (dedication, preface, book parts,
-appendices, bibliography, glossary, index) must be level zero headings
-(not level one).</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_preface"> Example Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The optional book preface goes here at section level zero.</p></div>
-<div class="sect2">
-<h3 id="_preface_sub_section">0.1. Preface Sub-section</h3>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-<h1 id="_the_first_part_of_the_book">The First Part of the Book</h1>
-<div class="openblock">
-<div class="title">Optional part introduction title</div>
-<div class="content">
-<div class="paragraph"><p>Optional part introduction goes here.</p></div>
-</div></div>
-<div class="sect1">
-<h2 id="_the_first_chapter">1. The First Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters can be grouped by preceding them with a level 0 Book Part
-title.</p></div>
-<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections nested up to
-three deep.
-<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
-<div class="paragraph"><p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
-bibliography, glossary and index. Chapters can have their own
-bibliography, glossary and index.</p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png" />
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. An example table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">1.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_chapter_sub_section">1.1.1. Chapter Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_chapter">2. The Second Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<h1 id="_the_second_part_of_the_book">The Second Part of the Book</h1>
-<div class="sect1">
-<h2 id="_the_first_chapter_of_the_second_part">1. The First Chapter of the Second Part</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain
-sub-sections.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>One or more optional appendixes go here at section level zero.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Preface and appendix subsections start out of sequence at level
-2 (level 1 is skipped). This only applies to multi-part book
-documents.</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_colophon">Example Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_index">Example Index</h2>
-<div class="sectionbody">
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Multi-Part Book Title Goes Here</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Multi-Part Book Title Goes Here</h1>
+<span id="author">Author's Name</span><br />
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_example_dedication"> Example Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional dedication goes here.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc multi-part book skeleton containing
+briefly annotated element placeholders plus a couple of example index
+entries and footnotes. Books are normally used to generate DocBook
+markup and the preface, appendix, bibliography, glossary and index
+section titles are significant (<em>specialsections</em>).</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Multi-part books differ from all other AsciiDoc document formats
+in that top level sections (dedication, preface, book parts,
+appendices, bibliography, glossary, index) must be level zero headings
+(not level one).</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_preface"> Example Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The optional book preface goes here at section level zero.</p></div>
+<div class="sect2">
+<h3 id="_preface_sub_section">0.1. Preface Sub-section</h3>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+<h1 id="_the_first_part_of_the_book">The First Part of the Book</h1>
+<div class="openblock">
+<div class="title">Optional part introduction title</div>
+<div class="content">
+<div class="paragraph"><p>Optional part introduction goes here.</p></div>
+</div></div>
+<div class="sect1">
+<h2 id="_the_first_chapter">1. The First Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters can be grouped by preceding them with a level 0 Book Part
+title.</p></div>
+<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections nested up to
+three deep.
+<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
+<div class="paragraph"><p>It&#8217;s also worth noting that a book part can have it&#8217;s own preface,
+bibliography, glossary and index. Chapters can have their own
+bibliography, glossary and index.</p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png" />
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. An example table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">1.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_chapter_sub_section">1.1.1. Chapter Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_chapter">2. The Second Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<h1 id="_the_second_part_of_the_book">The Second Part of the Book</h1>
+<div class="sect1">
+<h2 id="_the_first_chapter_of_the_second_part">1. The First Chapter of the Second Part</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters grouped into book parts are at level 1 and can contain
+sub-sections.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>One or more optional appendixes go here at section level zero.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Preface and appendix subsections start out of sequence at level
+2 (level 1 is skipped). This only applies to multi-part book
+documents.</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_colophon">Example Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_index">Example Index</h2>
+<div class="sectionbody">
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/book-xhtml11.html b/tests/data/book-xhtml11.html
index 2751250..c50fe76 100644
--- a/tests/data/book-xhtml11.html
+++ b/tests/data/book-xhtml11.html
@@ -1,934 +1,934 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Book Title Goes Here</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Book Title Goes Here</h1>
-<span id="author">Author's Name</span><br />
-<span id="revnumber">version 1.0,</span>
-<span id="revdate">2003-12</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_example_dedication">1. Example Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Optional dedication.</p></div>
-<div class="paragraph"><p>This document is an AsciiDoc book skeleton containing briefly
-annotated example elements plus a couple of example index entries and
-footnotes.</p></div>
-<div class="paragraph"><p>Books are normally used to generate DocBook markup and the titles of
-the preface, appendix, bibliography, glossary and index sections are
-significant (<em>specialsections</em>).</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_preface">2. Example Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Optional preface.</p></div>
-<div class="sect2">
-<h3 id="_preface_sub_section">2.1. Preface Sub-section</h3>
-<div class="paragraph"><p>Preface sub-section body.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_chapter">3. The First Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Chapters can contain sub-sections nested up to three deep.
-<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
-<div class="paragraph"><p>Chapters can have their own bibliography, glossary and index.</p></div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-
-
-
-Note that multi-entry terms generate separate index entries.</p></div>
-<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
-<img src="images/smallnew.png" alt="images/smallnew.png" />
-</span>
-example inline image followed by an example block image:</p></div>
-<div class="imageblock">
-<div class="content">
-<img src="images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger block image</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. An example table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="exampleblock">
-<div class="title">Example 1. An example example</div>
-<div class="content">
-<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
-</div></div>
-<div class="sect2">
-<h3 id="X1">3.1. Sub-section with Anchor</h3>
-<div class="paragraph"><p>Sub-section at level 2.</p></div>
-<div class="sect3">
-<h4 id="_chapter_sub_section">3.1.1. Chapter Sub-section</h4>
-<div class="paragraph"><p>Sub-section at level 3.</p></div>
-<div class="sect4">
-<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
-<div class="paragraph"><p>Sub-section at level 4.</p></div>
-<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_second_chapter">4. The Second Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_third_chapter">5. The Third Chapter</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>One or more optional appendixes go here at section level 1.</p></div>
-<div class="sect2">
-<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
-<div class="paragraph"><p>Sub-section body.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_bibliography">Example Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
-<div class="ulist bibliography"><div class="title">Books</div><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-<div class="ulist bibliography"><div class="title">Articles</div><ul>
-<li>
-<p>
-<a id="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_glossary">Example Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_colophon">Example Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example_index">Example Index</h2>
-<div class="sectionbody">
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Book Title Goes Here</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Book Title Goes Here</h1>
+<span id="author">Author's Name</span><br />
+<span id="revnumber">version 1.0,</span>
+<span id="revdate">2003-12</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_example_dedication">1. Example Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Optional dedication.</p></div>
+<div class="paragraph"><p>This document is an AsciiDoc book skeleton containing briefly
+annotated example elements plus a couple of example index entries and
+footnotes.</p></div>
+<div class="paragraph"><p>Books are normally used to generate DocBook markup and the titles of
+the preface, appendix, bibliography, glossary and index sections are
+significant (<em>specialsections</em>).</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_preface">2. Example Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Optional preface.</p></div>
+<div class="sect2">
+<h3 id="_preface_sub_section">2.1. Preface Sub-section</h3>
+<div class="paragraph"><p>Preface sub-section body.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_chapter">3. The First Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Chapters can contain sub-sections nested up to three deep.
+<span class="footnote"><br />[An example footnote.]<br /></span></p></div>
+<div class="paragraph"><p>Chapters can have their own bibliography, glossary and index.</p></div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers (Bengal and Siberian) using the alternative syntax index
+entries.
+
+
+
+Note that multi-entry terms generate separate index entries.</p></div>
+<div class="paragraph"><p>Here are a couple of image examples: an <span class="image">
+<img src="images/smallnew.png" alt="images/smallnew.png" />
+</span>
+example inline image followed by an example block image:</p></div>
+<div class="imageblock">
+<div class="content">
+<img src="images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger block image</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. An example table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="exampleblock">
+<div class="title">Example 1. An example example</div>
+<div class="content">
+<div class="paragraph"><p>Lorum ipum&#8230;</p></div>
+</div></div>
+<div class="sect2">
+<h3 id="X1">3.1. Sub-section with Anchor</h3>
+<div class="paragraph"><p>Sub-section at level 2.</p></div>
+<div class="sect3">
+<h4 id="_chapter_sub_section">3.1.1. Chapter Sub-section</h4>
+<div class="paragraph"><p>Sub-section at level 3.</p></div>
+<div class="sect4">
+<h5 id="_chapter_sub_section_2">Chapter Sub-section</h5>
+<div class="paragraph"><p>Sub-section at level 4.</p></div>
+<div class="paragraph"><p>This is the maximum sub-section depth supported by the distributed
+AsciiDoc configuration.
+<span class="footnote"><br />[A second example footnote.]<br /></span></p></div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_second_chapter">4. The Second Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An example link to anchor at start of the <a href="#X1">first sub-section</a>.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#taoup">[taoup]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_third_chapter">5. The Third Chapter</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Book chapters are at level 1 and can contain sub-sections.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>One or more optional appendixes go here at section level 1.</p></div>
+<div class="sect2">
+<h3 id="_appendix_sub_section">Appendix Sub-section</h3>
+<div class="paragraph"><p>Sub-section body.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_bibliography">Example Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The bibliography list is a style of AsciiDoc bulleted list.</p></div>
+<div class="ulist bibliography"><div class="title">Books</div><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+<div class="ulist bibliography"><div class="title">Articles</div><ul>
+<li>
+<p>
+<a id="abc2003"></a>[abc2003] Gall Anonim. <em>An article</em>, Whatever. 2003.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_glossary">Example Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossaries are optional. Glossaries entries are an example of a style
+of AsciiDoc labeled lists.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_colophon">Example Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Text at the end of a book describing facts about its production.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example_index">Example Index</h2>
+<div class="sectionbody">
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/deprecated-quotes-docbook.xml b/tests/data/deprecated-quotes-docbook.xml
index b50016a..3eef45d 100644
--- a/tests/data/deprecated-quotes-docbook.xml
+++ b/tests/data/deprecated-quotes-docbook.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <date>2002-11-25</date>
-</articleinfo>
-<simpara><phrase role="foo">fun with text</phrase>.
-<phrase role="foo">fun with text</phrase>.
-fun with text.
-More <emphasis role="strong">fun with text</emphasis>.
-Yet more <emphasis role="strong">fun with text</emphasis>.
-Yet more <literal>fun with text</literal>.
-Yet more <emphasis>fun with text</emphasis>.</simpara>
-<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
-<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <date>2002-11-25</date>
+</articleinfo>
+<simpara><phrase role="foo">fun with text</phrase>.
+<phrase role="foo">fun with text</phrase>.
+fun with text.
+More <emphasis role="strong">fun with text</emphasis>.
+Yet more <emphasis role="strong">fun with text</emphasis>.
+Yet more <literal>fun with text</literal>.
+Yet more <emphasis>fun with text</emphasis>.</simpara>
+<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
+<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
+</article>
diff --git a/tests/data/deprecated-quotes-docbook5.xml b/tests/data/deprecated-quotes-docbook5.xml
index 588628c..14fb5ad 100644
--- a/tests/data/deprecated-quotes-docbook5.xml
+++ b/tests/data/deprecated-quotes-docbook5.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <date>2002-11-25</date>
-</info>
-<simpara><phrase role="foo">fun with text</phrase>.
-<phrase role="foo">fun with text</phrase>.
-fun with text.
-More <emphasis role="strong">fun with text</emphasis>.
-Yet more <emphasis role="strong">fun with text</emphasis>.
-Yet more <literal>fun with text</literal>.
-Yet more <emphasis>fun with text</emphasis>.</simpara>
-<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
-<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <date>2002-11-25</date>
+</info>
+<simpara><phrase role="foo">fun with text</phrase>.
+<phrase role="foo">fun with text</phrase>.
+fun with text.
+More <emphasis role="strong">fun with text</emphasis>.
+Yet more <emphasis role="strong">fun with text</emphasis>.
+Yet more <literal>fun with text</literal>.
+Yet more <emphasis>fun with text</emphasis>.</simpara>
+<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
+<simpara>Yet more <emphasis>fun with text</emphasis>.</simpara>
+</article>
diff --git a/tests/data/deprecated-quotes-html4.html b/tests/data/deprecated-quotes-html4.html
index 38ff005..2259143 100644
--- a/tests/data/deprecated-quotes-html4.html
+++ b/tests/data/deprecated-quotes-html4.html
@@ -1,25 +1,25 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title></title>
-</head>
-<body>
-<p><span class="foo">fun with text</span>.
-<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
-<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
-More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
-Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
-Yet more <code style="color:red;font-size:1.5em;">fun with text</code>.
-Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p>
-<p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p>
-<p>Yet more <em style="color:orange;">fun with text</em>.</p>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title></title>
+</head>
+<body>
+<p><span class="foo">fun with text</span>.
+<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
+<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
+More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
+Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
+Yet more <code style="color:red;font-size:1.5em;">fun with text</code>.
+Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p>
+<p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p>
+<p>Yet more <em style="color:orange;">fun with text</em>.</p>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/deprecated-quotes-html5.html b/tests/data/deprecated-quotes-html5.html
index e69c38f..b3dfa24 100644
--- a/tests/data/deprecated-quotes-html5.html
+++ b/tests/data/deprecated-quotes-html5.html
@@ -1,755 +1,755 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title></title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-</div>
-<div id="content">
-<div class="paragraph"><p><span class="foo">fun with text</span>.
-<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
-<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
-More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
-Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
-Yet more <span class="monospaced" style="color:red;font-size:1.5em;">fun with text</span>.
-Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
-<div class="paragraph"><p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
-<div class="paragraph"><p>Yet more <em style="color:orange;">fun with text</em>.</p></div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title></title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+</div>
+<div id="content">
+<div class="paragraph"><p><span class="foo">fun with text</span>.
+<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
+<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
+More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
+Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
+Yet more <span class="monospaced" style="color:red;font-size:1.5em;">fun with text</span>.
+Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
+<div class="paragraph"><p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
+<div class="paragraph"><p>Yet more <em style="color:orange;">fun with text</em>.</p></div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/deprecated-quotes-xhtml11.html b/tests/data/deprecated-quotes-xhtml11.html
index 96fc743..fb17391 100644
--- a/tests/data/deprecated-quotes-xhtml11.html
+++ b/tests/data/deprecated-quotes-xhtml11.html
@@ -1,757 +1,757 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title></title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-</div>
-<div id="content">
-<div class="paragraph"><p><span class="foo">fun with text</span>.
-<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
-<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
-More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
-Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
-Yet more <code style="color:red;font-size:1.5em;">fun with text</code>.
-Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
-<div class="paragraph"><p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
-<div class="paragraph"><p>Yet more <em style="color:orange;">fun with text</em>.</p></div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title></title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+</div>
+<div id="content">
+<div class="paragraph"><p><span class="foo">fun with text</span>.
+<span class="foo"><span style="color:green;background-color:yellow;font-size:2em;">fun with text</span></span>.
+<span style="color:green;background-color:yellow;font-size:2em;">fun with text</span>.
+More <strong style="color:red;background-color:black;font-size:4em;">fun with text</strong>.
+Yet more <strong style="color:red;font-size:1.5em;">fun with text</strong>.
+Yet more <code style="color:red;font-size:1.5em;">fun with text</code>.
+Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
+<div class="paragraph"><p>Yet more <em style="color:red;font-size:1.5em;">fun with text</em>.</p></div>
+<div class="paragraph"><p>Yet more <em style="color:orange;">fun with text</em>.</p></div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/filters-test-docbook.xml b/tests/data/filters-test-docbook.xml
index dd58497..c0935ac 100644
--- a/tests/data/filters-test-docbook.xml
+++ b/tests/data/filters-test-docbook.xml
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Filter Tests</title>
-</articleinfo>
-<section id="_toy_filter_example_from_user_guide">
-<title>Toy filter example from User Guide</title>
-<screen><emphasis>''' A multi-line</emphasis>
-<emphasis> comment.'''</emphasis>
-<emphasis role="strong">def</emphasis> sub_word(mo):
-<emphasis> ''' Single line comment.'''</emphasis>
- word = mo.group('word') <emphasis># Inline comment</emphasis>
- <emphasis role="strong">if</emphasis> word <emphasis role="strong">in</emphasis> keywords[language]:
- <emphasis role="strong">return</emphasis> quote + word + quote
- <emphasis role="strong">else</emphasis>:
- <emphasis role="strong">return</emphasis> word</screen>
-</section>
-<section id="_pychart_chart_generations_from_faq">
-<title>Pychart Chart generations from FAQ</title>
-<simpara>No barchart to avoid depending on Pychart for the tests.
-See also: <ulink url="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</ulink></simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="barchart.png"/>
- </imageobject>
- <textobject><phrase>barchart.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-</section>
-<section id="_graphviz_graphs">
-<title>Graphviz Graphs</title>
-<figure><title>Simple graph</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="graphviz1.png"/>
- </imageobject>
- <textobject><phrase>Graphviz->AsciiDoc->HTML</phrase></textobject>
-</mediaobject>
-</figure>
-<figure><title>Not so simple graph</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="graphviz2.png"/>
- </imageobject>
- <textobject><phrase>graphviz2.png</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-<section id="_music_filter">
-<title>Music filter</title>
-<figure><title>A tune generated from ABC notation</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="music1.png"/>
- </imageobject>
- <textobject><phrase>music1.png</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara><link linkend="X1">Link to following fragment</link>.</simpara>
-<figure id="X1"><title>A fragment generated from LilyPond source</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="music2.png"/>
- </imageobject>
- <textobject><phrase>music2.png</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Filter Tests</title>
+</articleinfo>
+<section id="_toy_filter_example_from_user_guide">
+<title>Toy filter example from User Guide</title>
+<screen><emphasis>''' A multi-line</emphasis>
+<emphasis> comment.'''</emphasis>
+<emphasis role="strong">def</emphasis> sub_word(mo):
+<emphasis> ''' Single line comment.'''</emphasis>
+ word = mo.group('word') <emphasis># Inline comment</emphasis>
+ <emphasis role="strong">if</emphasis> word <emphasis role="strong">in</emphasis> keywords[language]:
+ <emphasis role="strong">return</emphasis> quote + word + quote
+ <emphasis role="strong">else</emphasis>:
+ <emphasis role="strong">return</emphasis> word</screen>
+</section>
+<section id="_pychart_chart_generations_from_faq">
+<title>Pychart Chart generations from FAQ</title>
+<simpara>No barchart to avoid depending on Pychart for the tests.
+See also: <ulink url="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</ulink></simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="barchart.png"/>
+ </imageobject>
+ <textobject><phrase>barchart.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+</section>
+<section id="_graphviz_graphs">
+<title>Graphviz Graphs</title>
+<figure><title>Simple graph</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="graphviz1.png"/>
+ </imageobject>
+ <textobject><phrase>Graphviz->AsciiDoc->HTML</phrase></textobject>
+</mediaobject>
+</figure>
+<figure><title>Not so simple graph</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="graphviz2.png"/>
+ </imageobject>
+ <textobject><phrase>graphviz2.png</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+<section id="_music_filter">
+<title>Music filter</title>
+<figure><title>A tune generated from ABC notation</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="music1.png"/>
+ </imageobject>
+ <textobject><phrase>music1.png</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara><link linkend="X1">Link to following fragment</link>.</simpara>
+<figure id="X1"><title>A fragment generated from LilyPond source</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="music2.png"/>
+ </imageobject>
+ <textobject><phrase>music2.png</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+</article>
diff --git a/tests/data/filters-test-docbook5.xml b/tests/data/filters-test-docbook5.xml
index ed65ea1..bd6bc47 100644
--- a/tests/data/filters-test-docbook5.xml
+++ b/tests/data/filters-test-docbook5.xml
@@ -1,73 +1,73 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Filter Tests</title>
-</info>
-<section xml:id="_toy_filter_example_from_user_guide">
-<title>Toy filter example from User Guide</title>
-<screen><emphasis>''' A multi-line</emphasis>
-<emphasis> comment.'''</emphasis>
-<emphasis role="strong">def</emphasis> sub_word(mo):
-<emphasis> ''' Single line comment.'''</emphasis>
- word = mo.group('word') <emphasis># Inline comment</emphasis>
- <emphasis role="strong">if</emphasis> word <emphasis role="strong">in</emphasis> keywords[language]:
- <emphasis role="strong">return</emphasis> quote + word + quote
- <emphasis role="strong">else</emphasis>:
- <emphasis role="strong">return</emphasis> word</screen>
-</section>
-<section xml:id="_pychart_chart_generations_from_faq">
-<title>Pychart Chart generations from FAQ</title>
-<simpara>No barchart to avoid depending on Pychart for the tests.
-See also: <link xlink:href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</link></simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="barchart.png"/>
- </imageobject>
- <textobject><phrase>barchart.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-</section>
-<section xml:id="_graphviz_graphs">
-<title>Graphviz Graphs</title>
-<figure><title>Simple graph</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="graphviz1.png"/>
- </imageobject>
- <textobject><phrase>Graphviz->AsciiDoc->HTML</phrase></textobject>
-</mediaobject>
-</figure>
-<figure><title>Not so simple graph</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="graphviz2.png"/>
- </imageobject>
- <textobject><phrase>graphviz2.png</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-<section xml:id="_music_filter">
-<title>Music filter</title>
-<figure><title>A tune generated from ABC notation</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="music1.png"/>
- </imageobject>
- <textobject><phrase>music1.png</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara><link linkend="X1">Link to following fragment</link>.</simpara>
-<figure xml:id="X1"><title>A fragment generated from LilyPond source</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="music2.png"/>
- </imageobject>
- <textobject><phrase>music2.png</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Filter Tests</title>
+</info>
+<section xml:id="_toy_filter_example_from_user_guide">
+<title>Toy filter example from User Guide</title>
+<screen><emphasis>''' A multi-line</emphasis>
+<emphasis> comment.'''</emphasis>
+<emphasis role="strong">def</emphasis> sub_word(mo):
+<emphasis> ''' Single line comment.'''</emphasis>
+ word = mo.group('word') <emphasis># Inline comment</emphasis>
+ <emphasis role="strong">if</emphasis> word <emphasis role="strong">in</emphasis> keywords[language]:
+ <emphasis role="strong">return</emphasis> quote + word + quote
+ <emphasis role="strong">else</emphasis>:
+ <emphasis role="strong">return</emphasis> word</screen>
+</section>
+<section xml:id="_pychart_chart_generations_from_faq">
+<title>Pychart Chart generations from FAQ</title>
+<simpara>No barchart to avoid depending on Pychart for the tests.
+See also: <link xlink:href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</link></simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="barchart.png"/>
+ </imageobject>
+ <textobject><phrase>barchart.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+</section>
+<section xml:id="_graphviz_graphs">
+<title>Graphviz Graphs</title>
+<figure><title>Simple graph</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="graphviz1.png"/>
+ </imageobject>
+ <textobject><phrase>Graphviz->AsciiDoc->HTML</phrase></textobject>
+</mediaobject>
+</figure>
+<figure><title>Not so simple graph</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="graphviz2.png"/>
+ </imageobject>
+ <textobject><phrase>graphviz2.png</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+<section xml:id="_music_filter">
+<title>Music filter</title>
+<figure><title>A tune generated from ABC notation</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="music1.png"/>
+ </imageobject>
+ <textobject><phrase>music1.png</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara><link linkend="X1">Link to following fragment</link>.</simpara>
+<figure xml:id="X1"><title>A fragment generated from LilyPond source</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="music2.png"/>
+ </imageobject>
+ <textobject><phrase>music2.png</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+</article>
diff --git a/tests/data/filters-test-html4.html b/tests/data/filters-test-html4.html
index abb0dfb..7b02b76 100644
--- a/tests/data/filters-test-html4.html
+++ b/tests/data/filters-test-html4.html
@@ -1,63 +1,63 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Filter Tests</title>
-</head>
-<body>
-<h1>Filter Tests</h1>
-<p>
-</p>
-<hr>
-<h2><a name="_toy_filter_example_from_user_guide"></a>Toy filter example from User Guide</h2>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code><i>''' A multi-line</i>
-<i> comment.'''</i>
-<strong>def</strong> sub_word(mo):
-<i> ''' Single line comment.'''</i>
- word = mo.group('word') <i># Inline comment</i>
- <strong>if</strong> word <strong>in</strong> keywords[language]:
- <strong>return</strong> quote + word + quote
- <strong>else</strong>:
- <strong>return</strong> word</code></pre>
-</td></tr></table>
-<hr>
-<h2><a name="_pychart_chart_generations_from_faq"></a>Pychart Chart generations from FAQ</h2>
-<p>No barchart to avoid depending on Pychart for the tests.
-See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p>
-<div>
-<img src="barchart.png" style="border-width: 0;" alt="barchart.png">
-</div>
-<hr>
-<h2><a name="_graphviz_graphs"></a>Graphviz Graphs</h2>
-<div>
-<img src="graphviz1.png" style="border-width: 0;" alt="Graphviz->AsciiDoc->HTML">
-<p><b>Figure 1. </b>Simple graph</p>
-</div>
-<div>
-<img src="graphviz2.png" style="border-width: 0;" alt="graphviz2.png">
-<p><b>Figure 2. </b>Not so simple graph</p>
-</div>
-<hr>
-<h2><a name="_music_filter"></a>Music filter</h2>
-<div>
-<img src="music1.png" style="border-width: 0;" alt="music1.png">
-<p><b>Figure 3. </b>A tune generated from ABC notation</p>
-</div>
-<p><a href="#X1">Link to following fragment</a>.</p>
-<div>
-<a name="X1"></a>
-<a href="music2.ly">
-<img src="music2.png" style="border-width: 0;" alt="music2.png">
-</a>
-<p><b>Figure 4. </b>A fragment generated from LilyPond source</p>
-</div>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Filter Tests</title>
+</head>
+<body>
+<h1>Filter Tests</h1>
+<p>
+</p>
+<hr>
+<h2><a name="_toy_filter_example_from_user_guide"></a>Toy filter example from User Guide</h2>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code><i>''' A multi-line</i>
+<i> comment.'''</i>
+<strong>def</strong> sub_word(mo):
+<i> ''' Single line comment.'''</i>
+ word = mo.group('word') <i># Inline comment</i>
+ <strong>if</strong> word <strong>in</strong> keywords[language]:
+ <strong>return</strong> quote + word + quote
+ <strong>else</strong>:
+ <strong>return</strong> word</code></pre>
+</td></tr></table>
+<hr>
+<h2><a name="_pychart_chart_generations_from_faq"></a>Pychart Chart generations from FAQ</h2>
+<p>No barchart to avoid depending on Pychart for the tests.
+See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p>
+<div>
+<img src="barchart.png" style="border-width: 0;" alt="barchart.png">
+</div>
+<hr>
+<h2><a name="_graphviz_graphs"></a>Graphviz Graphs</h2>
+<div>
+<img src="graphviz1.png" style="border-width: 0;" alt="Graphviz->AsciiDoc->HTML">
+<p><b>Figure 1. </b>Simple graph</p>
+</div>
+<div>
+<img src="graphviz2.png" style="border-width: 0;" alt="graphviz2.png">
+<p><b>Figure 2. </b>Not so simple graph</p>
+</div>
+<hr>
+<h2><a name="_music_filter"></a>Music filter</h2>
+<div>
+<img src="music1.png" style="border-width: 0;" alt="music1.png">
+<p><b>Figure 3. </b>A tune generated from ABC notation</p>
+</div>
+<p><a href="#X1">Link to following fragment</a>.</p>
+<div>
+<a name="X1"></a>
+<a href="music2.ly">
+<img src="music2.png" style="border-width: 0;" alt="music2.png">
+</a>
+<p><b>Figure 4. </b>A fragment generated from LilyPond source</p>
+</div>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/filters-test-html5.html b/tests/data/filters-test-html5.html
index 304dc32..1e68333 100644
--- a/tests/data/filters-test-html5.html
+++ b/tests/data/filters-test-html5.html
@@ -1,813 +1,813 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Filter Tests</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Filter Tests</h1>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_toy_filter_example_from_user_guide">Toy filter example from User Guide</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content monospaced">
-<pre><i>''' A multi-line</i>
-<i> comment.'''</i>
-<strong>def</strong> sub_word(mo):
-<i> ''' Single line comment.'''</i>
- word = mo.group('word') <i># Inline comment</i>
- <strong>if</strong> word <strong>in</strong> keywords[language]:
- <strong>return</strong> quote + word + quote
- <strong>else</strong>:
- <strong>return</strong> word</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_pychart_chart_generations_from_faq">Pychart Chart generations from FAQ</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>No barchart to avoid depending on Pychart for the tests.
-See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p></div>
-<div class="imageblock">
-<div class="content">
-<img src="barchart.png" alt="barchart.png">
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_graphviz_graphs">Graphviz Graphs</h2>
-<div class="sectionbody">
-<div class="imageblock graphviz">
-<div class="content">
-<img src="graphviz1.png" alt="Graphviz->AsciiDoc->HTML">
-</div>
-<div class="title">Figure 1. Simple graph</div>
-</div>
-<div class="imageblock graphviz">
-<div class="content">
-<img src="graphviz2.png" alt="graphviz2.png">
-</div>
-<div class="title">Figure 2. Not so simple graph</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_music_filter">Music filter</h2>
-<div class="sectionbody">
-<div class="imageblock music">
-<div class="content">
-<img src="music1.png" alt="music1.png">
-</div>
-<div class="title">Figure 3. A tune generated from ABC notation</div>
-</div>
-<div class="paragraph"><p><a href="#X1">Link to following fragment</a>.</p></div>
-<div class="imageblock music" id="X1">
-<div class="content">
-<a class="image" href="music2.ly">
-<img src="music2.png" alt="music2.png">
-</a>
-</div>
-<div class="title">Figure 4. A fragment generated from LilyPond source</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Filter Tests</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Filter Tests</h1>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_toy_filter_example_from_user_guide">Toy filter example from User Guide</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content monospaced">
+<pre><i>''' A multi-line</i>
+<i> comment.'''</i>
+<strong>def</strong> sub_word(mo):
+<i> ''' Single line comment.'''</i>
+ word = mo.group('word') <i># Inline comment</i>
+ <strong>if</strong> word <strong>in</strong> keywords[language]:
+ <strong>return</strong> quote + word + quote
+ <strong>else</strong>:
+ <strong>return</strong> word</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_pychart_chart_generations_from_faq">Pychart Chart generations from FAQ</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>No barchart to avoid depending on Pychart for the tests.
+See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p></div>
+<div class="imageblock">
+<div class="content">
+<img src="barchart.png" alt="barchart.png">
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_graphviz_graphs">Graphviz Graphs</h2>
+<div class="sectionbody">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="graphviz1.png" alt="Graphviz->AsciiDoc->HTML">
+</div>
+<div class="title">Figure 1. Simple graph</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="graphviz2.png" alt="graphviz2.png">
+</div>
+<div class="title">Figure 2. Not so simple graph</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_music_filter">Music filter</h2>
+<div class="sectionbody">
+<div class="imageblock music">
+<div class="content">
+<img src="music1.png" alt="music1.png">
+</div>
+<div class="title">Figure 3. A tune generated from ABC notation</div>
+</div>
+<div class="paragraph"><p><a href="#X1">Link to following fragment</a>.</p></div>
+<div class="imageblock music" id="X1">
+<div class="content">
+<a class="image" href="music2.ly">
+<img src="music2.png" alt="music2.png">
+</a>
+</div>
+<div class="title">Figure 4. A fragment generated from LilyPond source</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/filters-test-xhtml11.html b/tests/data/filters-test-xhtml11.html
index ea517dd..287aab2 100644
--- a/tests/data/filters-test-xhtml11.html
+++ b/tests/data/filters-test-xhtml11.html
@@ -1,815 +1,815 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Filter Tests</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Filter Tests</h1>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_toy_filter_example_from_user_guide">Toy filter example from User Guide</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content">
-<pre><code><i>''' A multi-line</i>
-<i> comment.'''</i>
-<strong>def</strong> sub_word(mo):
-<i> ''' Single line comment.'''</i>
- word = mo.group('word') <i># Inline comment</i>
- <strong>if</strong> word <strong>in</strong> keywords[language]:
- <strong>return</strong> quote + word + quote
- <strong>else</strong>:
- <strong>return</strong> word</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_pychart_chart_generations_from_faq">Pychart Chart generations from FAQ</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>No barchart to avoid depending on Pychart for the tests.
-See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p></div>
-<div class="imageblock">
-<div class="content">
-<img src="barchart.png" alt="barchart.png" />
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_graphviz_graphs">Graphviz Graphs</h2>
-<div class="sectionbody">
-<div class="imageblock graphviz">
-<div class="content">
-<img src="graphviz1.png" alt="Graphviz->AsciiDoc->HTML" />
-</div>
-<div class="title">Figure 1. Simple graph</div>
-</div>
-<div class="imageblock graphviz">
-<div class="content">
-<img src="graphviz2.png" alt="graphviz2.png" />
-</div>
-<div class="title">Figure 2. Not so simple graph</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_music_filter">Music filter</h2>
-<div class="sectionbody">
-<div class="imageblock music">
-<div class="content">
-<img src="music1.png" alt="music1.png" />
-</div>
-<div class="title">Figure 3. A tune generated from ABC notation</div>
-</div>
-<div class="paragraph"><p><a href="#X1">Link to following fragment</a>.</p></div>
-<div class="imageblock music" id="X1">
-<div class="content">
-<a class="image" href="music2.ly">
-<img src="music2.png" alt="music2.png" />
-</a>
-</div>
-<div class="title">Figure 4. A fragment generated from LilyPond source</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Filter Tests</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Filter Tests</h1>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_toy_filter_example_from_user_guide">Toy filter example from User Guide</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre><code><i>''' A multi-line</i>
+<i> comment.'''</i>
+<strong>def</strong> sub_word(mo):
+<i> ''' Single line comment.'''</i>
+ word = mo.group('word') <i># Inline comment</i>
+ <strong>if</strong> word <strong>in</strong> keywords[language]:
+ <strong>return</strong> quote + word + quote
+ <strong>else</strong>:
+ <strong>return</strong> word</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_pychart_chart_generations_from_faq">Pychart Chart generations from FAQ</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>No barchart to avoid depending on Pychart for the tests.
+See also: <a href="https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents">https://asciidoc.org/faq.html#_is_it_possible_to_include_charts_in_asciidoc_documents</a></p></div>
+<div class="imageblock">
+<div class="content">
+<img src="barchart.png" alt="barchart.png" />
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_graphviz_graphs">Graphviz Graphs</h2>
+<div class="sectionbody">
+<div class="imageblock graphviz">
+<div class="content">
+<img src="graphviz1.png" alt="Graphviz->AsciiDoc->HTML" />
+</div>
+<div class="title">Figure 1. Simple graph</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="graphviz2.png" alt="graphviz2.png" />
+</div>
+<div class="title">Figure 2. Not so simple graph</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_music_filter">Music filter</h2>
+<div class="sectionbody">
+<div class="imageblock music">
+<div class="content">
+<img src="music1.png" alt="music1.png" />
+</div>
+<div class="title">Figure 3. A tune generated from ABC notation</div>
+</div>
+<div class="paragraph"><p><a href="#X1">Link to following fragment</a>.</p></div>
+<div class="imageblock music" id="X1">
+<div class="content">
+<a class="image" href="music2.ly">
+<img src="music2.png" alt="music2.png" />
+</a>
+</div>
+<div class="title">Figure 4. A fragment generated from LilyPond source</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-cs-article-test-docbook.xml b/tests/data/lang-cs-article-test-docbook.xml
index bba9e5f..dab6b30 100644
--- a/tests/data/lang-cs-article-test-docbook.xml
+++ b/tests/data/lang-cs-article-test-docbook.xml
@@ -1,119 +1,119 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="cs">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<section id="_abstract">
-<title>Abstract</title>
-<simpara>Abstract special section.</simpara>
-</section>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section id="_appendice_a_example_appendix">
-<title>Appendice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<section id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</section>
-<section id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</section>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="cs">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<section id="_abstract">
+<title>Abstract</title>
+<simpara>Abstract special section.</simpara>
+</section>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section id="_appendice_a_example_appendix">
+<title>Appendice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<section id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</section>
+<section id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</section>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-cs-article-test-docbook5.xml b/tests/data/lang-cs-article-test-docbook5.xml
index 10f7945..249dd0e 100644
--- a/tests/data/lang-cs-article-test-docbook5.xml
+++ b/tests/data/lang-cs-article-test-docbook5.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="cs">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<section xml:id="_abstract">
-<title>Abstract</title>
-<simpara>Abstract special section.</simpara>
-</section>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section xml:id="_appendice_a_example_appendix">
-<title>Appendice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<section xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</section>
-<section xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</section>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="cs">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<section xml:id="_abstract">
+<title>Abstract</title>
+<simpara>Abstract special section.</simpara>
+</section>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section xml:id="_appendice_a_example_appendix">
+<title>Appendice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<section xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</section>
+<section xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</section>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-cs-article-test-html4.html b/tests/data/lang-cs-article-test-html4.html
index e2aacba..8fa611b 100644
--- a/tests/data/lang-cs-article-test-html4.html
+++ b/tests/data/lang-cs-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Poznámka</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varování</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Pozor</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Důležité</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Obrázek 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabulka 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Verze v1.0<br>
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Poznámka</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varování</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Pozor</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Důležité</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Obrázek 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabulka 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Verze v1.0<br>
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-cs-article-test-html5.html b/tests/data/lang-cs-article-test-html5.html
index 7f5e840..b6258fd 100644
--- a/tests/data/lang-cs-article-test-html5.html
+++ b/tests/data/lang-cs-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="cs">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Obsah</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Poznámka</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varování</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Pozor</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Důležité</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Obrázek 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabulka 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Verze v1.0<br>
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="cs">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Obsah</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Poznámka</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varování</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Pozor</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Důležité</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Obrázek 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabulka 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Verze v1.0<br>
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-cs-article-test-xhtml11.html b/tests/data/lang-cs-article-test-xhtml11.html
index a0665df..6d3f88c 100644
--- a/tests/data/lang-cs-article-test-xhtml11.html
+++ b/tests/data/lang-cs-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Obsah</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Poznámka</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varování</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Pozor</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Důležité</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Obrázek 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabulka 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Verze v1.0<br />
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Obsah</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Poznámka</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varování</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Pozor</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Důležité</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Obrázek 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabulka 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Verze v1.0<br />
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-cs-book-test-docbook.xml b/tests/data/lang-cs-book-test-docbook.xml
index b4857f0..7ccdf72 100644
--- a/tests/data/lang-cs-book-test-docbook.xml
+++ b/tests/data/lang-cs-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="cs">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<chapter id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</chapter>
-<chapter id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</chapter>
-<chapter id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</chapter>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter id="_appendice_a_example_appendix">
-<title>Appendice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<chapter id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</chapter>
-<chapter id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</chapter>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="cs">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<chapter id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</chapter>
+<chapter id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</chapter>
+<chapter id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</chapter>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter id="_appendice_a_example_appendix">
+<title>Appendice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<chapter id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</chapter>
+<chapter id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</chapter>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-cs-book-test-docbook5.xml b/tests/data/lang-cs-book-test-docbook5.xml
index ac174f7..a11a9f9 100644
--- a/tests/data/lang-cs-book-test-docbook5.xml
+++ b/tests/data/lang-cs-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="cs">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<chapter xml:id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</chapter>
-<chapter xml:id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</chapter>
-<chapter xml:id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</chapter>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter xml:id="_appendice_a_example_appendix">
-<title>Appendice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<chapter xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</chapter>
-<chapter xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</chapter>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="cs">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<chapter xml:id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</chapter>
+<chapter xml:id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</chapter>
+<chapter xml:id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</chapter>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter xml:id="_appendice_a_example_appendix">
+<title>Appendice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<chapter xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</chapter>
+<chapter xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</chapter>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-cs-book-test-html4.html b/tests/data/lang-cs-book-test-html4.html
index 9f43777..e45bf09 100644
--- a/tests/data/lang-cs-book-test-html4.html
+++ b/tests/data/lang-cs-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedica"></a>Dedica</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_prefazione"></a>Prefazione</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colofone"></a>Colofone</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Poznámka</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varování</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Pozor</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Důležité</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Obrázek 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabulka 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Verze v1.0<br>
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedica"></a>Dedica</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_prefazione"></a>Prefazione</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colofone"></a>Colofone</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Poznámka</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varování</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Pozor</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Důležité</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Obrázek 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabulka 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Verze v1.0<br>
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-cs-book-test-html5.html b/tests/data/lang-cs-book-test-html5.html
index 7254ccc..78714bc 100644
--- a/tests/data/lang-cs-book-test-html5.html
+++ b/tests/data/lang-cs-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="cs">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Obsah</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Poznámka</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varování</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Pozor</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Důležité</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Obrázek 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabulka 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Verze v1.0<br>
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="cs">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Obsah</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Poznámka</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varování</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Pozor</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Důležité</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Obrázek 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabulka 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Verze v1.0<br>
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-cs-book-test-xhtml11.html b/tests/data/lang-cs-book-test-xhtml11.html
index 69abd41..17a4e3f 100644
--- a/tests/data/lang-cs-book-test-xhtml11.html
+++ b/tests/data/lang-cs-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Obsah</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Poznámka</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varování</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Pozor</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Důležité</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Obrázek 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabulka 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Verze v1.0<br />
-Poslední úprava
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Obsah</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Poznámka</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varování</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Pozor</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Důležité</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Obrázek 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabulka 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Verze v1.0<br />
+Poslední úprava
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-cs-man-test-docbook.xml b/tests/data/lang-cs-man-test-docbook.xml
index 13bd48c..744bf06 100644
--- a/tests/data/lang-cs-man-test-docbook.xml
+++ b/tests/data/lang-cs-man-test-docbook.xml
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="cs">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsect1 id="_sinossi">
-<title>SINOSSI</title>
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsect1>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="cs">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsect1 id="_sinossi">
+<title>SINOSSI</title>
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsect1>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-cs-man-test-docbook5.xml b/tests/data/lang-cs-man-test-docbook5.xml
index 9c3f5c6..4491262 100644
--- a/tests/data/lang-cs-man-test-docbook5.xml
+++ b/tests/data/lang-cs-man-test-docbook5.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="cs">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsect1 xml:id="_sinossi">
-<title>SINOSSI</title>
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsect1>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="cs">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsect1 xml:id="_sinossi">
+<title>SINOSSI</title>
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsect1>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-de-article-test-docbook.xml b/tests/data/lang-de-article-test-docbook.xml
index d1fce85..1721619 100644
--- a/tests/data/lang-de-article-test-docbook.xml
+++ b/tests/data/lang-de-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="de">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_zusammenfassung">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_literaturverzeichnis">
-<title>Literaturverzeichnis</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossar">
-<title>Glossar</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_stichwortverzeichnis">
-<title>Stichwortverzeichnis</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="de">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_zusammenfassung">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_literaturverzeichnis">
+<title>Literaturverzeichnis</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossar">
+<title>Glossar</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_stichwortverzeichnis">
+<title>Stichwortverzeichnis</title>
+</index>
+</article>
diff --git a/tests/data/lang-de-article-test-docbook5.xml b/tests/data/lang-de-article-test-docbook5.xml
index 8efe88f..4c6453c 100644
--- a/tests/data/lang-de-article-test-docbook5.xml
+++ b/tests/data/lang-de-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_zusammenfassung">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_literaturverzeichnis">
-<title>Literaturverzeichnis</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossar">
-<title>Glossar</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_stichwortverzeichnis">
-<title>Stichwortverzeichnis</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_zusammenfassung">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_literaturverzeichnis">
+<title>Literaturverzeichnis</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossar">
+<title>Glossar</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_stichwortverzeichnis">
+<title>Stichwortverzeichnis</title>
+</index>
+</article>
diff --git a/tests/data/lang-de-article-test-html4.html b/tests/data/lang-de-article-test-html4.html
index d38d532..034483e 100644
--- a/tests/data/lang-de-article-test-html4.html
+++ b/tests/data/lang-de-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_zusammenfassung"></a>Zusammenfassung</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Anmerkung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tipp</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warnung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Achtung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Wichtig</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Abbildung 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabelle 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_anhang_a_example_appendix"></a>Anhang A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_literaturverzeichnis"></a>Literaturverzeichnis</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossar"></a>Glossar</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_zusammenfassung"></a>Zusammenfassung</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Anmerkung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tipp</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warnung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Achtung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Wichtig</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Abbildung 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabelle 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_anhang_a_example_appendix"></a>Anhang A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_literaturverzeichnis"></a>Literaturverzeichnis</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossar"></a>Glossar</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-de-article-test-html5.html b/tests/data/lang-de-article-test-html5.html
index d348814..11ee0d9 100644
--- a/tests/data/lang-de-article-test-html5.html
+++ b/tests/data/lang-de-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="de">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhaltsverzeichnis</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_zusammenfassung">Zusammenfassung</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Anmerkung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warnung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Achtung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Wichtig</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Abbildung 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabelle 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossar">Glossar</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="de">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhaltsverzeichnis</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_zusammenfassung">Zusammenfassung</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Anmerkung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warnung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Achtung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Wichtig</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Abbildung 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabelle 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossar">Glossar</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-de-article-test-xhtml11.html b/tests/data/lang-de-article-test-xhtml11.html
index 0b73660..bdacf58 100644
--- a/tests/data/lang-de-article-test-xhtml11.html
+++ b/tests/data/lang-de-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhaltsverzeichnis</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_zusammenfassung">Zusammenfassung</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Anmerkung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warnung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Achtung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Wichtig</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Abbildung 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabelle 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossar">Glossar</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhaltsverzeichnis</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_zusammenfassung">Zusammenfassung</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Anmerkung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warnung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Achtung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Wichtig</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Abbildung 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabelle 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossar">Glossar</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-de-book-test-docbook.xml b/tests/data/lang-de-book-test-docbook.xml
index 54da91d..fcaeb51 100644
--- a/tests/data/lang-de-book-test-docbook.xml
+++ b/tests/data/lang-de-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="de">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_widmung">
-<title>Widmung</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_vorwort">
-<title>Vorwort</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_kolophon">
-<title>Kolophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_literaturverzeichnis">
-<title>Literaturverzeichnis</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossar">
-<title>Glossar</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_stichwortverzeichnis">
-<title>Stichwortverzeichnis</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="de">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_widmung">
+<title>Widmung</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_vorwort">
+<title>Vorwort</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_kolophon">
+<title>Kolophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_literaturverzeichnis">
+<title>Literaturverzeichnis</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossar">
+<title>Glossar</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_stichwortverzeichnis">
+<title>Stichwortverzeichnis</title>
+</index>
+</book>
diff --git a/tests/data/lang-de-book-test-docbook5.xml b/tests/data/lang-de-book-test-docbook5.xml
index 6818705..8b06a1e 100644
--- a/tests/data/lang-de-book-test-docbook5.xml
+++ b/tests/data/lang-de-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_widmung">
-<title>Widmung</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_vorwort">
-<title>Vorwort</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_kolophon">
-<title>Kolophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_literaturverzeichnis">
-<title>Literaturverzeichnis</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossar">
-<title>Glossar</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_stichwortverzeichnis">
-<title>Stichwortverzeichnis</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_widmung">
+<title>Widmung</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_vorwort">
+<title>Vorwort</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_kolophon">
+<title>Kolophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_literaturverzeichnis">
+<title>Literaturverzeichnis</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossar">
+<title>Glossar</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_stichwortverzeichnis">
+<title>Stichwortverzeichnis</title>
+</index>
+</book>
diff --git a/tests/data/lang-de-book-test-html4.html b/tests/data/lang-de-book-test-html4.html
index c972179..b01908d 100644
--- a/tests/data/lang-de-book-test-html4.html
+++ b/tests/data/lang-de-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_widmung"></a>Widmung</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_vorwort"></a>Vorwort</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_kolophon"></a>Kolophon</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Anmerkung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tipp</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warnung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Achtung</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Wichtig</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Abbildung 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabelle 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_anhang_a_example_appendix"></a>Anhang A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_literaturverzeichnis"></a>Literaturverzeichnis</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossar"></a>Glossar</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_widmung"></a>Widmung</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_vorwort"></a>Vorwort</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_kolophon"></a>Kolophon</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Anmerkung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tipp</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warnung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Achtung</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Wichtig</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Abbildung 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabelle 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_anhang_a_example_appendix"></a>Anhang A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_literaturverzeichnis"></a>Literaturverzeichnis</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossar"></a>Glossar</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-de-book-test-html5.html b/tests/data/lang-de-book-test-html5.html
index 527b4a6..0a0b574 100644
--- a/tests/data/lang-de-book-test-html5.html
+++ b/tests/data/lang-de-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="de">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhaltsverzeichnis</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_widmung">Widmung</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_vorwort">Vorwort</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_kolophon">Kolophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Anmerkung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warnung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Achtung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Wichtig</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Abbildung 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabelle 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossar">Glossar</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="de">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhaltsverzeichnis</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_widmung">Widmung</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_vorwort">Vorwort</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_kolophon">Kolophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Anmerkung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warnung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Achtung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Wichtig</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Abbildung 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabelle 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossar">Glossar</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-de-book-test-xhtml11.html b/tests/data/lang-de-book-test-xhtml11.html
index ca3993c..6e9f9c3 100644
--- a/tests/data/lang-de-book-test-xhtml11.html
+++ b/tests/data/lang-de-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhaltsverzeichnis</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_widmung">Widmung</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_vorwort">Vorwort</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_kolophon">Kolophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Anmerkung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warnung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Achtung</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Wichtig</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Abbildung 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabelle 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossar">Glossar</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Letzte Änderung
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhaltsverzeichnis</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_widmung">Widmung</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_vorwort">Vorwort</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_kolophon">Kolophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Anmerkung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warnung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Achtung</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Wichtig</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Abbildung 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabelle 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_anhang_a_example_appendix">Anhang A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literaturverzeichnis">Literaturverzeichnis</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossar">Glossar</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Letzte Änderung
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-de-man-test-docbook.xml b/tests/data/lang-de-man-test-docbook.xml
index 2f2d616..5b61911 100644
--- a/tests/data/lang-de-man-test-docbook.xml
+++ b/tests/data/lang-de-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="de">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_übersicht">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="de">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_übersicht">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-de-man-test-docbook5.xml b/tests/data/lang-de-man-test-docbook5.xml
index dd8edd8..bd76794 100644
--- a/tests/data/lang-de-man-test-docbook5.xml
+++ b/tests/data/lang-de-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="de">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_übersicht">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="de">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_übersicht">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-en-article-test-docbook.xml b/tests/data/lang-en-article-test-docbook.xml
index 5cd2529..ac240f9 100644
--- a/tests/data/lang-en-article-test-docbook.xml
+++ b/tests/data/lang-en-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliography">
-<title>Bibliography</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossary">
-<title>Glossary</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliography">
+<title>Bibliography</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossary">
+<title>Glossary</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-en-article-test-docbook5.xml b/tests/data/lang-en-article-test-docbook5.xml
index 86b577c..b88df62 100644
--- a/tests/data/lang-en-article-test-docbook5.xml
+++ b/tests/data/lang-en-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliography">
-<title>Bibliography</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossary">
-<title>Glossary</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliography">
+<title>Bibliography</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossary">
+<title>Glossary</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-en-article-test-html4.html b/tests/data/lang-en-article-test-html4.html
index f9392e5..eeae108 100644
--- a/tests/data/lang-en-article-test-html4.html
+++ b/tests/data/lang-en-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliography"></a>Bibliography</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossary"></a>Glossary</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliography"></a>Bibliography</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossary"></a>Glossary</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-en-article-test-html5.html b/tests/data/lang-en-article-test-html5.html
index 237f3af..de91cc6 100644
--- a/tests/data/lang-en-article-test-html5.html
+++ b/tests/data/lang-en-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table of Contents</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-article-test-xhtml11.html b/tests/data/lang-en-article-test-xhtml11.html
index dea6fac..e07245e 100644
--- a/tests/data/lang-en-article-test-xhtml11.html
+++ b/tests/data/lang-en-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table of Contents</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-book-test-docbook.xml b/tests/data/lang-en-book-test-docbook.xml
index b68ff2c..8ffa79e 100644
--- a/tests/data/lang-en-book-test-docbook.xml
+++ b/tests/data/lang-en-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="en">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedication">
-<title>Dedication</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_preface">
-<title>Preface</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_colophon">
-<title>Colophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliography">
-<title>Bibliography</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossary">
-<title>Glossary</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="en">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedication">
+<title>Dedication</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_preface">
+<title>Preface</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_colophon">
+<title>Colophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliography">
+<title>Bibliography</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossary">
+<title>Glossary</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-en-book-test-docbook5.xml b/tests/data/lang-en-book-test-docbook5.xml
index 69c23ca..6ce0e0b 100644
--- a/tests/data/lang-en-book-test-docbook5.xml
+++ b/tests/data/lang-en-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedication">
-<title>Dedication</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_preface">
-<title>Preface</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_colophon">
-<title>Colophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliography">
-<title>Bibliography</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossary">
-<title>Glossary</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedication">
+<title>Dedication</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_preface">
+<title>Preface</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_colophon">
+<title>Colophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliography">
+<title>Bibliography</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossary">
+<title>Glossary</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-en-book-test-html4.html b/tests/data/lang-en-book-test-html4.html
index ce9ae5a..c5eca05 100644
--- a/tests/data/lang-en-book-test-html4.html
+++ b/tests/data/lang-en-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedication"></a>Dedication</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_preface"></a>Preface</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colophon"></a>Colophon</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliography"></a>Bibliography</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossary"></a>Glossary</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedication"></a>Dedication</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_preface"></a>Preface</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colophon"></a>Colophon</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliography"></a>Bibliography</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossary"></a>Glossary</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-en-book-test-html5.html b/tests/data/lang-en-book-test-html5.html
index d823325..e34e333 100644
--- a/tests/data/lang-en-book-test-html5.html
+++ b/tests/data/lang-en-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table of Contents</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedication">Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_preface">Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colophon">Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedication">Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_preface">Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colophon">Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-book-test-xhtml11.html b/tests/data/lang-en-book-test-xhtml11.html
index 3bd0126..68e3b14 100644
--- a/tests/data/lang-en-book-test-xhtml11.html
+++ b/tests/data/lang-en-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table of Contents</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedication">Dedication</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_preface">Preface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colophon">Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedication">Dedication</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_preface">Preface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colophon">Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-last-updated-is-revdate-test-html4.html b/tests/data/lang-en-last-updated-is-revdate-test-html4.html
index 06b7767..cdacb3b 100644
--- a/tests/data/lang-en-last-updated-is-revdate-test-html4.html
+++ b/tests/data/lang-en-last-updated-is-revdate-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliography"></a>Bibliography</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossary"></a>Glossary</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Last updated
- 2003-12-21
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliography"></a>Bibliography</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossary"></a>Glossary</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Last updated
+ 2003-12-21
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-en-last-updated-is-revdate-test-html5.html b/tests/data/lang-en-last-updated-is-revdate-test-html5.html
index cbdfa62..96fe42c 100644
--- a/tests/data/lang-en-last-updated-is-revdate-test-html5.html
+++ b/tests/data/lang-en-last-updated-is-revdate-test-html5.html
@@ -1,890 +1,890 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Last updated
- 2003-12-21
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Last updated
+ 2003-12-21
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-last-updated-is-revdate-test-xhtml11.html b/tests/data/lang-en-last-updated-is-revdate-test-xhtml11.html
index 17b2160..899b71c 100644
--- a/tests/data/lang-en-last-updated-is-revdate-test-xhtml11.html
+++ b/tests/data/lang-en-last-updated-is-revdate-test-xhtml11.html
@@ -1,894 +1,894 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Last updated
- 2003-12-21
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Last updated
+ 2003-12-21
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-man-test-docbook.xml b/tests/data/lang-en-man-test-docbook.xml
index c00486c..57de5ed 100644
--- a/tests/data/lang-en-man-test-docbook.xml
+++ b/tests/data/lang-en-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="en">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="en">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-en-man-test-docbook5.xml b/tests/data/lang-en-man-test-docbook5.xml
index 752be67..1de553e 100644
--- a/tests/data/lang-en-man-test-docbook5.xml
+++ b/tests/data/lang-en-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="en">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="en">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-en-no-last-updated-test-html4.html b/tests/data/lang-en-no-last-updated-test-html4.html
index 8ebff25..75ccf05 100644
--- a/tests/data/lang-en-no-last-updated-test-html4.html
+++ b/tests/data/lang-en-no-last-updated-test-html4.html
@@ -1,126 +1,126 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliography"></a>Bibliography</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossary"></a>Glossary</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_example_appendix"></a>Appendix A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliography"></a>Bibliography</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossary"></a>Glossary</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+</body>
+</html>
diff --git a/tests/data/lang-en-no-last-updated-test-html5.html b/tests/data/lang-en-no-last-updated-test-html5.html
index 08e7540..5ab91cc 100644
--- a/tests/data/lang-en-no-last-updated-test-html5.html
+++ b/tests/data/lang-en-no-last-updated-test-html5.html
@@ -1,885 +1,885 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Table 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Table 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-en-no-last-updated-test-xhtml11.html b/tests/data/lang-en-no-last-updated-test-xhtml11.html
index bd76d3d..5425f11 100644
--- a/tests/data/lang-en-no-last-updated-test-xhtml11.html
+++ b/tests/data/lang-en-no-last-updated-test-xhtml11.html
@@ -1,889 +1,889 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliography">Bibliography</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossary">Glossary</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_example_appendix">Appendix A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliography">Bibliography</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossary">Glossary</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-es-article-test-docbook.xml b/tests/data/lang-es-article-test-docbook.xml
index b941338..14facd8 100644
--- a/tests/data/lang-es-article-test-docbook.xml
+++ b/tests/data/lang-es-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="es">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_resumen">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografía">
-<title>Bibliografía</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glosario">
-<title>Glosario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_índice">
-<title>Índice</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="es">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_resumen">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografía">
+<title>Bibliografía</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glosario">
+<title>Glosario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_índice">
+<title>Índice</title>
+</index>
+</article>
diff --git a/tests/data/lang-es-article-test-docbook5.xml b/tests/data/lang-es-article-test-docbook5.xml
index 90f7a8d..2a440ac 100644
--- a/tests/data/lang-es-article-test-docbook5.xml
+++ b/tests/data/lang-es-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_resumen">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografía">
-<title>Bibliografía</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glosario">
-<title>Glosario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_índice">
-<title>Índice</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_resumen">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografía">
+<title>Bibliografía</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glosario">
+<title>Glosario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_índice">
+<title>Índice</title>
+</index>
+</article>
diff --git a/tests/data/lang-es-article-test-html4.html b/tests/data/lang-es-article-test-html4.html
index afcf24c..0774dee 100644
--- a/tests/data/lang-es-article-test-html4.html
+++ b/tests/data/lang-es-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_resumen"></a>Resumen</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Sugerencia</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Aviso</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Atención</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabla 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_apéndice_a_example_appendix"></a>Apéndice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografía"></a>Bibliografía</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glosario"></a>Glosario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_resumen"></a>Resumen</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Sugerencia</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Aviso</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Atención</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabla 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_apéndice_a_example_appendix"></a>Apéndice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografía"></a>Bibliografía</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glosario"></a>Glosario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-es-article-test-html5.html b/tests/data/lang-es-article-test-html5.html
index d44e535..9f3242d 100644
--- a/tests/data/lang-es-article-test-html5.html
+++ b/tests/data/lang-es-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="es">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabla de contenidos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_resumen">Resumen</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugerencia</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atención</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabla 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografía">Bibliografía</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glosario">Glosario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="es">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabla de contenidos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_resumen">Resumen</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugerencia</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atención</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabla 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografía">Bibliografía</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glosario">Glosario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-es-article-test-xhtml11.html b/tests/data/lang-es-article-test-xhtml11.html
index b022c03..e0dabee 100644
--- a/tests/data/lang-es-article-test-xhtml11.html
+++ b/tests/data/lang-es-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabla de contenidos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_resumen">Resumen</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugerencia</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atención</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabla 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografía">Bibliografía</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glosario">Glosario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabla de contenidos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_resumen">Resumen</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugerencia</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atención</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabla 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografía">Bibliografía</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glosario">Glosario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-es-book-test-docbook.xml b/tests/data/lang-es-book-test-docbook.xml
index c64fafa..85b0f7c 100644
--- a/tests/data/lang-es-book-test-docbook.xml
+++ b/tests/data/lang-es-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="es">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedicación">
-<title>Dedicación</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_prefacio">
-<title>Prefacio</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_colofón">
-<title>Colofón</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografía">
-<title>Bibliografía</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glosario">
-<title>Glosario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_índice">
-<title>Índice</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="es">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedicación">
+<title>Dedicación</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_prefacio">
+<title>Prefacio</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_colofón">
+<title>Colofón</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografía">
+<title>Bibliografía</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glosario">
+<title>Glosario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_índice">
+<title>Índice</title>
+</index>
+</book>
diff --git a/tests/data/lang-es-book-test-docbook5.xml b/tests/data/lang-es-book-test-docbook5.xml
index 3f9830e..569cc29 100644
--- a/tests/data/lang-es-book-test-docbook5.xml
+++ b/tests/data/lang-es-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedicación">
-<title>Dedicación</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_prefacio">
-<title>Prefacio</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_colofón">
-<title>Colofón</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografía">
-<title>Bibliografía</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glosario">
-<title>Glosario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_índice">
-<title>Índice</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedicación">
+<title>Dedicación</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_prefacio">
+<title>Prefacio</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_colofón">
+<title>Colofón</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografía">
+<title>Bibliografía</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glosario">
+<title>Glosario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_índice">
+<title>Índice</title>
+</index>
+</book>
diff --git a/tests/data/lang-es-book-test-html4.html b/tests/data/lang-es-book-test-html4.html
index 492a54f..e19f024 100644
--- a/tests/data/lang-es-book-test-html4.html
+++ b/tests/data/lang-es-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedicación"></a>Dedicación</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_prefacio"></a>Prefacio</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colofón"></a>Colofón</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Sugerencia</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Aviso</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Atención</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabla 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_apéndice_a_example_appendix"></a>Apéndice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografía"></a>Bibliografía</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glosario"></a>Glosario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedicación"></a>Dedicación</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_prefacio"></a>Prefacio</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colofón"></a>Colofón</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Sugerencia</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Aviso</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Atención</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabla 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_apéndice_a_example_appendix"></a>Apéndice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografía"></a>Bibliografía</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glosario"></a>Glosario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-es-book-test-html5.html b/tests/data/lang-es-book-test-html5.html
index e40643f..ad507dd 100644
--- a/tests/data/lang-es-book-test-html5.html
+++ b/tests/data/lang-es-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="es">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabla de contenidos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedicación">Dedicación</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefacio">Prefacio</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofón">Colofón</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugerencia</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atención</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabla 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografía">Bibliografía</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glosario">Glosario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="es">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabla de contenidos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedicación">Dedicación</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefacio">Prefacio</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofón">Colofón</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugerencia</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atención</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabla 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografía">Bibliografía</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glosario">Glosario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-es-book-test-xhtml11.html b/tests/data/lang-es-book-test-xhtml11.html
index 9d4c6a4..0b3833c 100644
--- a/tests/data/lang-es-book-test-xhtml11.html
+++ b/tests/data/lang-es-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabla de contenidos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedicación">Dedicación</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefacio">Prefacio</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofón">Colofón</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugerencia</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atención</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabla 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografía">Bibliografía</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glosario">Glosario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabla de contenidos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedicación">Dedicación</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefacio">Prefacio</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofón">Colofón</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugerencia</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atención</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabla 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apéndice_a_example_appendix">Apéndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografía">Bibliografía</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glosario">Glosario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-es-man-test-docbook.xml b/tests/data/lang-es-man-test-docbook.xml
index 2eefcaa..c6f2ae8 100644
--- a/tests/data/lang-es-man-test-docbook.xml
+++ b/tests/data/lang-es-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="es">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_sinopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="es">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_sinopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-es-man-test-docbook5.xml b/tests/data/lang-es-man-test-docbook5.xml
index bc529ff..8ed7256 100644
--- a/tests/data/lang-es-man-test-docbook5.xml
+++ b/tests/data/lang-es-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="es">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_sinopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="es">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_sinopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-fr-article-test-docbook.xml b/tests/data/lang-fr-article-test-docbook.xml
index 5b32992..edf9be1 100644
--- a/tests/data/lang-fr-article-test-docbook.xml
+++ b/tests/data/lang-fr-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="fr">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_résumé">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliographie">
-<title>Bibliographie</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossaire">
-<title>Glossaire</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="fr">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_résumé">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliographie">
+<title>Bibliographie</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossaire">
+<title>Glossaire</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-fr-article-test-docbook5.xml b/tests/data/lang-fr-article-test-docbook5.xml
index c1e252a..3194541 100644
--- a/tests/data/lang-fr-article-test-docbook5.xml
+++ b/tests/data/lang-fr-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_résumé">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliographie">
-<title>Bibliographie</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossaire">
-<title>Glossaire</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_résumé">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliographie">
+<title>Bibliographie</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossaire">
+<title>Glossaire</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-fr-article-test-html4.html b/tests/data/lang-fr-article-test-html4.html
index 96e6bbe..9de0fae 100644
--- a/tests/data/lang-fr-article-test-html4.html
+++ b/tests/data/lang-fr-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_résumé"></a>Résumé</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Astuce</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attention</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avertissement</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tableau 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliographie"></a>Bibliographie</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossaire"></a>Glossaire</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_résumé"></a>Résumé</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Astuce</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attention</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avertissement</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tableau 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliographie"></a>Bibliographie</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossaire"></a>Glossaire</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-fr-article-test-html5.html b/tests/data/lang-fr-article-test-html5.html
index c5e262f..9f6d66e 100644
--- a/tests/data/lang-fr-article-test-html5.html
+++ b/tests/data/lang-fr-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="fr">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table des matières</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_résumé">Résumé</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Astuce</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attention</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avertissement</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tableau 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliographie">Bibliographie</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossaire">Glossaire</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="fr">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table des matières</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_résumé">Résumé</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Astuce</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attention</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avertissement</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tableau 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliographie">Bibliographie</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossaire">Glossaire</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-fr-article-test-xhtml11.html b/tests/data/lang-fr-article-test-xhtml11.html
index beabf90..1a5fae1 100644
--- a/tests/data/lang-fr-article-test-xhtml11.html
+++ b/tests/data/lang-fr-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table des matières</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_résumé">Résumé</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Astuce</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attention</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avertissement</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tableau 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliographie">Bibliographie</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossaire">Glossaire</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table des matières</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_résumé">Résumé</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Astuce</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attention</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avertissement</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tableau 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliographie">Bibliographie</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossaire">Glossaire</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-fr-book-test-docbook.xml b/tests/data/lang-fr-book-test-docbook.xml
index df29646..105ca63 100644
--- a/tests/data/lang-fr-book-test-docbook.xml
+++ b/tests/data/lang-fr-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="fr">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dédicace">
-<title>Dédicace</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_préface">
-<title>Préface</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_colophon">
-<title>Colophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliographie">
-<title>Bibliographie</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossaire">
-<title>Glossaire</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="fr">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dédicace">
+<title>Dédicace</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_préface">
+<title>Préface</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_colophon">
+<title>Colophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliographie">
+<title>Bibliographie</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossaire">
+<title>Glossaire</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-fr-book-test-docbook5.xml b/tests/data/lang-fr-book-test-docbook5.xml
index bbf3650..bc71e0e 100644
--- a/tests/data/lang-fr-book-test-docbook5.xml
+++ b/tests/data/lang-fr-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dédicace">
-<title>Dédicace</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_préface">
-<title>Préface</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_colophon">
-<title>Colophon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliographie">
-<title>Bibliographie</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossaire">
-<title>Glossaire</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dédicace">
+<title>Dédicace</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_préface">
+<title>Préface</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_colophon">
+<title>Colophon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliographie">
+<title>Bibliographie</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossaire">
+<title>Glossaire</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-fr-book-test-html4.html b/tests/data/lang-fr-book-test-html4.html
index f645baf..cd2c3fc 100644
--- a/tests/data/lang-fr-book-test-html4.html
+++ b/tests/data/lang-fr-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dédicace"></a>Dédicace</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_préface"></a>Préface</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colophon"></a>Colophon</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Astuce</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attention</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avertissement</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tableau 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliographie"></a>Bibliographie</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossaire"></a>Glossaire</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dédicace"></a>Dédicace</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_préface"></a>Préface</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colophon"></a>Colophon</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Astuce</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attention</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avertissement</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tableau 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliographie"></a>Bibliographie</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossaire"></a>Glossaire</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-fr-book-test-html5.html b/tests/data/lang-fr-book-test-html5.html
index 41dcd53..5bdadc5 100644
--- a/tests/data/lang-fr-book-test-html5.html
+++ b/tests/data/lang-fr-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="fr">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table des matières</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dédicace">Dédicace</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_préface">Préface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colophon">Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Astuce</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attention</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avertissement</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tableau 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliographie">Bibliographie</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossaire">Glossaire</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="fr">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table des matières</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dédicace">Dédicace</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_préface">Préface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colophon">Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Astuce</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attention</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avertissement</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tableau 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliographie">Bibliographie</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossaire">Glossaire</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-fr-book-test-xhtml11.html b/tests/data/lang-fr-book-test-xhtml11.html
index 74bc3a7..c02cc02 100644
--- a/tests/data/lang-fr-book-test-xhtml11.html
+++ b/tests/data/lang-fr-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Table des matières</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dédicace">Dédicace</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_préface">Préface</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colophon">Colophon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Astuce</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attention</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avertissement</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tableau 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliographie">Bibliographie</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossaire">Glossaire</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Dernière mise à jour
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Table des matières</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dédicace">Dédicace</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_préface">Préface</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colophon">Colophon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Astuce</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attention</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avertissement</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tableau 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliographie">Bibliographie</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossaire">Glossaire</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Dernière mise à jour
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-fr-man-test-docbook.xml b/tests/data/lang-fr-man-test-docbook.xml
index 6927623..d94277a 100644
--- a/tests/data/lang-fr-man-test-docbook.xml
+++ b/tests/data/lang-fr-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="fr">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="fr">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-fr-man-test-docbook5.xml b/tests/data/lang-fr-man-test-docbook5.xml
index 1810b17..96d9d19 100644
--- a/tests/data/lang-fr-man-test-docbook5.xml
+++ b/tests/data/lang-fr-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="fr">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="fr">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-hu-article-test-docbook.xml b/tests/data/lang-hu-article-test-docbook.xml
index 8a2b98f..8ffaf89 100644
--- a/tests/data/lang-hu-article-test-docbook.xml
+++ b/tests/data/lang-hu-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="hu">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_kivonat">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliográfia">
-<title>Bibliográfia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_szójegyzék">
-<title>Szójegyzék</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="hu">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_kivonat">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliográfia">
+<title>Bibliográfia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_szójegyzék">
+<title>Szójegyzék</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-hu-article-test-docbook5.xml b/tests/data/lang-hu-article-test-docbook5.xml
index 946c6dd..3926537 100644
--- a/tests/data/lang-hu-article-test-docbook5.xml
+++ b/tests/data/lang-hu-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="hu">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_kivonat">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliográfia">
-<title>Bibliográfia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_szójegyzék">
-<title>Szójegyzék</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="hu">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_kivonat">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliográfia">
+<title>Bibliográfia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_szójegyzék">
+<title>Szójegyzék</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-hu-article-test-html4.html b/tests/data/lang-hu-article-test-html4.html
index 97be79b..dab4c69 100644
--- a/tests/data/lang-hu-article-test-html4.html
+++ b/tests/data/lang-hu-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_kivonat"></a>Kivonat</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Megjegyzés</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tipp</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Figyelem</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Figyelmeztetés</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Fontos</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Ábra 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Táblázat 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_a_függelék_example_appendix"></a>A függelék: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliográfia"></a>Bibliográfia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_szójegyzék"></a>Szójegyzék</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Verzió v1.0<br>
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_kivonat"></a>Kivonat</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Megjegyzés</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tipp</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Figyelem</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Figyelmeztetés</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Fontos</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Ábra 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Táblázat 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_a_függelék_example_appendix"></a>A függelék: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliográfia"></a>Bibliográfia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_szójegyzék"></a>Szójegyzék</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Verzió v1.0<br>
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-hu-article-test-html5.html b/tests/data/lang-hu-article-test-html5.html
index 6317245..e55043d 100644
--- a/tests/data/lang-hu-article-test-html5.html
+++ b/tests/data/lang-hu-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="hu">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tartalomjegyzék</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_kivonat">Kivonat</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Megjegyzés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelem</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelmeztetés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Fontos</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Ábra 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Táblázat 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliográfia">Bibliográfia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_szójegyzék">Szójegyzék</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Verzió v1.0<br>
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="hu">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tartalomjegyzék</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_kivonat">Kivonat</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Megjegyzés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelem</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelmeztetés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Fontos</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Ábra 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Táblázat 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliográfia">Bibliográfia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_szójegyzék">Szójegyzék</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Verzió v1.0<br>
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-hu-article-test-xhtml11.html b/tests/data/lang-hu-article-test-xhtml11.html
index 79f5277..2278941 100644
--- a/tests/data/lang-hu-article-test-xhtml11.html
+++ b/tests/data/lang-hu-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tartalomjegyzék</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_kivonat">Kivonat</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Megjegyzés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelem</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelmeztetés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Fontos</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Ábra 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Táblázat 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliográfia">Bibliográfia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_szójegyzék">Szójegyzék</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Verzió v1.0<br />
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tartalomjegyzék</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_kivonat">Kivonat</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Megjegyzés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelem</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelmeztetés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Fontos</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Ábra 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Táblázat 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliográfia">Bibliográfia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_szójegyzék">Szójegyzék</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Verzió v1.0<br />
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-hu-book-test-docbook.xml b/tests/data/lang-hu-book-test-docbook.xml
index e2dea69..023d4f3 100644
--- a/tests/data/lang-hu-book-test-docbook.xml
+++ b/tests/data/lang-hu-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="hu">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_ajánlás">
-<title>Ajánlás</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_előszó">
-<title>Előszó</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_utószó">
-<title>Utószó</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliográfia">
-<title>Bibliográfia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_szójegyzék">
-<title>Szójegyzék</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="hu">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_ajánlás">
+<title>Ajánlás</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_előszó">
+<title>Előszó</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_utószó">
+<title>Utószó</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliográfia">
+<title>Bibliográfia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_szójegyzék">
+<title>Szójegyzék</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-hu-book-test-docbook5.xml b/tests/data/lang-hu-book-test-docbook5.xml
index f9fe570..8d9b876 100644
--- a/tests/data/lang-hu-book-test-docbook5.xml
+++ b/tests/data/lang-hu-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="hu">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_ajánlás">
-<title>Ajánlás</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_előszó">
-<title>Előszó</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_utószó">
-<title>Utószó</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliográfia">
-<title>Bibliográfia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_szójegyzék">
-<title>Szójegyzék</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="hu">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_ajánlás">
+<title>Ajánlás</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_előszó">
+<title>Előszó</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_utószó">
+<title>Utószó</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliográfia">
+<title>Bibliográfia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_szójegyzék">
+<title>Szójegyzék</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-hu-book-test-html4.html b/tests/data/lang-hu-book-test-html4.html
index 91a2d14..423a5dd 100644
--- a/tests/data/lang-hu-book-test-html4.html
+++ b/tests/data/lang-hu-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_ajánlás"></a>Ajánlás</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_előszó"></a>Előszó</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_utószó"></a>Utószó</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Megjegyzés</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tipp</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Figyelem</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Figyelmeztetés</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Fontos</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Ábra 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Táblázat 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_a_függelék_example_appendix"></a>A függelék: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliográfia"></a>Bibliográfia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_szójegyzék"></a>Szójegyzék</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Verzió v1.0<br>
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_ajánlás"></a>Ajánlás</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_előszó"></a>Előszó</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_utószó"></a>Utószó</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Megjegyzés</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tipp</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Figyelem</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Figyelmeztetés</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Fontos</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Ábra 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Táblázat 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_a_függelék_example_appendix"></a>A függelék: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliográfia"></a>Bibliográfia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_szójegyzék"></a>Szójegyzék</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Verzió v1.0<br>
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-hu-book-test-html5.html b/tests/data/lang-hu-book-test-html5.html
index fbffa35..9b67d79 100644
--- a/tests/data/lang-hu-book-test-html5.html
+++ b/tests/data/lang-hu-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="hu">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tartalomjegyzék</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_ajánlás">Ajánlás</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_előszó">Előszó</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_utószó">Utószó</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Megjegyzés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelem</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelmeztetés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Fontos</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Ábra 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Táblázat 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliográfia">Bibliográfia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_szójegyzék">Szójegyzék</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Verzió v1.0<br>
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="hu">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tartalomjegyzék</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_ajánlás">Ajánlás</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_előszó">Előszó</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_utószó">Utószó</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Megjegyzés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelem</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelmeztetés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Fontos</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Ábra 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Táblázat 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliográfia">Bibliográfia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_szójegyzék">Szójegyzék</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Verzió v1.0<br>
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-hu-book-test-xhtml11.html b/tests/data/lang-hu-book-test-xhtml11.html
index 0f38e4a..1c796a4 100644
--- a/tests/data/lang-hu-book-test-xhtml11.html
+++ b/tests/data/lang-hu-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tartalomjegyzék</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_ajánlás">Ajánlás</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_előszó">Előszó</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_utószó">Utószó</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Megjegyzés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tipp</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelem</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Figyelmeztetés</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Fontos</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Ábra 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Táblázat 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliográfia">Bibliográfia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_szójegyzék">Szójegyzék</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Verzió v1.0<br />
-Utolsó frissítés:
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tartalomjegyzék</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_ajánlás">Ajánlás</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_előszó">Előszó</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_utószó">Utószó</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Megjegyzés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tipp</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelem</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Figyelmeztetés</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Fontos</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Ábra 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Táblázat 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_a_függelék_example_appendix">A függelék: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliográfia">Bibliográfia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_szójegyzék">Szójegyzék</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Verzió v1.0<br />
+Utolsó frissítés:
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-hu-man-test-docbook.xml b/tests/data/lang-hu-man-test-docbook.xml
index 232fc7e..fa47364 100644
--- a/tests/data/lang-hu-man-test-docbook.xml
+++ b/tests/data/lang-hu-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="hu">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_áttekintés">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="hu">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_áttekintés">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-hu-man-test-docbook5.xml b/tests/data/lang-hu-man-test-docbook5.xml
index c3781b7..dd23732 100644
--- a/tests/data/lang-hu-man-test-docbook5.xml
+++ b/tests/data/lang-hu-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="hu">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_áttekintés">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="hu">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_áttekintés">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-it-article-test-docbook.xml b/tests/data/lang-it-article-test-docbook.xml
index f4455df..42b040f 100644
--- a/tests/data/lang-it-article-test-docbook.xml
+++ b/tests/data/lang-it-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="it">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="it">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-it-article-test-docbook5.xml b/tests/data/lang-it-article-test-docbook5.xml
index 1b03e77..e17ae6d 100644
--- a/tests/data/lang-it-article-test-docbook5.xml
+++ b/tests/data/lang-it-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-it-article-test-html4.html b/tests/data/lang-it-article-test-html4.html
index 820fe38..a1aa637 100644
--- a/tests/data/lang-it-article-test-html4.html
+++ b/tests/data/lang-it-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Suggerimento</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avvertenza</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attenzione</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabella 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Suggerimento</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avvertenza</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attenzione</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabella 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-it-article-test-html5.html b/tests/data/lang-it-article-test-html5.html
index 496e605..b6587b4 100644
--- a/tests/data/lang-it-article-test-html5.html
+++ b/tests/data/lang-it-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabella 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="it">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabella 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-it-article-test-xhtml11.html b/tests/data/lang-it-article-test-xhtml11.html
index 907e293..1333bab 100644
--- a/tests/data/lang-it-article-test-xhtml11.html
+++ b/tests/data/lang-it-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabella 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br />
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabella 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br />
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-it-book-test-docbook.xml b/tests/data/lang-it-book-test-docbook.xml
index 441bd1b..80f3cdd 100644
--- a/tests/data/lang-it-book-test-docbook.xml
+++ b/tests/data/lang-it-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="it">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="it">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-it-book-test-docbook5.xml b/tests/data/lang-it-book-test-docbook5.xml
index 9285235..8e0ef80 100644
--- a/tests/data/lang-it-book-test-docbook5.xml
+++ b/tests/data/lang-it-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-it-book-test-html4.html b/tests/data/lang-it-book-test-html4.html
index e9b855b..668de69 100644
--- a/tests/data/lang-it-book-test-html4.html
+++ b/tests/data/lang-it-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedica"></a>Dedica</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_prefazione"></a>Prefazione</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colofone"></a>Colofone</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Suggerimento</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avvertenza</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attenzione</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabella 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedica"></a>Dedica</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_prefazione"></a>Prefazione</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colofone"></a>Colofone</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Suggerimento</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avvertenza</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attenzione</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabella 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-it-book-test-html5.html b/tests/data/lang-it-book-test-html5.html
index 5024851..6f97cff 100644
--- a/tests/data/lang-it-book-test-html5.html
+++ b/tests/data/lang-it-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabella 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="it">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabella 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-it-book-test-xhtml11.html b/tests/data/lang-it-book-test-xhtml11.html
index d1cd69d..b8745c7 100644
--- a/tests/data/lang-it-book-test-xhtml11.html
+++ b/tests/data/lang-it-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabella 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br />
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabella 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br />
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-it-man-test-docbook.xml b/tests/data/lang-it-man-test-docbook.xml
index b43acab..f371490 100644
--- a/tests/data/lang-it-man-test-docbook.xml
+++ b/tests/data/lang-it-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="it">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_sinossi">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="it">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_sinossi">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-it-man-test-docbook5.xml b/tests/data/lang-it-man-test-docbook5.xml
index 2b7bb8e..f67b1db 100644
--- a/tests/data/lang-it-man-test-docbook5.xml
+++ b/tests/data/lang-it-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="it">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_sinossi">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="it">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_sinossi">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ja-article-test-docbook.xml b/tests/data/lang-ja-article-test-docbook.xml
index 4bde2d1..3febdcd 100644
--- a/tests/data/lang-ja-article-test-docbook.xml
+++ b/tests/data/lang-ja-article-test-docbook.xml
@@ -1,116 +1,116 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="ja">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_概要">
-<simpara>概要セクション</simpara>
-</abstract>
-<section id="_第一セクション">
-<title>第一セクション</title>
-<section id="_警告">
-<title>警告</title>
-<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>虎の絵</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>続いて表の例。</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> オプション </entry>
-<entry align="left" valign="top"> 説明</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
-</section>
-</section>
-<appendix id="_付録の例">
-<title>付録の例</title>
-<simpara>付録セクション</simpara>
-</appendix>
-<bibliography id="_参考文献">
-<title>参考文献</title>
-<simpara>参考文献セクション</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_用語集">
-<title>用語集</title>
-<simpara>用語集セクション</simpara>
-<glossentry>
-<glossterm>
-用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-別の用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_索引">
-<title>索引</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="ja">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_概要">
+<simpara>概要セクション</simpara>
+</abstract>
+<section id="_第一セクション">
+<title>第一セクション</title>
+<section id="_警告">
+<title>警告</title>
+<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>虎の絵</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>続いて表の例。</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> オプション </entry>
+<entry align="left" valign="top"> 説明</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
+</section>
+</section>
+<appendix id="_付録の例">
+<title>付録の例</title>
+<simpara>付録セクション</simpara>
+</appendix>
+<bibliography id="_参考文献">
+<title>参考文献</title>
+<simpara>参考文献セクション</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_用語集">
+<title>用語集</title>
+<simpara>用語集セクション</simpara>
+<glossentry>
+<glossterm>
+用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+別の用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_索引">
+<title>索引</title>
+</index>
+</article>
diff --git a/tests/data/lang-ja-article-test-docbook5.xml b/tests/data/lang-ja-article-test-docbook5.xml
index 58b20ed..b23fae5 100644
--- a/tests/data/lang-ja-article-test-docbook5.xml
+++ b/tests/data/lang-ja-article-test-docbook5.xml
@@ -1,115 +1,115 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ja">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_概要">
-<simpara>概要セクション</simpara>
-</abstract>
-<section xml:id="_第一セクション">
-<title>第一セクション</title>
-<section xml:id="_警告">
-<title>警告</title>
-<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>虎の絵</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>続いて表の例。</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> オプション </entry>
-<entry align="left" valign="top"> 説明</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
-</section>
-</section>
-<appendix xml:id="_付録の例">
-<title>付録の例</title>
-<simpara>付録セクション</simpara>
-</appendix>
-<bibliography xml:id="_参考文献">
-<title>参考文献</title>
-<simpara>参考文献セクション</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_用語集">
-<title>用語集</title>
-<simpara>用語集セクション</simpara>
-<glossentry>
-<glossterm>
-用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-別の用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_索引">
-<title>索引</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ja">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_概要">
+<simpara>概要セクション</simpara>
+</abstract>
+<section xml:id="_第一セクション">
+<title>第一セクション</title>
+<section xml:id="_警告">
+<title>警告</title>
+<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>虎の絵</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>続いて表の例。</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> オプション </entry>
+<entry align="left" valign="top"> 説明</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
+</section>
+</section>
+<appendix xml:id="_付録の例">
+<title>付録の例</title>
+<simpara>付録セクション</simpara>
+</appendix>
+<bibliography xml:id="_参考文献">
+<title>参考文献</title>
+<simpara>参考文献セクション</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_用語集">
+<title>用語集</title>
+<simpara>用語集セクション</simpara>
+<glossentry>
+<glossterm>
+用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+別の用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_索引">
+<title>索引</title>
+</index>
+</article>
diff --git a/tests/data/lang-ja-article-test-html4.html b/tests/data/lang-ja-article-test-html4.html
index 80c134c..dfab405 100644
--- a/tests/data/lang-ja-article-test-html4.html
+++ b/tests/data/lang-ja-article-test-html4.html
@@ -1,131 +1,131 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_概要"></a>概要</h2>
-<p>概要セクション</p>
-<hr>
-<h2><a name="_第一セクション"></a>第一セクション</h2>
-<h3><a name="_警告"></a>警告</h3>
-<p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>注</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>補足</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>警告</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>注意</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>重要</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="虎の絵">
-<p><b>図 1. </b>Tiger</p>
-</div>
-<p>続いて表の例。</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> オプション </th>
-<th align="left" width="50%" valign="top"> 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>表 1. </b>Table</p>
-</div>
-<p>そしてまったく異なるものの例: 猿、ライオン、虎。</p>
-<hr>
-<h2><a name="_付録_a_付録の例"></a>付録 A: 付録の例</h2>
-<p>付録セクション</p>
-<hr>
-<h2><a name="_参考文献"></a>参考文献</h2>
-<p>参考文献セクション</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_用語集"></a>用語集</h2>
-<p>用語集セクション</p>
-<dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-バージョン v1.0<br>
- 2002-11-25 00:37:42 UTC
- 更新
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_概要"></a>概要</h2>
+<p>概要セクション</p>
+<hr>
+<h2><a name="_第一セクション"></a>第一セクション</h2>
+<h3><a name="_警告"></a>警告</h3>
+<p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>注</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>補足</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>警告</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>注意</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>重要</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="虎の絵">
+<p><b>図 1. </b>Tiger</p>
+</div>
+<p>続いて表の例。</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> オプション </th>
+<th align="left" width="50%" valign="top"> 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>表 1. </b>Table</p>
+</div>
+<p>そしてまったく異なるものの例: 猿、ライオン、虎。</p>
+<hr>
+<h2><a name="_付録_a_付録の例"></a>付録 A: 付録の例</h2>
+<p>付録セクション</p>
+<hr>
+<h2><a name="_参考文献"></a>参考文献</h2>
+<p>参考文献セクション</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_用語集"></a>用語集</h2>
+<p>用語集セクション</p>
+<dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+バージョン v1.0<br>
+ 2002-11-25 00:37:42 UTC
+ 更新
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ja-article-test-html5.html b/tests/data/lang-ja-article-test-html5.html
index dbfd054..c312e63 100644
--- a/tests/data/lang-ja-article-test-html5.html
+++ b/tests/data/lang-ja-article-test-html5.html
@@ -1,892 +1,892 @@
-<!DOCTYPE html>
-<html lang="ja">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">目次</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_概要">概要</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>概要セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_第一セクション">第一セクション</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_警告">警告</h3>
-<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">補足</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">警告</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注意</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">重要</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="虎の絵">
-</div>
-<div class="title">図 1. Tiger</div>
-</div>
-<div class="paragraph"><p>続いて表の例。</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">表 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > オプション </th>
-<th class="tableblock halign-left valign-top" > 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>付録セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_参考文献">参考文献</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>参考文献セクション</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_用語集">用語集</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>用語集セクション</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-バージョン v1.0<br>
- 2002-11-25 00:37:42 UTC
- 更新
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">目次</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_概要">概要</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>概要セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_第一セクション">第一セクション</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_警告">警告</h3>
+<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">補足</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">警告</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注意</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">重要</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="虎の絵">
+</div>
+<div class="title">図 1. Tiger</div>
+</div>
+<div class="paragraph"><p>続いて表の例。</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">表 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > オプション </th>
+<th class="tableblock halign-left valign-top" > 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>付録セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_参考文献">参考文献</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>参考文献セクション</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_用語集">用語集</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>用語集セクション</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+バージョン v1.0<br>
+ 2002-11-25 00:37:42 UTC
+ 更新
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ja-article-test-xhtml11.html b/tests/data/lang-ja-article-test-xhtml11.html
index f69c12a..944fbc9 100644
--- a/tests/data/lang-ja-article-test-xhtml11.html
+++ b/tests/data/lang-ja-article-test-xhtml11.html
@@ -1,896 +1,896 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">目次</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_概要">概要</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>概要セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_第一セクション">第一セクション</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_警告">警告</h3>
-<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">補足</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">警告</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注意</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">重要</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="虎の絵" />
-</div>
-<div class="title">図 1. Tiger</div>
-</div>
-<div class="paragraph"><p>続いて表の例。</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">表 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> オプション </th>
-<th align="left" valign="top"> 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table"><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>付録セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_参考文献">参考文献</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>参考文献セクション</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_用語集">用語集</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>用語集セクション</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-バージョン v1.0<br />
- 2002-11-25 00:37:42 UTC
- 更新
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">目次</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_概要">概要</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>概要セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_第一セクション">第一セクション</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_警告">警告</h3>
+<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">補足</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">警告</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注意</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">重要</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="虎の絵" />
+</div>
+<div class="title">図 1. Tiger</div>
+</div>
+<div class="paragraph"><p>続いて表の例。</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">表 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> オプション </th>
+<th align="left" valign="top"> 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table"><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>付録セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_参考文献">参考文献</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>参考文献セクション</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_用語集">用語集</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>用語集セクション</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+バージョン v1.0<br />
+ 2002-11-25 00:37:42 UTC
+ 更新
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ja-book-test-docbook.xml b/tests/data/lang-ja-book-test-docbook.xml
index cfa4961..92d5cc4 100644
--- a/tests/data/lang-ja-book-test-docbook.xml
+++ b/tests/data/lang-ja-book-test-docbook.xml
@@ -1,125 +1,125 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="ja">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_献辞">
-<title>献辞</title>
-<simpara>献辞セクション</simpara>
-</dedication>
-<preface id="_前書">
-<title>前書</title>
-<simpara>前書セクション</simpara>
-</preface>
-<colophon id="_奥付">
-<title>奥付</title>
-<simpara>奥付セクション</simpara>
-</colophon>
-<chapter id="_第一セクション">
-<title>第一セクション</title>
-<section id="_警告">
-<title>警告</title>
-<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>虎の絵</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>続いて表の例。</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> オプション </entry>
-<entry align="left" valign="top"> 説明</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
-</section>
-</chapter>
-<appendix id="_付録の例">
-<title>付録の例</title>
-<simpara>付録セクション</simpara>
-</appendix>
-<bibliography id="_参考文献">
-<title>参考文献</title>
-<simpara>参考文献セクション</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_用語集">
-<title>用語集</title>
-<simpara>用語集セクション</simpara>
-<glossentry>
-<glossterm>
-用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-別の用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_索引">
-<title>索引</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="ja">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_献辞">
+<title>献辞</title>
+<simpara>献辞セクション</simpara>
+</dedication>
+<preface id="_前書">
+<title>前書</title>
+<simpara>前書セクション</simpara>
+</preface>
+<colophon id="_奥付">
+<title>奥付</title>
+<simpara>奥付セクション</simpara>
+</colophon>
+<chapter id="_第一セクション">
+<title>第一セクション</title>
+<section id="_警告">
+<title>警告</title>
+<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>虎の絵</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>続いて表の例。</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> オプション </entry>
+<entry align="left" valign="top"> 説明</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
+</section>
+</chapter>
+<appendix id="_付録の例">
+<title>付録の例</title>
+<simpara>付録セクション</simpara>
+</appendix>
+<bibliography id="_参考文献">
+<title>参考文献</title>
+<simpara>参考文献セクション</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_用語集">
+<title>用語集</title>
+<simpara>用語集セクション</simpara>
+<glossentry>
+<glossterm>
+用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+別の用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_索引">
+<title>索引</title>
+</index>
+</book>
diff --git a/tests/data/lang-ja-book-test-docbook5.xml b/tests/data/lang-ja-book-test-docbook5.xml
index 43a97fb..0d70548 100644
--- a/tests/data/lang-ja-book-test-docbook5.xml
+++ b/tests/data/lang-ja-book-test-docbook5.xml
@@ -1,124 +1,124 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ja">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_献辞">
-<title>献辞</title>
-<simpara>献辞セクション</simpara>
-</dedication>
-<preface xml:id="_前書">
-<title>前書</title>
-<simpara>前書セクション</simpara>
-</preface>
-<colophon xml:id="_奥付">
-<title>奥付</title>
-<simpara>奥付セクション</simpara>
-</colophon>
-<chapter xml:id="_第一セクション">
-<title>第一セクション</title>
-<section xml:id="_警告">
-<title>警告</title>
-<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>虎の絵</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>続いて表の例。</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> オプション </entry>
-<entry align="left" valign="top"> 説明</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
-</section>
-</chapter>
-<appendix xml:id="_付録の例">
-<title>付録の例</title>
-<simpara>付録セクション</simpara>
-</appendix>
-<bibliography xml:id="_参考文献">
-<title>参考文献</title>
-<simpara>参考文献セクション</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_用語集">
-<title>用語集</title>
-<simpara>用語集セクション</simpara>
-<glossentry>
-<glossterm>
-用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-別の用語
-</glossterm>
-<glossdef>
-<simpara>
- (インデントされた)用語の定義
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_索引">
-<title>索引</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ja">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_献辞">
+<title>献辞</title>
+<simpara>献辞セクション</simpara>
+</dedication>
+<preface xml:id="_前書">
+<title>前書</title>
+<simpara>前書セクション</simpara>
+</preface>
+<colophon xml:id="_奥付">
+<title>奥付</title>
+<simpara>奥付セクション</simpara>
+</colophon>
+<chapter xml:id="_第一セクション">
+<title>第一セクション</title>
+<section xml:id="_警告">
+<title>警告</title>
+<simpara>以下は処理系が翻訳するのでこのソースでは翻訳しない。</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>虎の絵</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>続いて表の例。</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> オプション </entry>
+<entry align="left" valign="top"> 説明</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>USER</emphasis> を <emphasis>GROUP</emphasis> に追加する</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara><emphasis>GROUP</emphasis> へのアクセスを禁止する</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>そしてまったく異なるものの例: <indexterm><primary>猿</primary></indexterm>猿、ライオン、虎。</simpara>
+</section>
+</chapter>
+<appendix xml:id="_付録の例">
+<title>付録の例</title>
+<simpara>付録セクション</simpara>
+</appendix>
+<bibliography xml:id="_参考文献">
+<title>参考文献</title>
+<simpara>参考文献セクション</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_用語集">
+<title>用語集</title>
+<simpara>用語集セクション</simpara>
+<glossentry>
+<glossterm>
+用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+別の用語
+</glossterm>
+<glossdef>
+<simpara>
+ (インデントされた)用語の定義
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_索引">
+<title>索引</title>
+</index>
+</book>
diff --git a/tests/data/lang-ja-book-test-html4.html b/tests/data/lang-ja-book-test-html4.html
index 66f78df..b3eb6e0 100644
--- a/tests/data/lang-ja-book-test-html4.html
+++ b/tests/data/lang-ja-book-test-html4.html
@@ -1,137 +1,137 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_献辞"></a>献辞</h2>
-<p>献辞セクション</p>
-<hr>
-<h2><a name="_前書"></a>前書</h2>
-<p>前書セクション</p>
-<hr>
-<h2><a name="_奥付"></a>奥付</h2>
-<p>奥付セクション</p>
-<hr>
-<h2><a name="_第一セクション"></a>第一セクション</h2>
-<h3><a name="_警告"></a>警告</h3>
-<p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>注</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>補足</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>警告</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>注意</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>重要</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="虎の絵">
-<p><b>図 1. </b>Tiger</p>
-</div>
-<p>続いて表の例。</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> オプション </th>
-<th align="left" width="50%" valign="top"> 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>表 1. </b>Table</p>
-</div>
-<p>そしてまったく異なるものの例: 猿、ライオン、虎。</p>
-<hr>
-<h2><a name="_付録_a_付録の例"></a>付録 A: 付録の例</h2>
-<p>付録セクション</p>
-<hr>
-<h2><a name="_参考文献"></a>参考文献</h2>
-<p>参考文献セクション</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_用語集"></a>用語集</h2>
-<p>用語集セクション</p>
-<dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-バージョン v1.0<br>
- 2002-11-25 00:37:42 UTC
- 更新
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_献辞"></a>献辞</h2>
+<p>献辞セクション</p>
+<hr>
+<h2><a name="_前書"></a>前書</h2>
+<p>前書セクション</p>
+<hr>
+<h2><a name="_奥付"></a>奥付</h2>
+<p>奥付セクション</p>
+<hr>
+<h2><a name="_第一セクション"></a>第一セクション</h2>
+<h3><a name="_警告"></a>警告</h3>
+<p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>注</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>補足</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>警告</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>注意</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>重要</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="虎の絵">
+<p><b>図 1. </b>Tiger</p>
+</div>
+<p>続いて表の例。</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> オプション </th>
+<th align="left" width="50%" valign="top"> 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>表 1. </b>Table</p>
+</div>
+<p>そしてまったく異なるものの例: 猿、ライオン、虎。</p>
+<hr>
+<h2><a name="_付録_a_付録の例"></a>付録 A: 付録の例</h2>
+<p>付録セクション</p>
+<hr>
+<h2><a name="_参考文献"></a>参考文献</h2>
+<p>参考文献セクション</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_用語集"></a>用語集</h2>
+<p>用語集セクション</p>
+<dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+バージョン v1.0<br>
+ 2002-11-25 00:37:42 UTC
+ 更新
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ja-book-test-html5.html b/tests/data/lang-ja-book-test-html5.html
index 788ffe4..1605465 100644
--- a/tests/data/lang-ja-book-test-html5.html
+++ b/tests/data/lang-ja-book-test-html5.html
@@ -1,904 +1,904 @@
-<!DOCTYPE html>
-<html lang="ja">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">目次</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_献辞">献辞</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>献辞セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_前書">前書</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>前書セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_奥付">奥付</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>奥付セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_第一セクション">第一セクション</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_警告">警告</h3>
-<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">補足</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">警告</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注意</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">重要</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="虎の絵">
-</div>
-<div class="title">図 1. Tiger</div>
-</div>
-<div class="paragraph"><p>続いて表の例。</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">表 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > オプション </th>
-<th class="tableblock halign-left valign-top" > 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>付録セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_参考文献">参考文献</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>参考文献セクション</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_用語集">用語集</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>用語集セクション</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-バージョン v1.0<br>
- 2002-11-25 00:37:42 UTC
- 更新
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">目次</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_献辞">献辞</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>献辞セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_前書">前書</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>前書セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_奥付">奥付</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>奥付セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_第一セクション">第一セクション</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_警告">警告</h3>
+<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">補足</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">警告</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注意</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">重要</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="虎の絵">
+</div>
+<div class="title">図 1. Tiger</div>
+</div>
+<div class="paragraph"><p>続いて表の例。</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">表 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > オプション </th>
+<th class="tableblock halign-left valign-top" > 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>付録セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_参考文献">参考文献</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>参考文献セクション</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_用語集">用語集</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>用語集セクション</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+バージョン v1.0<br>
+ 2002-11-25 00:37:42 UTC
+ 更新
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ja-book-test-xhtml11.html b/tests/data/lang-ja-book-test-xhtml11.html
index e8e328a..ce053a1 100644
--- a/tests/data/lang-ja-book-test-xhtml11.html
+++ b/tests/data/lang-ja-book-test-xhtml11.html
@@ -1,908 +1,908 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">目次</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_献辞">献辞</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>献辞セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_前書">前書</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>前書セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_奥付">奥付</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>奥付セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_第一セクション">第一セクション</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_警告">警告</h3>
-<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">補足</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">警告</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">注意</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">重要</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="虎の絵" />
-</div>
-<div class="title">図 1. Tiger</div>
-</div>
-<div class="paragraph"><p>続いて表の例。</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">表 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> オプション </th>
-<th align="left" valign="top"> 説明</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table"><em>GROUP</em> へのアクセスを禁止する</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>付録セクション</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_参考文献">参考文献</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>参考文献セクション</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_用語集">用語集</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>用語集セクション</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-<dt>
-別の用語
-</dt>
-<dd>
-<p>
- (インデントされた)用語の定義
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-バージョン v1.0<br />
- 2002-11-25 00:37:42 UTC
- 更新
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">目次</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_献辞">献辞</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>献辞セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_前書">前書</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>前書セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_奥付">奥付</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>奥付セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_第一セクション">第一セクション</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_警告">警告</h3>
+<div class="paragraph"><p>以下は処理系が翻訳するのでこのソースでは翻訳しない。</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">補足</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">警告</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">注意</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">重要</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="虎の絵" />
+</div>
+<div class="title">図 1. Tiger</div>
+</div>
+<div class="paragraph"><p>続いて表の例。</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">表 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> オプション </th>
+<th align="left" valign="top"> 説明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table"><em>USER</em> を <em>GROUP</em> に追加する</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table"><em>GROUP</em> へのアクセスを禁止する</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>そしてまったく異なるものの例: 猿、ライオン、虎。</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_付録_a_付録の例">付録 A: 付録の例</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>付録セクション</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_参考文献">参考文献</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>参考文献セクション</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_用語集">用語集</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>用語集セクション</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+<dt>
+別の用語
+</dt>
+<dd>
+<p>
+ (インデントされた)用語の定義
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+バージョン v1.0<br />
+ 2002-11-25 00:37:42 UTC
+ 更新
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ja-man-test-docbook.xml b/tests/data/lang-ja-man-test-docbook.xml
index e9c5123..79a08fc 100644
--- a/tests/data/lang-ja-man-test-docbook.xml
+++ b/tests/data/lang-ja-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="ja">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>AsciiDoc テキストファイルを HTML や DocBook に変換する</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_書式">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_説明">
-<title>説明</title>
-<simpara>asciidoc(1) コマンドは AsciiDoc テキストファイル <emphasis>FILE</emphasis> を DocBook
-や HTML に変換する。 <emphasis>FILE</emphasis> が <emphasis>-</emphasis> ならば標準入力を使用する。</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="ja">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>AsciiDoc テキストファイルを HTML や DocBook に変換する</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_書式">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_説明">
+<title>説明</title>
+<simpara>asciidoc(1) コマンドは AsciiDoc テキストファイル <emphasis>FILE</emphasis> を DocBook
+や HTML に変換する。 <emphasis>FILE</emphasis> が <emphasis>-</emphasis> ならば標準入力を使用する。</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ja-man-test-docbook5.xml b/tests/data/lang-ja-man-test-docbook5.xml
index fb53498..5560cfd 100644
--- a/tests/data/lang-ja-man-test-docbook5.xml
+++ b/tests/data/lang-ja-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="ja">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>AsciiDoc テキストファイルを HTML や DocBook に変換する</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_書式">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_説明">
-<title>説明</title>
-<simpara>asciidoc(1) コマンドは AsciiDoc テキストファイル <emphasis>FILE</emphasis> を DocBook
-や HTML に変換する。 <emphasis>FILE</emphasis> が <emphasis>-</emphasis> ならば標準入力を使用する。</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="ja">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>AsciiDoc テキストファイルを HTML や DocBook に変換する</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_書式">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_説明">
+<title>説明</title>
+<simpara>asciidoc(1) コマンドは AsciiDoc テキストファイル <emphasis>FILE</emphasis> を DocBook
+や HTML に変換する。 <emphasis>FILE</emphasis> が <emphasis>-</emphasis> ならば標準入力を使用する。</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-nl-article-test-docbook.xml b/tests/data/lang-nl-article-test-docbook.xml
index 272a3e4..a036766 100644
--- a/tests/data/lang-nl-article-test-docbook.xml
+++ b/tests/data/lang-nl-article-test-docbook.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="nl">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_samenvatting">
-<simpara>Bijzonder <emphasis>abstract</emphasis> sectie.</simpara>
-</abstract>
-<section id="_het_eerste_hoofdstuk">
-<title>Het Eerste Hoofdstuk</title>
-<section id="_vermaningen">
-<title>Vermaningen</title>
-<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Gevolgd door een voorbeeld tabel:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Optie </entry>
-<entry align="left" valign="top"> Beschrijving</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
-</section>
-</section>
-<appendix id="_voorbeeld_bijlage">
-<title>Voorbeeld Bijlage</title>
-<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
-</appendix>
-<bibliography id="_literatuurlijst">
-<title>Literatuurlijst</title>
-<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_woordenlijst">
-<title>Woordenlijst</title>
-<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
-<glossentry>
-<glossterm>
-Een woordenlijst term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-Een tweede term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_register">
-<title>Register</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="nl">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_samenvatting">
+<simpara>Bijzonder <emphasis>abstract</emphasis> sectie.</simpara>
+</abstract>
+<section id="_het_eerste_hoofdstuk">
+<title>Het Eerste Hoofdstuk</title>
+<section id="_vermaningen">
+<title>Vermaningen</title>
+<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Gevolgd door een voorbeeld tabel:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Optie </entry>
+<entry align="left" valign="top"> Beschrijving</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
+</section>
+</section>
+<appendix id="_voorbeeld_bijlage">
+<title>Voorbeeld Bijlage</title>
+<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
+</appendix>
+<bibliography id="_literatuurlijst">
+<title>Literatuurlijst</title>
+<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_woordenlijst">
+<title>Woordenlijst</title>
+<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
+<glossentry>
+<glossterm>
+Een woordenlijst term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+Een tweede term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_register">
+<title>Register</title>
+</index>
+</article>
diff --git a/tests/data/lang-nl-article-test-docbook5.xml b/tests/data/lang-nl-article-test-docbook5.xml
index b426e93..514b708 100644
--- a/tests/data/lang-nl-article-test-docbook5.xml
+++ b/tests/data/lang-nl-article-test-docbook5.xml
@@ -1,116 +1,116 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_samenvatting">
-<simpara>Bijzonder <emphasis>abstract</emphasis> sectie.</simpara>
-</abstract>
-<section xml:id="_het_eerste_hoofdstuk">
-<title>Het Eerste Hoofdstuk</title>
-<section xml:id="_vermaningen">
-<title>Vermaningen</title>
-<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Gevolgd door een voorbeeld tabel:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Optie </entry>
-<entry align="left" valign="top"> Beschrijving</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
-</section>
-</section>
-<appendix xml:id="_voorbeeld_bijlage">
-<title>Voorbeeld Bijlage</title>
-<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
-</appendix>
-<bibliography xml:id="_literatuurlijst">
-<title>Literatuurlijst</title>
-<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_woordenlijst">
-<title>Woordenlijst</title>
-<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
-<glossentry>
-<glossterm>
-Een woordenlijst term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-Een tweede term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_register">
-<title>Register</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_samenvatting">
+<simpara>Bijzonder <emphasis>abstract</emphasis> sectie.</simpara>
+</abstract>
+<section xml:id="_het_eerste_hoofdstuk">
+<title>Het Eerste Hoofdstuk</title>
+<section xml:id="_vermaningen">
+<title>Vermaningen</title>
+<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Gevolgd door een voorbeeld tabel:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Optie </entry>
+<entry align="left" valign="top"> Beschrijving</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
+</section>
+</section>
+<appendix xml:id="_voorbeeld_bijlage">
+<title>Voorbeeld Bijlage</title>
+<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
+</appendix>
+<bibliography xml:id="_literatuurlijst">
+<title>Literatuurlijst</title>
+<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_woordenlijst">
+<title>Woordenlijst</title>
+<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
+<glossentry>
+<glossterm>
+Een woordenlijst term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+Een tweede term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_register">
+<title>Register</title>
+</index>
+</article>
diff --git a/tests/data/lang-nl-article-test-html4.html b/tests/data/lang-nl-article-test-html4.html
index cfbeeb0..2a57315 100644
--- a/tests/data/lang-nl-article-test-html4.html
+++ b/tests/data/lang-nl-article-test-html4.html
@@ -1,132 +1,132 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_samenvatting"></a>Samenvatting</h2>
-<p>Bijzonder <em>abstract</em> sectie.</p>
-<hr>
-<h2><a name="_het_eerste_hoofdstuk"></a>Het Eerste Hoofdstuk</h2>
-<h3><a name="_vermaningen"></a>Vermaningen</h3>
-<p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Opmerking</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Waarschuwing</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Let op</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Belangrijk</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figuur 1. </b>Tiger</p>
-</div>
-<p>Gevolgd door een voorbeeld tabel:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Optie </th>
-<th align="left" width="50%" valign="top"> Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabel 1. </b>Table</p>
-</div>
-<p>En nu iets totaal anders: apen, leeuwen en tijgers.</p>
-<hr>
-<h2><a name="_bijlage_a_voorbeeld_bijlage"></a>Bijlage A: Voorbeeld Bijlage</h2>
-<p>Bijzonder <em>appendix</em> sectie.</p>
-<hr>
-<h2><a name="_literatuurlijst"></a>Literatuurlijst</h2>
-<p>Bijzonder <em>bibliography</em> sectie.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_woordenlijst"></a>Woordenlijst</h2>
-<p>Bijzonder <em>glossary</em> sectie.</p>
-<dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versie v1.0<br>
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_samenvatting"></a>Samenvatting</h2>
+<p>Bijzonder <em>abstract</em> sectie.</p>
+<hr>
+<h2><a name="_het_eerste_hoofdstuk"></a>Het Eerste Hoofdstuk</h2>
+<h3><a name="_vermaningen"></a>Vermaningen</h3>
+<p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Opmerking</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Waarschuwing</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Let op</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Belangrijk</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figuur 1. </b>Tiger</p>
+</div>
+<p>Gevolgd door een voorbeeld tabel:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Optie </th>
+<th align="left" width="50%" valign="top"> Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabel 1. </b>Table</p>
+</div>
+<p>En nu iets totaal anders: apen, leeuwen en tijgers.</p>
+<hr>
+<h2><a name="_bijlage_a_voorbeeld_bijlage"></a>Bijlage A: Voorbeeld Bijlage</h2>
+<p>Bijzonder <em>appendix</em> sectie.</p>
+<hr>
+<h2><a name="_literatuurlijst"></a>Literatuurlijst</h2>
+<p>Bijzonder <em>bibliography</em> sectie.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_woordenlijst"></a>Woordenlijst</h2>
+<p>Bijzonder <em>glossary</em> sectie.</p>
+<dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versie v1.0<br>
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-nl-article-test-html5.html b/tests/data/lang-nl-article-test-html5.html
index 58b78c2..c591088 100644
--- a/tests/data/lang-nl-article-test-html5.html
+++ b/tests/data/lang-nl-article-test-html5.html
@@ -1,893 +1,893 @@
-<!DOCTYPE html>
-<html lang="nl">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhoudsopgave</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_samenvatting">Samenvatting</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>abstract</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_vermaningen">Vermaningen</h3>
-<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Opmerking</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Waarschuwing</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Let op</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Belangrijk</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figuur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabel 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Optie </th>
-<th class="tableblock halign-left valign-top" > Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literatuurlijst">Literatuurlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_woordenlijst">Woordenlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versie v1.0<br>
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="nl">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhoudsopgave</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_samenvatting">Samenvatting</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>abstract</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_vermaningen">Vermaningen</h3>
+<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Opmerking</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Waarschuwing</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Let op</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Belangrijk</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figuur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabel 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Optie </th>
+<th class="tableblock halign-left valign-top" > Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literatuurlijst">Literatuurlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_woordenlijst">Woordenlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versie v1.0<br>
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-nl-article-test-xhtml11.html b/tests/data/lang-nl-article-test-xhtml11.html
index 5570124..8736c83 100644
--- a/tests/data/lang-nl-article-test-xhtml11.html
+++ b/tests/data/lang-nl-article-test-xhtml11.html
@@ -1,897 +1,897 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhoudsopgave</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_samenvatting">Samenvatting</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>abstract</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_vermaningen">Vermaningen</h3>
-<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Opmerking</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Waarschuwing</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Let op</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Belangrijk</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figuur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabel 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Optie </th>
-<th align="left" valign="top"> Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literatuurlijst">Literatuurlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_woordenlijst">Woordenlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versie v1.0<br />
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhoudsopgave</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_samenvatting">Samenvatting</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>abstract</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_vermaningen">Vermaningen</h3>
+<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Opmerking</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Waarschuwing</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Let op</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Belangrijk</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figuur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabel 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Optie </th>
+<th align="left" valign="top"> Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literatuurlijst">Literatuurlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_woordenlijst">Woordenlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versie v1.0<br />
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-nl-book-test-docbook.xml b/tests/data/lang-nl-book-test-docbook.xml
index 6602eb7..0d7ca0d 100644
--- a/tests/data/lang-nl-book-test-docbook.xml
+++ b/tests/data/lang-nl-book-test-docbook.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="nl">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_opdracht">
-<title>Opdracht</title>
-<simpara>Bijzonder <emphasis>dedication</emphasis> sectie.</simpara>
-</dedication>
-<preface id="_voorwoord">
-<title>Voorwoord</title>
-<simpara>Bijzonder <emphasis>preface</emphasis> sectie.</simpara>
-</preface>
-<colophon id="_colofon">
-<title>Colofon</title>
-<simpara>Bijzonder <emphasis>colophon</emphasis> sectie.</simpara>
-</colophon>
-<chapter id="_het_eerste_hoofdstuk">
-<title>Het Eerste Hoofdstuk</title>
-<section id="_vermaningen">
-<title>Vermaningen</title>
-<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Gevolgd door een voorbeeld tabel:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Optie </entry>
-<entry align="left" valign="top"> Beschrijving</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
-</section>
-</chapter>
-<appendix id="_voorbeeld_bijlage">
-<title>Voorbeeld Bijlage</title>
-<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
-</appendix>
-<bibliography id="_literatuurlijst">
-<title>Literatuurlijst</title>
-<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_woordenlijst">
-<title>Woordenlijst</title>
-<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
-<glossentry>
-<glossterm>
-Een woordenlijst term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-Een tweede term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_register">
-<title>Register</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="nl">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_opdracht">
+<title>Opdracht</title>
+<simpara>Bijzonder <emphasis>dedication</emphasis> sectie.</simpara>
+</dedication>
+<preface id="_voorwoord">
+<title>Voorwoord</title>
+<simpara>Bijzonder <emphasis>preface</emphasis> sectie.</simpara>
+</preface>
+<colophon id="_colofon">
+<title>Colofon</title>
+<simpara>Bijzonder <emphasis>colophon</emphasis> sectie.</simpara>
+</colophon>
+<chapter id="_het_eerste_hoofdstuk">
+<title>Het Eerste Hoofdstuk</title>
+<section id="_vermaningen">
+<title>Vermaningen</title>
+<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Gevolgd door een voorbeeld tabel:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Optie </entry>
+<entry align="left" valign="top"> Beschrijving</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
+</section>
+</chapter>
+<appendix id="_voorbeeld_bijlage">
+<title>Voorbeeld Bijlage</title>
+<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
+</appendix>
+<bibliography id="_literatuurlijst">
+<title>Literatuurlijst</title>
+<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_woordenlijst">
+<title>Woordenlijst</title>
+<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
+<glossentry>
+<glossterm>
+Een woordenlijst term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+Een tweede term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_register">
+<title>Register</title>
+</index>
+</book>
diff --git a/tests/data/lang-nl-book-test-docbook5.xml b/tests/data/lang-nl-book-test-docbook5.xml
index b8e4229..f419772 100644
--- a/tests/data/lang-nl-book-test-docbook5.xml
+++ b/tests/data/lang-nl-book-test-docbook5.xml
@@ -1,125 +1,125 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_opdracht">
-<title>Opdracht</title>
-<simpara>Bijzonder <emphasis>dedication</emphasis> sectie.</simpara>
-</dedication>
-<preface xml:id="_voorwoord">
-<title>Voorwoord</title>
-<simpara>Bijzonder <emphasis>preface</emphasis> sectie.</simpara>
-</preface>
-<colophon xml:id="_colofon">
-<title>Colofon</title>
-<simpara>Bijzonder <emphasis>colophon</emphasis> sectie.</simpara>
-</colophon>
-<chapter xml:id="_het_eerste_hoofdstuk">
-<title>Het Eerste Hoofdstuk</title>
-<section xml:id="_vermaningen">
-<title>Vermaningen</title>
-<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Gevolgd door een voorbeeld tabel:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Optie </entry>
-<entry align="left" valign="top"> Beschrijving</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_voorbeeld_bijlage">
-<title>Voorbeeld Bijlage</title>
-<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
-</appendix>
-<bibliography xml:id="_literatuurlijst">
-<title>Literatuurlijst</title>
-<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_woordenlijst">
-<title>Woordenlijst</title>
-<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
-<glossentry>
-<glossterm>
-Een woordenlijst term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-Een tweede term
-</glossterm>
-<glossdef>
-<simpara>
- De bijhorende (ingesprongen) definitie.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_register">
-<title>Register</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="nl">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_opdracht">
+<title>Opdracht</title>
+<simpara>Bijzonder <emphasis>dedication</emphasis> sectie.</simpara>
+</dedication>
+<preface xml:id="_voorwoord">
+<title>Voorwoord</title>
+<simpara>Bijzonder <emphasis>preface</emphasis> sectie.</simpara>
+</preface>
+<colophon xml:id="_colofon">
+<title>Colofon</title>
+<simpara>Bijzonder <emphasis>colophon</emphasis> sectie.</simpara>
+</colophon>
+<chapter xml:id="_het_eerste_hoofdstuk">
+<title>Het Eerste Hoofdstuk</title>
+<section xml:id="_vermaningen">
+<title>Vermaningen</title>
+<simpara>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Gevolgd door een voorbeeld tabel:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Optie </entry>
+<entry align="left" valign="top"> Beschrijving</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Voeg <emphasis>USER</emphasis> toe aan <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Schakel toegang uit tot <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>En nu iets totaal anders: <indexterm><primary>apen</primary></indexterm>apen, leeuwen en tijgers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_voorbeeld_bijlage">
+<title>Voorbeeld Bijlage</title>
+<simpara>Bijzonder <emphasis>appendix</emphasis> sectie.</simpara>
+</appendix>
+<bibliography xml:id="_literatuurlijst">
+<title>Literatuurlijst</title>
+<simpara>Bijzonder <emphasis>bibliography</emphasis> sectie.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_woordenlijst">
+<title>Woordenlijst</title>
+<simpara>Bijzonder <emphasis>glossary</emphasis> sectie.</simpara>
+<glossentry>
+<glossterm>
+Een woordenlijst term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+Een tweede term
+</glossterm>
+<glossdef>
+<simpara>
+ De bijhorende (ingesprongen) definitie.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_register">
+<title>Register</title>
+</index>
+</book>
diff --git a/tests/data/lang-nl-book-test-html4.html b/tests/data/lang-nl-book-test-html4.html
index 3e22512..92b2e3c 100644
--- a/tests/data/lang-nl-book-test-html4.html
+++ b/tests/data/lang-nl-book-test-html4.html
@@ -1,138 +1,138 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_opdracht"></a>Opdracht</h2>
-<p>Bijzonder <em>dedication</em> sectie.</p>
-<hr>
-<h2><a name="_voorwoord"></a>Voorwoord</h2>
-<p>Bijzonder <em>preface</em> sectie.</p>
-<hr>
-<h2><a name="_colofon"></a>Colofon</h2>
-<p>Bijzonder <em>colophon</em> sectie.</p>
-<hr>
-<h2><a name="_het_eerste_hoofdstuk"></a>Het Eerste Hoofdstuk</h2>
-<h3><a name="_vermaningen"></a>Vermaningen</h3>
-<p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Opmerking</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Waarschuwing</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Let op</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Belangrijk</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figuur 1. </b>Tiger</p>
-</div>
-<p>Gevolgd door een voorbeeld tabel:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Optie </th>
-<th align="left" width="50%" valign="top"> Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabel 1. </b>Table</p>
-</div>
-<p>En nu iets totaal anders: apen, leeuwen en tijgers.</p>
-<hr>
-<h2><a name="_bijlage_a_voorbeeld_bijlage"></a>Bijlage A: Voorbeeld Bijlage</h2>
-<p>Bijzonder <em>appendix</em> sectie.</p>
-<hr>
-<h2><a name="_literatuurlijst"></a>Literatuurlijst</h2>
-<p>Bijzonder <em>bibliography</em> sectie.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_woordenlijst"></a>Woordenlijst</h2>
-<p>Bijzonder <em>glossary</em> sectie.</p>
-<dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versie v1.0<br>
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_opdracht"></a>Opdracht</h2>
+<p>Bijzonder <em>dedication</em> sectie.</p>
+<hr>
+<h2><a name="_voorwoord"></a>Voorwoord</h2>
+<p>Bijzonder <em>preface</em> sectie.</p>
+<hr>
+<h2><a name="_colofon"></a>Colofon</h2>
+<p>Bijzonder <em>colophon</em> sectie.</p>
+<hr>
+<h2><a name="_het_eerste_hoofdstuk"></a>Het Eerste Hoofdstuk</h2>
+<h3><a name="_vermaningen"></a>Vermaningen</h3>
+<p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Opmerking</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Waarschuwing</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Let op</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Belangrijk</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figuur 1. </b>Tiger</p>
+</div>
+<p>Gevolgd door een voorbeeld tabel:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Optie </th>
+<th align="left" width="50%" valign="top"> Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabel 1. </b>Table</p>
+</div>
+<p>En nu iets totaal anders: apen, leeuwen en tijgers.</p>
+<hr>
+<h2><a name="_bijlage_a_voorbeeld_bijlage"></a>Bijlage A: Voorbeeld Bijlage</h2>
+<p>Bijzonder <em>appendix</em> sectie.</p>
+<hr>
+<h2><a name="_literatuurlijst"></a>Literatuurlijst</h2>
+<p>Bijzonder <em>bibliography</em> sectie.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_woordenlijst"></a>Woordenlijst</h2>
+<p>Bijzonder <em>glossary</em> sectie.</p>
+<dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versie v1.0<br>
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-nl-book-test-html5.html b/tests/data/lang-nl-book-test-html5.html
index aaa34fa..9344efc 100644
--- a/tests/data/lang-nl-book-test-html5.html
+++ b/tests/data/lang-nl-book-test-html5.html
@@ -1,905 +1,905 @@
-<!DOCTYPE html>
-<html lang="nl">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhoudsopgave</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_opdracht">Opdracht</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>dedication</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_voorwoord">Voorwoord</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>preface</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofon">Colofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>colophon</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_vermaningen">Vermaningen</h3>
-<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Opmerking</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Waarschuwing</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Let op</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Belangrijk</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figuur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabel 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Optie </th>
-<th class="tableblock halign-left valign-top" > Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literatuurlijst">Literatuurlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_woordenlijst">Woordenlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versie v1.0<br>
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="nl">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhoudsopgave</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_opdracht">Opdracht</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>dedication</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_voorwoord">Voorwoord</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>preface</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofon">Colofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>colophon</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_vermaningen">Vermaningen</h3>
+<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Opmerking</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Waarschuwing</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Let op</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Belangrijk</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figuur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabel 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Optie </th>
+<th class="tableblock halign-left valign-top" > Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literatuurlijst">Literatuurlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_woordenlijst">Woordenlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versie v1.0<br>
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-nl-book-test-xhtml11.html b/tests/data/lang-nl-book-test-xhtml11.html
index a9530e2..f17301a 100644
--- a/tests/data/lang-nl-book-test-xhtml11.html
+++ b/tests/data/lang-nl-book-test-xhtml11.html
@@ -1,909 +1,909 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Inhoudsopgave</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_opdracht">Opdracht</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>dedication</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_voorwoord">Voorwoord</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>preface</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofon">Colofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>colophon</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_vermaningen">Vermaningen</h3>
-<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
-output bestand</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Opmerking</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Waarschuwing</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Let op</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Belangrijk</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figuur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabel 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Optie </th>
-<th align="left" valign="top"> Beschrijving</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Schakel toegang uit tot <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_literatuurlijst">Literatuurlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_woordenlijst">Woordenlijst</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-Een woordenlijst term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-<dt>
-Een tweede term
-</dt>
-<dd>
-<p>
- De bijhorende (ingesprongen) definitie.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versie v1.0<br />
-Laatst bijgewerkt
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Inhoudsopgave</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_opdracht">Opdracht</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>dedication</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_voorwoord">Voorwoord</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>preface</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofon">Colofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>colophon</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_het_eerste_hoofdstuk">Het Eerste Hoofdstuk</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_vermaningen">Vermaningen</h3>
+<div class="paragraph"><p>Vertaal ze niet in the broncode&#8201;&#8212;&#8201;ze worden vanzelf vertaald in het
+output bestand</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Opmerking</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Waarschuwing</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Let op</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Belangrijk</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figuur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Gevolgd door een voorbeeld tabel:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabel 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Optie </th>
+<th align="left" valign="top"> Beschrijving</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Voeg <em>USER</em> toe aan <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Schakel toegang uit tot <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>En nu iets totaal anders: apen, leeuwen en tijgers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bijlage_a_voorbeeld_bijlage">Bijlage A: Voorbeeld Bijlage</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>appendix</em> sectie.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_literatuurlijst">Literatuurlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>bibliography</em> sectie.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_woordenlijst">Woordenlijst</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bijzonder <em>glossary</em> sectie.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+Een woordenlijst term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+<dt>
+Een tweede term
+</dt>
+<dd>
+<p>
+ De bijhorende (ingesprongen) definitie.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versie v1.0<br />
+Laatst bijgewerkt
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-nl-man-test-docbook.xml b/tests/data/lang-nl-man-test-docbook.xml
index 2f3094e..9b0ab3f 100644
--- a/tests/data/lang-nl-man-test-docbook.xml
+++ b/tests/data/lang-nl-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="nl">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="nl">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-nl-man-test-docbook5.xml b/tests/data/lang-nl-man-test-docbook5.xml
index 1df5065..765a991 100644
--- a/tests/data/lang-nl-man-test-docbook5.xml
+++ b/tests/data/lang-nl-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="nl">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_synopsis">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="nl">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_synopsis">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-pt-BR-article-test-docbook.xml b/tests/data/lang-pt-BR-article-test-docbook.xml
index 4088e0c..46dc8fd 100644
--- a/tests/data/lang-pt-BR-article-test-docbook.xml
+++ b/tests/data/lang-pt-BR-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="pt-BR">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_resumo">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section id="_appêndice_a_example_appendix">
-<title>Appêndice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossário">
-<title>Glossário</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_índice">
-<title>Índice</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="pt-BR">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_resumo">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section id="_appêndice_a_example_appendix">
+<title>Appêndice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossário">
+<title>Glossário</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_índice">
+<title>Índice</title>
+</index>
+</article>
diff --git a/tests/data/lang-pt-BR-article-test-docbook5.xml b/tests/data/lang-pt-BR-article-test-docbook5.xml
index 1533cec..fd8769d 100644
--- a/tests/data/lang-pt-BR-article-test-docbook5.xml
+++ b/tests/data/lang-pt-BR-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt-BR">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_resumo">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section xml:id="_appêndice_a_example_appendix">
-<title>Appêndice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossário">
-<title>Glossário</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_índice">
-<title>Índice</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt-BR">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_resumo">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section xml:id="_appêndice_a_example_appendix">
+<title>Appêndice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossário">
+<title>Glossário</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_índice">
+<title>Índice</title>
+</index>
+</article>
diff --git a/tests/data/lang-pt-BR-article-test-html4.html b/tests/data/lang-pt-BR-article-test-html4.html
index ecc51f9..ffe47cf 100644
--- a/tests/data/lang-pt-BR-article-test-html4.html
+++ b/tests/data/lang-pt-BR-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_resumo"></a>Resumo</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Sugestão</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Aviso</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Atenção</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabela 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appêndice_a_example_appendix"></a>Appêndice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossário"></a>Glossário</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versão v1.0<br>
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_resumo"></a>Resumo</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Sugestão</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Aviso</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Atenção</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabela 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appêndice_a_example_appendix"></a>Appêndice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossário"></a>Glossário</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versão v1.0<br>
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-article-test-html5.html b/tests/data/lang-pt-BR-article-test-html5.html
index c9df8c4..27600a9 100644
--- a/tests/data/lang-pt-BR-article-test-html5.html
+++ b/tests/data/lang-pt-BR-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="pt-BR">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabela de conteúdos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_resumo">Resumo</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugestão</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atenção</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabela 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossário">Glossário</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versão v1.0<br>
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="pt-BR">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabela de conteúdos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_resumo">Resumo</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugestão</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atenção</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabela 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossário">Glossário</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versão v1.0<br>
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-article-test-xhtml11.html b/tests/data/lang-pt-BR-article-test-xhtml11.html
index 8b2b06b..9b4735c 100644
--- a/tests/data/lang-pt-BR-article-test-xhtml11.html
+++ b/tests/data/lang-pt-BR-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabela de conteúdos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_resumo">Resumo</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugestão</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atenção</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabela 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossário">Glossário</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versão v1.0<br />
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabela de conteúdos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_resumo">Resumo</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugestão</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atenção</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabela 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossário">Glossário</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versão v1.0<br />
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-book-test-docbook.xml b/tests/data/lang-pt-BR-book-test-docbook.xml
index 2607186..c26f207 100644
--- a/tests/data/lang-pt-BR-book-test-docbook.xml
+++ b/tests/data/lang-pt-BR-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="pt-BR">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedicação">
-<title>Dedicação</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_prefácio">
-<title>Prefácio</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_cólofon">
-<title>Cólofon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter id="_appêndice_a_example_appendix">
-<title>Appêndice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossário">
-<title>Glossário</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_índice">
-<title>Índice</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="pt-BR">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedicação">
+<title>Dedicação</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_prefácio">
+<title>Prefácio</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_cólofon">
+<title>Cólofon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter id="_appêndice_a_example_appendix">
+<title>Appêndice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossário">
+<title>Glossário</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_índice">
+<title>Índice</title>
+</index>
+</book>
diff --git a/tests/data/lang-pt-BR-book-test-docbook5.xml b/tests/data/lang-pt-BR-book-test-docbook5.xml
index dedd1b0..e4218b5 100644
--- a/tests/data/lang-pt-BR-book-test-docbook5.xml
+++ b/tests/data/lang-pt-BR-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt-BR">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedicação">
-<title>Dedicação</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_prefácio">
-<title>Prefácio</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_cólofon">
-<title>Cólofon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter xml:id="_appêndice_a_example_appendix">
-<title>Appêndice A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossário">
-<title>Glossário</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_índice">
-<title>Índice</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt-BR">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedicação">
+<title>Dedicação</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_prefácio">
+<title>Prefácio</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_cólofon">
+<title>Cólofon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter xml:id="_appêndice_a_example_appendix">
+<title>Appêndice A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossário">
+<title>Glossário</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_índice">
+<title>Índice</title>
+</index>
+</book>
diff --git a/tests/data/lang-pt-BR-book-test-html4.html b/tests/data/lang-pt-BR-book-test-html4.html
index b2288ec..8b49c85 100644
--- a/tests/data/lang-pt-BR-book-test-html4.html
+++ b/tests/data/lang-pt-BR-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedicação"></a>Dedicação</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_prefácio"></a>Prefácio</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_cólofon"></a>Cólofon</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Sugestão</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Aviso</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Atenção</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabela 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appêndice_a_example_appendix"></a>Appêndice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossário"></a>Glossário</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versão v1.0<br>
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedicação"></a>Dedicação</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_prefácio"></a>Prefácio</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_cólofon"></a>Cólofon</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Sugestão</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Aviso</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Atenção</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabela 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appêndice_a_example_appendix"></a>Appêndice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossário"></a>Glossário</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versão v1.0<br>
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-book-test-html5.html b/tests/data/lang-pt-BR-book-test-html5.html
index 5cf7e3f..7540ab2 100644
--- a/tests/data/lang-pt-BR-book-test-html5.html
+++ b/tests/data/lang-pt-BR-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="pt-BR">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabela de conteúdos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedicação">Dedicação</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefácio">Prefácio</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_cólofon">Cólofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugestão</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atenção</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabela 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossário">Glossário</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versão v1.0<br>
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="pt-BR">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabela de conteúdos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedicação">Dedicação</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefácio">Prefácio</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_cólofon">Cólofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugestão</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atenção</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabela 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossário">Glossário</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versão v1.0<br>
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-book-test-xhtml11.html b/tests/data/lang-pt-BR-book-test-xhtml11.html
index 3113a7c..8bf1cb3 100644
--- a/tests/data/lang-pt-BR-book-test-xhtml11.html
+++ b/tests/data/lang-pt-BR-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Tabela de conteúdos</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedicação">Dedicação</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefácio">Prefácio</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_cólofon">Cólofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Sugestão</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Aviso</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Atenção</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabela 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossário">Glossário</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versão v1.0<br />
-Última Atualização
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-BR">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Tabela de conteúdos</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedicação">Dedicação</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefácio">Prefácio</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_cólofon">Cólofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Sugestão</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Aviso</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Atenção</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabela 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appêndice_a_example_appendix">Appêndice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossário">Glossário</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versão v1.0<br />
+Última Atualização
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-pt-BR-man-test-docbook.xml b/tests/data/lang-pt-BR-man-test-docbook.xml
index 05ff5e0..a7fa77e 100644
--- a/tests/data/lang-pt-BR-man-test-docbook.xml
+++ b/tests/data/lang-pt-BR-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="pt-BR">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_sinopse">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="pt-BR">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_sinopse">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-pt-BR-man-test-docbook5.xml b/tests/data/lang-pt-BR-man-test-docbook5.xml
index c207391..c6e36bc 100644
--- a/tests/data/lang-pt-BR-man-test-docbook5.xml
+++ b/tests/data/lang-pt-BR-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="pt-BR">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_sinopse">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="pt-BR">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_sinopse">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ro-article-test-docbook.xml b/tests/data/lang-ro-article-test-docbook.xml
index f4455df..42b040f 100644
--- a/tests/data/lang-ro-article-test-docbook.xml
+++ b/tests/data/lang-ro-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="it">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="it">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-ro-article-test-docbook5.xml b/tests/data/lang-ro-article-test-docbook5.xml
index 1b03e77..e17ae6d 100644
--- a/tests/data/lang-ro-article-test-docbook5.xml
+++ b/tests/data/lang-ro-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_abstract">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_abstract">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</article>
diff --git a/tests/data/lang-ro-article-test-html4.html b/tests/data/lang-ro-article-test-html4.html
index 820fe38..a1aa637 100644
--- a/tests/data/lang-ro-article-test-html4.html
+++ b/tests/data/lang-ro-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_abstract"></a>Abstract</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Suggerimento</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avvertenza</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attenzione</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabella 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_abstract"></a>Abstract</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Suggerimento</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avvertenza</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attenzione</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabella 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ro-article-test-html5.html b/tests/data/lang-ro-article-test-html5.html
index 496e605..b6587b4 100644
--- a/tests/data/lang-ro-article-test-html5.html
+++ b/tests/data/lang-ro-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabella 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="it">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabella 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ro-article-test-xhtml11.html b/tests/data/lang-ro-article-test-xhtml11.html
index 907e293..1333bab 100644
--- a/tests/data/lang-ro-article-test-xhtml11.html
+++ b/tests/data/lang-ro-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_abstract">Abstract</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabella 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br />
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_abstract">Abstract</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabella 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br />
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ro-book-test-docbook.xml b/tests/data/lang-ro-book-test-docbook.xml
index 441bd1b..80f3cdd 100644
--- a/tests/data/lang-ro-book-test-docbook.xml
+++ b/tests/data/lang-ro-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="it">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="it">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-ro-book-test-docbook5.xml b/tests/data/lang-ro-book-test-docbook5.xml
index 9285235..8e0ef80 100644
--- a/tests/data/lang-ro-book-test-docbook5.xml
+++ b/tests/data/lang-ro-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedica">
-<title>Dedica</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_prefazione">
-<title>Prefazione</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_colofone">
-<title>Colofone</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_bibliografia">
-<title>Bibliografia</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_glossario">
-<title>Glossario</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_index">
-<title>Index</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="it">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedica">
+<title>Dedica</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_prefazione">
+<title>Prefazione</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_colofone">
+<title>Colofone</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_bibliografia">
+<title>Bibliografia</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_glossario">
+<title>Glossario</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_index">
+<title>Index</title>
+</index>
+</book>
diff --git a/tests/data/lang-ro-book-test-html4.html b/tests/data/lang-ro-book-test-html4.html
index e9b855b..668de69 100644
--- a/tests/data/lang-ro-book-test-html4.html
+++ b/tests/data/lang-ro-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedica"></a>Dedica</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_prefazione"></a>Prefazione</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_colofone"></a>Colofone</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Nota</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Suggerimento</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Avvertenza</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Attenzione</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Importante</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figura 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabella 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_bibliografia"></a>Bibliografia</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_glossario"></a>Glossario</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedica"></a>Dedica</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_prefazione"></a>Prefazione</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_colofone"></a>Colofone</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Nota</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Suggerimento</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Avvertenza</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Attenzione</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Importante</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figura 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabella 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendice_a_example_appendix"></a>Appendice A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_bibliografia"></a>Bibliografia</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_glossario"></a>Glossario</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ro-book-test-html5.html b/tests/data/lang-ro-book-test-html5.html
index 5024851..6f97cff 100644
--- a/tests/data/lang-ro-book-test-html5.html
+++ b/tests/data/lang-ro-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="it">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabella 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br>
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="it">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabella 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br>
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ro-book-test-xhtml11.html b/tests/data/lang-ro-book-test-xhtml11.html
index d1cd69d..b8745c7 100644
--- a/tests/data/lang-ro-book-test-xhtml11.html
+++ b/tests/data/lang-ro-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Indice</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedica">Dedica</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_prefazione">Prefazione</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_colofone">Colofone</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Nota</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Suggerimento</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Avvertenza</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Attenzione</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Importante</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figura 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabella 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_bibliografia">Bibliografia</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_glossario">Glossario</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Versione v1.0<br />
-Ultimo aggiornamento
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Indice</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedica">Dedica</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_prefazione">Prefazione</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_colofone">Colofone</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Nota</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Suggerimento</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Avvertenza</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Attenzione</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Importante</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figura 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabella 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendice_a_example_appendix">Appendice A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_bibliografia">Bibliografia</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_glossario">Glossario</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Versione v1.0<br />
+Ultimo aggiornamento
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ro-man-test-docbook.xml b/tests/data/lang-ro-man-test-docbook.xml
index b43acab..f371490 100644
--- a/tests/data/lang-ro-man-test-docbook.xml
+++ b/tests/data/lang-ro-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="it">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_sinossi">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="it">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_sinossi">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ro-man-test-docbook5.xml b/tests/data/lang-ro-man-test-docbook5.xml
index 2b7bb8e..f67b1db 100644
--- a/tests/data/lang-ro-man-test-docbook5.xml
+++ b/tests/data/lang-ro-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="it">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_sinossi">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="it">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_sinossi">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ru-article-test-docbook.xml b/tests/data/lang-ru-article-test-docbook.xml
index 8017f55..27b5834 100644
--- a/tests/data/lang-ru-article-test-docbook.xml
+++ b/tests/data/lang-ru-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="ru">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_аннотация">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_библиография">
-<title>Библиография</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_словарь_терминов">
-<title>Словарь терминов</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_предметный_указатель">
-<title>Предметный указатель</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="ru">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_аннотация">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_библиография">
+<title>Библиография</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_словарь_терминов">
+<title>Словарь терминов</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_предметный_указатель">
+<title>Предметный указатель</title>
+</index>
+</article>
diff --git a/tests/data/lang-ru-article-test-docbook5.xml b/tests/data/lang-ru-article-test-docbook5.xml
index e1789b7..09316d1 100644
--- a/tests/data/lang-ru-article-test-docbook5.xml
+++ b/tests/data/lang-ru-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_аннотация">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_библиография">
-<title>Библиография</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_словарь_терминов">
-<title>Словарь терминов</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_предметный_указатель">
-<title>Предметный указатель</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_аннотация">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_библиография">
+<title>Библиография</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_словарь_терминов">
+<title>Словарь терминов</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_предметный_указатель">
+<title>Предметный указатель</title>
+</index>
+</article>
diff --git a/tests/data/lang-ru-article-test-html4.html b/tests/data/lang-ru-article-test-html4.html
index 0b2ca72..c9e2a78 100644
--- a/tests/data/lang-ru-article-test-html4.html
+++ b/tests/data/lang-ru-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_аннотация"></a>Аннотация</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Замечание</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Подсказка</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Внимание</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Предостережение</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Важно</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Рисунок 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Таблица 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_приложение_a_example_appendix"></a>Приложение A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_библиография"></a>Библиография</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_словарь_терминов"></a>Словарь терминов</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Редакция v1.0<br>
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_аннотация"></a>Аннотация</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Замечание</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Подсказка</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Внимание</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Предостережение</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Важно</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Рисунок 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Таблица 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_приложение_a_example_appendix"></a>Приложение A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_библиография"></a>Библиография</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_словарь_терминов"></a>Словарь терминов</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Редакция v1.0<br>
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ru-article-test-html5.html b/tests/data/lang-ru-article-test-html5.html
index f7d6a73..b52622a 100644
--- a/tests/data/lang-ru-article-test-html5.html
+++ b/tests/data/lang-ru-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="ru">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Содержание</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_аннотация">Аннотация</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Замечание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Подсказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Внимание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Предостережение</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важно</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Таблица 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_библиография">Библиография</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словарь_терминов">Словарь терминов</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Редакция v1.0<br>
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Содержание</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_аннотация">Аннотация</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Замечание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Подсказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Внимание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Предостережение</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важно</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Таблица 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_библиография">Библиография</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словарь_терминов">Словарь терминов</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Редакция v1.0<br>
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ru-article-test-xhtml11.html b/tests/data/lang-ru-article-test-xhtml11.html
index ebda36e..171ebe5 100644
--- a/tests/data/lang-ru-article-test-xhtml11.html
+++ b/tests/data/lang-ru-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Содержание</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_аннотация">Аннотация</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Замечание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Подсказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Внимание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Предостережение</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важно</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Таблица 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_библиография">Библиография</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словарь_терминов">Словарь терминов</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Редакция v1.0<br />
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Содержание</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_аннотация">Аннотация</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Замечание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Подсказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Внимание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Предостережение</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важно</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Таблица 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_библиография">Библиография</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словарь_терминов">Словарь терминов</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Редакция v1.0<br />
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ru-book-test-docbook.xml b/tests/data/lang-ru-book-test-docbook.xml
index 7b4d9e5..de90f14 100644
--- a/tests/data/lang-ru-book-test-docbook.xml
+++ b/tests/data/lang-ru-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="ru">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_посвящение">
-<title>Посвящение</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_введение">
-<title>Введение</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_колофон">
-<title>Колофон</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_библиография">
-<title>Библиография</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_словарь_терминов">
-<title>Словарь терминов</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_предметный_указатель">
-<title>Предметный указатель</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="ru">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_посвящение">
+<title>Посвящение</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_введение">
+<title>Введение</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_колофон">
+<title>Колофон</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_библиография">
+<title>Библиография</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_словарь_терминов">
+<title>Словарь терминов</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_предметный_указатель">
+<title>Предметный указатель</title>
+</index>
+</book>
diff --git a/tests/data/lang-ru-book-test-docbook5.xml b/tests/data/lang-ru-book-test-docbook5.xml
index 415796d..3cecd5a 100644
--- a/tests/data/lang-ru-book-test-docbook5.xml
+++ b/tests/data/lang-ru-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_посвящение">
-<title>Посвящение</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_введение">
-<title>Введение</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_колофон">
-<title>Колофон</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_example_appendix">
-<title>Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_библиография">
-<title>Библиография</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_словарь_терминов">
-<title>Словарь терминов</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_предметный_указатель">
-<title>Предметный указатель</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_посвящение">
+<title>Посвящение</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_введение">
+<title>Введение</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_колофон">
+<title>Колофон</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_example_appendix">
+<title>Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_библиография">
+<title>Библиография</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_словарь_терминов">
+<title>Словарь терминов</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_предметный_указатель">
+<title>Предметный указатель</title>
+</index>
+</book>
diff --git a/tests/data/lang-ru-book-test-html4.html b/tests/data/lang-ru-book-test-html4.html
index abf2cc7..48b5711 100644
--- a/tests/data/lang-ru-book-test-html4.html
+++ b/tests/data/lang-ru-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_посвящение"></a>Посвящение</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_введение"></a>Введение</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_колофон"></a>Колофон</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Замечание</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Подсказка</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Внимание</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Предостережение</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Важно</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Рисунок 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Таблица 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_приложение_a_example_appendix"></a>Приложение A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_библиография"></a>Библиография</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_словарь_терминов"></a>Словарь терминов</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Редакция v1.0<br>
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_посвящение"></a>Посвящение</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_введение"></a>Введение</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_колофон"></a>Колофон</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Замечание</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Подсказка</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Внимание</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Предостережение</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Важно</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Рисунок 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Таблица 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_приложение_a_example_appendix"></a>Приложение A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_библиография"></a>Библиография</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_словарь_терминов"></a>Словарь терминов</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Редакция v1.0<br>
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-ru-book-test-html5.html b/tests/data/lang-ru-book-test-html5.html
index a7e6c83..514eef5 100644
--- a/tests/data/lang-ru-book-test-html5.html
+++ b/tests/data/lang-ru-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="ru">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Содержание</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_посвящение">Посвящение</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_введение">Введение</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_колофон">Колофон</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Замечание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Подсказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Внимание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Предостережение</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важно</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Таблица 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_библиография">Библиография</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словарь_терминов">Словарь терминов</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Редакция v1.0<br>
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Содержание</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_посвящение">Посвящение</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_введение">Введение</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_колофон">Колофон</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Замечание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Подсказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Внимание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Предостережение</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важно</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Таблица 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_библиография">Библиография</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словарь_терминов">Словарь терминов</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Редакция v1.0<br>
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ru-book-test-xhtml11.html b/tests/data/lang-ru-book-test-xhtml11.html
index 3a02203..bbb981a 100644
--- a/tests/data/lang-ru-book-test-xhtml11.html
+++ b/tests/data/lang-ru-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Содержание</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_посвящение">Посвящение</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_введение">Введение</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_колофон">Колофон</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Замечание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Подсказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Внимание</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Предостережение</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важно</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Таблица 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_библиография">Библиография</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словарь_терминов">Словарь терминов</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Редакция v1.0<br />
-Последнее обновление
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Содержание</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_посвящение">Посвящение</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_введение">Введение</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_колофон">Колофон</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Замечание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Подсказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Внимание</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Предостережение</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важно</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Таблица 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_приложение_a_example_appendix">Приложение A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_библиография">Библиография</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словарь_терминов">Словарь терминов</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Редакция v1.0<br />
+Последнее обновление
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-ru-man-test-docbook.xml b/tests/data/lang-ru-man-test-docbook.xml
index 8b111d1..2714d3f 100644
--- a/tests/data/lang-ru-man-test-docbook.xml
+++ b/tests/data/lang-ru-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="ru">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_обзор">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="ru">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_обзор">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-ru-man-test-docbook5.xml b/tests/data/lang-ru-man-test-docbook5.xml
index 480006b..7c07f2b 100644
--- a/tests/data/lang-ru-man-test-docbook5.xml
+++ b/tests/data/lang-ru-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="ru">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_обзор">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="ru">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_обзор">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-sv-article-test-docbook.xml b/tests/data/lang-sv-article-test-docbook.xml
index 84e092c..1c04d69 100644
--- a/tests/data/lang-sv-article-test-docbook.xml
+++ b/tests/data/lang-sv-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="sv">
-<articleinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</articleinfo>
-<abstract id="_sammanfattning">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix id="_exempel_appendix">
-<title>Exempel-appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_referenser">
-<title>Referenser</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_ordlista">
-<title>Ordlista</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_sakregister">
-<title>Sakregister</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="sv">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</articleinfo>
+<abstract id="_sammanfattning">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix id="_exempel_appendix">
+<title>Exempel-appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_referenser">
+<title>Referenser</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_ordlista">
+<title>Ordlista</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_sakregister">
+<title>Sakregister</title>
+</index>
+</article>
diff --git a/tests/data/lang-sv-article-test-docbook5.xml b/tests/data/lang-sv-article-test-docbook5.xml
index a81e3ff..6168c52 100644
--- a/tests/data/lang-sv-article-test-docbook5.xml
+++ b/tests/data/lang-sv-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="sv">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<abstract xml:id="_sammanfattning">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<appendix xml:id="_exempel_appendix">
-<title>Exempel-appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_referenser">
-<title>Referenser</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_ordlista">
-<title>Ordlista</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_sakregister">
-<title>Sakregister</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="sv">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<abstract xml:id="_sammanfattning">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<appendix xml:id="_exempel_appendix">
+<title>Exempel-appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_referenser">
+<title>Referenser</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_ordlista">
+<title>Ordlista</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_sakregister">
+<title>Sakregister</title>
+</index>
+</article>
diff --git a/tests/data/lang-sv-article-test-html4.html b/tests/data/lang-sv-article-test-html4.html
index 23f4e28..7a27227 100644
--- a/tests/data/lang-sv-article-test-html4.html
+++ b/tests/data/lang-sv-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_sammanfattning"></a>Sammanfattning</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Not</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tips</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Viktigt</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figur 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabell 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_exempel_appendix"></a>Appendix A: Exempel-appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_referenser"></a>Referenser</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_ordlista"></a>Ordlista</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_sammanfattning"></a>Sammanfattning</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Not</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tips</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Viktigt</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figur 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabell 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_exempel_appendix"></a>Appendix A: Exempel-appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_referenser"></a>Referenser</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_ordlista"></a>Ordlista</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-sv-article-test-html5.html b/tests/data/lang-sv-article-test-html5.html
index 2d8c458..45f0128 100644
--- a/tests/data/lang-sv-article-test-html5.html
+++ b/tests/data/lang-sv-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="sv">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Innehållsförteckning</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_sammanfattning">Sammanfattning</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Not</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tips</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Viktigt</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabell 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_referenser">Referenser</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ordlista">Ordlista</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="sv">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Innehållsförteckning</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_sammanfattning">Sammanfattning</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Not</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tips</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Viktigt</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabell 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_referenser">Referenser</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ordlista">Ordlista</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-sv-article-test-xhtml11.html b/tests/data/lang-sv-article-test-xhtml11.html
index beb5fba..1fa0f78 100644
--- a/tests/data/lang-sv-article-test-xhtml11.html
+++ b/tests/data/lang-sv-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Innehållsförteckning</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_sammanfattning">Sammanfattning</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Not</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tips</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Viktigt</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabell 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_referenser">Referenser</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ordlista">Ordlista</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Innehållsförteckning</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_sammanfattning">Sammanfattning</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Not</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tips</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Viktigt</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabell 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_referenser">Referenser</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ordlista">Ordlista</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-sv-book-test-docbook.xml b/tests/data/lang-sv-book-test-docbook.xml
index cf69f8d..928397b 100644
--- a/tests/data/lang-sv-book-test-docbook.xml
+++ b/tests/data/lang-sv-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="sv">
-<bookinfo>
- <title>Languages Test</title>
- <date>2003-12-21</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</bookinfo>
-<dedication id="_dedikation">
-<title>Dedikation</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_förord">
-<title>Förord</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_kolofon">
-<title>Kolofon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix id="_exempel_appendix">
-<title>Exempel-appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography id="_referenser">
-<title>Referenser</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_ordlista">
-<title>Ordlista</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_sakregister">
-<title>Sakregister</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="sv">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</bookinfo>
+<dedication id="_dedikation">
+<title>Dedikation</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_förord">
+<title>Förord</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_kolofon">
+<title>Kolofon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix id="_exempel_appendix">
+<title>Exempel-appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography id="_referenser">
+<title>Referenser</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_ordlista">
+<title>Ordlista</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_sakregister">
+<title>Sakregister</title>
+</index>
+</book>
diff --git a/tests/data/lang-sv-book-test-docbook5.xml b/tests/data/lang-sv-book-test-docbook5.xml
index 8daea49..1fb068d 100644
--- a/tests/data/lang-sv-book-test-docbook5.xml
+++ b/tests/data/lang-sv-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="sv">
-<info>
- <title>Languages Test</title>
- <date>2003-12-21</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
-</info>
-<dedication xml:id="_dedikation">
-<title>Dedikation</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_förord">
-<title>Förord</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_kolofon">
-<title>Kolofon</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<appendix xml:id="_exempel_appendix">
-<title>Exempel-appendix</title>
-<simpara>Appendix special section.</simpara>
-</appendix>
-<bibliography xml:id="_referenser">
-<title>Referenser</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_ordlista">
-<title>Ordlista</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_sakregister">
-<title>Sakregister</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="sv">
+<info>
+ <title>Languages Test</title>
+ <date>2003-12-21</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2003-12-21</date></revision></revhistory>
+</info>
+<dedication xml:id="_dedikation">
+<title>Dedikation</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_förord">
+<title>Förord</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_kolofon">
+<title>Kolofon</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<appendix xml:id="_exempel_appendix">
+<title>Exempel-appendix</title>
+<simpara>Appendix special section.</simpara>
+</appendix>
+<bibliography xml:id="_referenser">
+<title>Referenser</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_ordlista">
+<title>Ordlista</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_sakregister">
+<title>Sakregister</title>
+</index>
+</book>
diff --git a/tests/data/lang-sv-book-test-html4.html b/tests/data/lang-sv-book-test-html4.html
index 7684c59..d6d6534 100644
--- a/tests/data/lang-sv-book-test-html4.html
+++ b/tests/data/lang-sv-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2003-12-21
-</p>
-<hr>
-<h2><a name="_dedikation"></a>Dedikation</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_förord"></a>Förord</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_kolofon"></a>Kolofon</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Not</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tips</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Varning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Viktigt</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figur 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Tabell 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_appendix_a_exempel_appendix"></a>Appendix A: Exempel-appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_referenser"></a>Referenser</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_ordlista"></a>Ordlista</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Version v1.0<br>
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2003-12-21
+</p>
+<hr>
+<h2><a name="_dedikation"></a>Dedikation</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_förord"></a>Förord</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_kolofon"></a>Kolofon</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Not</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tips</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Varning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Viktigt</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figur 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Tabell 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_appendix_a_exempel_appendix"></a>Appendix A: Exempel-appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_referenser"></a>Referenser</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_ordlista"></a>Ordlista</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Version v1.0<br>
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-sv-book-test-html5.html b/tests/data/lang-sv-book-test-html5.html
index 8c1bfa6..f88abb3 100644
--- a/tests/data/lang-sv-book-test-html5.html
+++ b/tests/data/lang-sv-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="sv">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Innehållsförteckning</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedikation">Dedikation</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_förord">Förord</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_kolofon">Kolofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Not</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tips</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Viktigt</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Tabell 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_referenser">Referenser</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ordlista">Ordlista</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br>
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="sv">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Innehållsförteckning</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedikation">Dedikation</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_förord">Förord</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_kolofon">Kolofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Not</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tips</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Viktigt</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Tabell 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_referenser">Referenser</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ordlista">Ordlista</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br>
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-sv-book-test-xhtml11.html b/tests/data/lang-sv-book-test-xhtml11.html
index bcfe5a2..a8286ab 100644
--- a/tests/data/lang-sv-book-test-xhtml11.html
+++ b/tests/data/lang-sv-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2003-12-21</span>
-<div id="toc">
- <div id="toctitle">Innehållsförteckning</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_dedikation">Dedikation</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_förord">Förord</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_kolofon">Kolofon</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Not</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tips</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Varning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Viktigt</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figur 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Tabell 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_referenser">Referenser</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ordlista">Ordlista</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version v1.0<br />
-Senast uppdaterad
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2003-12-21</span>
+<div id="toc">
+ <div id="toctitle">Innehållsförteckning</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_dedikation">Dedikation</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_förord">Förord</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_kolofon">Kolofon</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Not</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tips</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Varning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Viktigt</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figur 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Tabell 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_appendix_a_exempel_appendix">Appendix A: Exempel-appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_referenser">Referenser</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ordlista">Ordlista</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version v1.0<br />
+Senast uppdaterad
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-sv-man-test-docbook.xml b/tests/data/lang-sv-man-test-docbook.xml
index fcc82d2..afd1f98 100644
--- a/tests/data/lang-sv-man-test-docbook.xml
+++ b/tests/data/lang-sv-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="sv">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_översikt">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_beskrivning">
-<title>BESKRIVNING</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="sv">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_översikt">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_beskrivning">
+<title>BESKRIVNING</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-sv-man-test-docbook5.xml b/tests/data/lang-sv-man-test-docbook5.xml
index 4b70f85..8b44ca0 100644
--- a/tests/data/lang-sv-man-test-docbook5.xml
+++ b/tests/data/lang-sv-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="sv">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_översikt">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_beskrivning">
-<title>BESKRIVNING</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="sv">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_översikt">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_beskrivning">
+<title>BESKRIVNING</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-uk-article-test-docbook.xml b/tests/data/lang-uk-article-test-docbook.xml
index 5f59b53..7848d80 100644
--- a/tests/data/lang-uk-article-test-docbook.xml
+++ b/tests/data/lang-uk-article-test-docbook.xml
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="uk">
-<articleinfo>
- <title>Languages Test</title>
- <date>2011-01-30</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
-</articleinfo>
-<abstract id="_анотація">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section id="_додаток_a_example_appendix">
-<title>Додаток A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<bibliography id="_бібліографія">
-<title>Бібліографія</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_словник_термінів">
-<title>Словник термінів</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_предметний_покажчик">
-<title>Предметний покажчик</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="uk">
+<articleinfo>
+ <title>Languages Test</title>
+ <date>2011-01-30</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
+</articleinfo>
+<abstract id="_анотація">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section id="_додаток_a_example_appendix">
+<title>Додаток A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<bibliography id="_бібліографія">
+<title>Бібліографія</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_словник_термінів">
+<title>Словник термінів</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_предметний_покажчик">
+<title>Предметний покажчик</title>
+</index>
+</article>
diff --git a/tests/data/lang-uk-article-test-docbook5.xml b/tests/data/lang-uk-article-test-docbook5.xml
index f3aaa34..cdeab1d 100644
--- a/tests/data/lang-uk-article-test-docbook5.xml
+++ b/tests/data/lang-uk-article-test-docbook5.xml
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="uk">
-<info>
- <title>Languages Test</title>
- <date>2011-01-30</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
-</info>
-<abstract xml:id="_анотація">
-<simpara>Abstract special section.</simpara>
-</abstract>
-<section xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</section>
-<section xml:id="_додаток_a_example_appendix">
-<title>Додаток A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</section>
-<bibliography xml:id="_бібліографія">
-<title>Бібліографія</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_словник_термінів">
-<title>Словник термінів</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_предметний_покажчик">
-<title>Предметний покажчик</title>
-</index>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="uk">
+<info>
+ <title>Languages Test</title>
+ <date>2011-01-30</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
+</info>
+<abstract xml:id="_анотація">
+<simpara>Abstract special section.</simpara>
+</abstract>
+<section xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</section>
+<section xml:id="_додаток_a_example_appendix">
+<title>Додаток A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</section>
+<bibliography xml:id="_бібліографія">
+<title>Бібліографія</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_словник_термінів">
+<title>Словник термінів</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_предметний_покажчик">
+<title>Предметний покажчик</title>
+</index>
+</article>
diff --git a/tests/data/lang-uk-article-test-html4.html b/tests/data/lang-uk-article-test-html4.html
index 2ff932f..fc54731 100644
--- a/tests/data/lang-uk-article-test-html4.html
+++ b/tests/data/lang-uk-article-test-html4.html
@@ -1,133 +1,133 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2011-01-30
-</p>
-<hr>
-<h2><a name="_анотація"></a>Анотація</h2>
-<p>Abstract special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Зауваження</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Підказка</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Увага</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Попередження</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Важливо</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Рисунок 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Таблиця 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_додаток_a_example_appendix"></a>Додаток A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_бібліографія"></a>Бібліографія</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_словник_термінів"></a>Словник термінів</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Версія v1.0<br>
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2011-01-30
+</p>
+<hr>
+<h2><a name="_анотація"></a>Анотація</h2>
+<p>Abstract special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Зауваження</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Підказка</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Увага</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Попередження</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Важливо</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Рисунок 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Таблиця 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_додаток_a_example_appendix"></a>Додаток A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_бібліографія"></a>Бібліографія</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_словник_термінів"></a>Словник термінів</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Версія v1.0<br>
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-uk-article-test-html5.html b/tests/data/lang-uk-article-test-html5.html
index 2c4b154..11bf58b 100644
--- a/tests/data/lang-uk-article-test-html5.html
+++ b/tests/data/lang-uk-article-test-html5.html
@@ -1,894 +1,894 @@
-<!DOCTYPE html>
-<html lang="uk">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2011-01-30</span>
-<div id="toc">
- <div id="toctitle">Зміст</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_анотація">Анотація</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Зауваження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Підказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Увага</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Попередження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важливо</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Таблиця 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_бібліографія">Бібліографія</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словник_термінів">Словник термінів</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Версія v1.0<br>
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="uk">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2011-01-30</span>
+<div id="toc">
+ <div id="toctitle">Зміст</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_анотація">Анотація</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Зауваження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Підказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Увага</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Попередження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важливо</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Таблиця 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_бібліографія">Бібліографія</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словник_термінів">Словник термінів</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Версія v1.0<br>
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-uk-article-test-xhtml11.html b/tests/data/lang-uk-article-test-xhtml11.html
index ff15749..c177c28 100644
--- a/tests/data/lang-uk-article-test-xhtml11.html
+++ b/tests/data/lang-uk-article-test-xhtml11.html
@@ -1,898 +1,898 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="uk">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2011-01-30</span>
-<div id="toc">
- <div id="toctitle">Зміст</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_анотація">Анотація</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Abstract special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Зауваження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Підказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Увага</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Попередження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важливо</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Таблиця 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_бібліографія">Бібліографія</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словник_термінів">Словник термінів</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Версія v1.0<br />
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="uk">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2011-01-30</span>
+<div id="toc">
+ <div id="toctitle">Зміст</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_анотація">Анотація</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Abstract special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Зауваження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Підказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Увага</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Попередження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важливо</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Таблиця 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_бібліографія">Бібліографія</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словник_термінів">Словник термінів</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Версія v1.0<br />
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-uk-book-test-docbook.xml b/tests/data/lang-uk-book-test-docbook.xml
index 2bbb9a4..7de11b6 100644
--- a/tests/data/lang-uk-book-test-docbook.xml
+++ b/tests/data/lang-uk-book-test-docbook.xml
@@ -1,127 +1,127 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book lang="uk">
-<bookinfo>
- <title>Languages Test</title>
- <date>2011-01-30</date>
-<revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
-</bookinfo>
-<dedication id="_присвячення">
-<title>Присвячення</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface id="_вступ">
-<title>Вступ</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon id="_колофон">
-<title>Колофон</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter id="_the_first_section">
-<title>The First Section</title>
-<section id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter id="_додаток_a_example_appendix">
-<title>Додаток A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<bibliography id="_бібліографія">
-<title>Бібліографія</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary id="_словник_термінів">
-<title>Словник термінів</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index id="_предметний_покажчик">
-<title>Предметний покажчик</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book lang="uk">
+<bookinfo>
+ <title>Languages Test</title>
+ <date>2011-01-30</date>
+<revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
+</bookinfo>
+<dedication id="_присвячення">
+<title>Присвячення</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface id="_вступ">
+<title>Вступ</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon id="_колофон">
+<title>Колофон</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter id="_the_first_section">
+<title>The First Section</title>
+<section id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter id="_додаток_a_example_appendix">
+<title>Додаток A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<bibliography id="_бібліографія">
+<title>Бібліографія</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary id="_словник_термінів">
+<title>Словник термінів</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index id="_предметний_покажчик">
+<title>Предметний покажчик</title>
+</index>
+</book>
diff --git a/tests/data/lang-uk-book-test-docbook5.xml b/tests/data/lang-uk-book-test-docbook5.xml
index 90715d6..e673887 100644
--- a/tests/data/lang-uk-book-test-docbook5.xml
+++ b/tests/data/lang-uk-book-test-docbook5.xml
@@ -1,126 +1,126 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="uk">
-<info>
- <title>Languages Test</title>
- <date>2011-01-30</date>
- <revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
-</info>
-<dedication xml:id="_присвячення">
-<title>Присвячення</title>
-<simpara>Dedication special section.</simpara>
-</dedication>
-<preface xml:id="_вступ">
-<title>Вступ</title>
-<simpara>Preface special section.</simpara>
-</preface>
-<colophon xml:id="_колофон">
-<title>Колофон</title>
-<simpara>Colophon special section.</simpara>
-</colophon>
-<chapter xml:id="_the_first_section">
-<title>The First Section</title>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</simpara>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<figure><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>Followed by an example table:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Table</title>
-<?dbhtml table-width="60%"?>
-<?dbfo table-width="60%"?>
-<?dblatex table-width="60%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="128*"/>
-<colspec colname="col_2" colwidth="128*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> Option </entry>
-<entry align="left" valign="top"> Description</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
-tigers.</simpara>
-</section>
-</chapter>
-<chapter xml:id="_додаток_a_example_appendix">
-<title>Додаток A: Example Appendix</title>
-<simpara>Appendix special section.</simpara>
-</chapter>
-<bibliography xml:id="_бібліографія">
-<title>Бібліографія</title>
-<simpara>Bibliography special section.</simpara>
-<bibliodiv>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
- Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
-</bibliomisc>
-</bibliomixed>
-<bibliomixed>
-<bibliomisc>
-<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</bibliomisc>
-</bibliomixed>
-</bibliodiv>
-</bibliography>
-<glossary xml:id="_словник_термінів">
-<title>Словник термінів</title>
-<simpara>Glossary special section.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<index xml:id="_предметний_покажчик">
-<title>Предметний покажчик</title>
-</index>
-</book>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="uk">
+<info>
+ <title>Languages Test</title>
+ <date>2011-01-30</date>
+ <revhistory><revision><revnumber>v1.0</revnumber><date>2011-01-30</date></revision></revhistory>
+</info>
+<dedication xml:id="_присвячення">
+<title>Присвячення</title>
+<simpara>Dedication special section.</simpara>
+</dedication>
+<preface xml:id="_вступ">
+<title>Вступ</title>
+<simpara>Preface special section.</simpara>
+</preface>
+<colophon xml:id="_колофон">
+<title>Колофон</title>
+<simpara>Colophon special section.</simpara>
+</colophon>
+<chapter xml:id="_the_first_section">
+<title>The First Section</title>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<simpara>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</simpara>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<figure><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>Followed by an example table:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Table</title>
+<?dbhtml table-width="60%"?>
+<?dbfo table-width="60%"?>
+<?dblatex table-width="60%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="128*"/>
+<colspec colname="col_2" colwidth="128*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> Option </entry>
+<entry align="left" valign="top"> Description</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>-a <emphasis>USER GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Add <emphasis>USER</emphasis> to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>-R <emphasis>GROUP</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>Disables access to <emphasis>GROUP</emphasis>.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>And now for something completely different: <indexterm><primary>monkeys</primary></indexterm>monkeys, lions and
+tigers.</simpara>
+</section>
+</chapter>
+<chapter xml:id="_додаток_a_example_appendix">
+<title>Додаток A: Example Appendix</title>
+<simpara>Appendix special section.</simpara>
+</chapter>
+<bibliography xml:id="_бібліографія">
+<title>Бібліографія</title>
+<simpara>Bibliography special section.</simpara>
+<bibliodiv>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="taoup" xreflabel="[taoup]"/>[taoup] Eric Steven Raymond. <emphasis>The Art of Unix
+ Programming</emphasis>. Addison-Wesley. ISBN 0-13-142901-9.
+</bibliomisc>
+</bibliomixed>
+<bibliomixed>
+<bibliomisc>
+<anchor xml:id="walsh-muellner" xreflabel="[walsh-muellner]"/>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <emphasis>DocBook - The Definitive Guide</emphasis>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</bibliomisc>
+</bibliomixed>
+</bibliodiv>
+</bibliography>
+<glossary xml:id="_словник_термінів">
+<title>Словник термінів</title>
+<simpara>Glossary special section.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<index xml:id="_предметний_покажчик">
+<title>Предметний покажчик</title>
+</index>
+</book>
diff --git a/tests/data/lang-uk-book-test-html4.html b/tests/data/lang-uk-book-test-html4.html
index 3bcc916..dcb01f4 100644
--- a/tests/data/lang-uk-book-test-html4.html
+++ b/tests/data/lang-uk-book-test-html4.html
@@ -1,139 +1,139 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-</head>
-<body>
-<h1>Languages Test</h1>
-<p>
-version v1.0,
-2011-01-30
-</p>
-<hr>
-<h2><a name="_присвячення"></a>Присвячення</h2>
-<p>Dedication special section.</p>
-<hr>
-<h2><a name="_вступ"></a>Вступ</h2>
-<p>Preface special section.</p>
-<hr>
-<h2><a name="_колофон"></a>Колофон</h2>
-<p>Colophon special section.</p>
-<hr>
-<h2><a name="_the_first_section"></a>The First Section</h2>
-<h3><a name="_admonishments"></a>Admonishments</h3>
-<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Зауваження</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Підказка</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Увага</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Попередження</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Важливо</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<div>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Рисунок 1. </b>Tiger</p>
-</div>
-<p>Followed by an example table:</p>
-<div>
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top"> Option </th>
-<th align="left" width="50%" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
-<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Таблиця 1. </b>Table</p>
-</div>
-<p>And now for something completely different: monkeys, lions and
-tigers.</p>
-<hr>
-<h2><a name="_додаток_a_example_appendix"></a>Додаток A: Example Appendix</h2>
-<p>Appendix special section.</p>
-<hr>
-<h2><a name="_бібліографія"></a>Бібліографія</h2>
-<p>Bibliography special section.</p>
-<ul>
-<li>
-<p>
-<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_словник_термінів"></a>Словник термінів</h2>
-<p>Glossary special section.</p>
-<dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl>
-<p></p>
-<p></p>
-<hr><p><small>
-Версія v1.0<br>
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+</head>
+<body>
+<h1>Languages Test</h1>
+<p>
+version v1.0,
+2011-01-30
+</p>
+<hr>
+<h2><a name="_присвячення"></a>Присвячення</h2>
+<p>Dedication special section.</p>
+<hr>
+<h2><a name="_вступ"></a>Вступ</h2>
+<p>Preface special section.</p>
+<hr>
+<h2><a name="_колофон"></a>Колофон</h2>
+<p>Colophon special section.</p>
+<hr>
+<h2><a name="_the_first_section"></a>The First Section</h2>
+<h3><a name="_admonishments"></a>Admonishments</h3>
+<p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Зауваження</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Підказка</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Увага</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Попередження</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Важливо</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<div>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Рисунок 1. </b>Tiger</p>
+</div>
+<p>Followed by an example table:</p>
+<div>
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top"> Option </th>
+<th align="left" width="50%" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>-a <em>USER GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>-R <em>GROUP</em></p></td>
+<td align="left" width="50%" valign="top"><p>Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Таблиця 1. </b>Table</p>
+</div>
+<p>And now for something completely different: monkeys, lions and
+tigers.</p>
+<hr>
+<h2><a name="_додаток_a_example_appendix"></a>Додаток A: Example Appendix</h2>
+<p>Appendix special section.</p>
+<hr>
+<h2><a name="_бібліографія"></a>Бібліографія</h2>
+<p>Bibliography special section.</p>
+<ul>
+<li>
+<p>
+<a name="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a name="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_словник_термінів"></a>Словник термінів</h2>
+<p>Glossary special section.</p>
+<dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl>
+<p></p>
+<p></p>
+<hr><p><small>
+Версія v1.0<br>
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/lang-uk-book-test-html5.html b/tests/data/lang-uk-book-test-html5.html
index 4bdab92..8019d87 100644
--- a/tests/data/lang-uk-book-test-html5.html
+++ b/tests/data/lang-uk-book-test-html5.html
@@ -1,906 +1,906 @@
-<!DOCTYPE html>
-<html lang="uk">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2011-01-30</span>
-<div id="toc">
- <div id="toctitle">Зміст</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_присвячення">Присвячення</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_вступ">Вступ</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_колофон">Колофон</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Зауваження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Підказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Увага</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Попередження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важливо</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:60%;
-">
-<caption class="title">Таблиця 1. Table</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > Option </th>
-<th class="tableblock halign-left valign-top" > Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_бібліографія">Бібліографія</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словник_термінів">Словник термінів</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Версія v1.0<br>
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="uk">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2011-01-30</span>
+<div id="toc">
+ <div id="toctitle">Зміст</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_присвячення">Присвячення</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_вступ">Вступ</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_колофон">Колофон</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Зауваження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Підказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Увага</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Попередження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важливо</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:60%;
+">
+<caption class="title">Таблиця 1. Table</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > Option </th>
+<th class="tableblock halign-left valign-top" > Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-a <em>USER GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">-R <em>GROUP</em></p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_бібліографія">Бібліографія</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словник_термінів">Словник термінів</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Версія v1.0<br>
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-uk-book-test-xhtml11.html b/tests/data/lang-uk-book-test-xhtml11.html
index 7b1b5ee..84b4879 100644
--- a/tests/data/lang-uk-book-test-xhtml11.html
+++ b/tests/data/lang-uk-book-test-xhtml11.html
@@ -1,910 +1,910 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="uk">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Languages Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install(2);
-/*]]>*/
-</script>
-</head>
-<body class="book">
-<div id="header">
-<h1>Languages Test</h1>
-<span id="revnumber">version v1.0,</span>
-<span id="revdate">2011-01-30</span>
-<div id="toc">
- <div id="toctitle">Зміст</div>
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
-</div>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_присвячення">Присвячення</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Dedication special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_вступ">Вступ</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Preface special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_колофон">Колофон</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Colophon special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_the_first_section">The First Section</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_admonishments">Admonishments</h3>
-<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
-output file</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Зауваження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Підказка</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Увага</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Попередження</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Важливо</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Рисунок 1. Tiger</div>
-</div>
-<div class="paragraph"><p>Followed by an example table:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="60%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Таблиця 1. Table</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top"> Option </th>
-<th align="left" valign="top"> Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
-<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>And now for something completely different: monkeys, lions and
-tigers.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Appendix special section.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_бібліографія">Бібліографія</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bibliography special section.</p></div>
-<div class="ulist bibliography"><ul>
-<li>
-<p>
-<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
- Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
-</p>
-</li>
-<li>
-<p>
-<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
- <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
- ISBN 1-56592-580-7.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_словник_термінів">Словник термінів</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Glossary special section.</p></div>
-<div class="dlist glossary"><dl>
-<dt>
-A glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-<dt>
-A second glossary term
-</dt>
-<dd>
-<p>
- The corresponding (indented) definition.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Версія v1.0<br />
-Востаннє оновлено
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="uk">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Languages Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install(2);
+/*]]>*/
+</script>
+</head>
+<body class="book">
+<div id="header">
+<h1>Languages Test</h1>
+<span id="revnumber">version v1.0,</span>
+<span id="revdate">2011-01-30</span>
+<div id="toc">
+ <div id="toctitle">Зміст</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_присвячення">Присвячення</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Dedication special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_вступ">Вступ</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Preface special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_колофон">Колофон</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Colophon special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_the_first_section">The First Section</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_admonishments">Admonishments</h3>
+<div class="paragraph"><p>Do not translate in the source file&#8201;&#8212;&#8201;they are translated to the
+output file</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Зауваження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Підказка</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Увага</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Попередження</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Важливо</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Рисунок 1. Tiger</div>
+</div>
+<div class="paragraph"><p>Followed by an example table:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="60%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Таблиця 1. Table</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top"> Option </th>
+<th align="left" valign="top"> Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">-a <em>USER GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Add <em>USER</em> to <em>GROUP</em>.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">-R <em>GROUP</em></p></td>
+<td align="left" valign="top"><p class="table">Disables access to <em>GROUP</em>.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>And now for something completely different: monkeys, lions and
+tigers.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_додаток_a_example_appendix">Додаток A: Example Appendix</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Appendix special section.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_бібліографія">Бібліографія</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bibliography special section.</p></div>
+<div class="ulist bibliography"><ul>
+<li>
+<p>
+<a id="taoup"></a>[taoup] Eric Steven Raymond. <em>The Art of Unix
+ Programming</em>. Addison-Wesley. ISBN 0-13-142901-9.
+</p>
+</li>
+<li>
+<p>
+<a id="walsh-muellner"></a>[walsh-muellner] Norman Walsh &amp; Leonard Muellner.
+ <em>DocBook - The Definitive Guide</em>. O&#8217;Reilly &amp; Associates. 1999.
+ ISBN 1-56592-580-7.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_словник_термінів">Словник термінів</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Glossary special section.</p></div>
+<div class="dlist glossary"><dl>
+<dt>
+A glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+<dt>
+A second glossary term
+</dt>
+<dd>
+<p>
+ The corresponding (indented) definition.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Версія v1.0<br />
+Востаннє оновлено
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/lang-uk-man-test-docbook.xml b/tests/data/lang-uk-man-test-docbook.xml
index 828338e..c9e499a 100644
--- a/tests/data/lang-uk-man-test-docbook.xml
+++ b/tests/data/lang-uk-man-test-docbook.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry lang="uk">
-<refentryinfo>
- <title>ASCIIDOC(1)</title>
-</refentryinfo>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv id="_огляд">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry lang="uk">
+<refentryinfo>
+ <title>ASCIIDOC(1)</title>
+</refentryinfo>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv id="_огляд">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/lang-uk-man-test-docbook5.xml b/tests/data/lang-uk-man-test-docbook5.xml
index ff27038..31d1334 100644
--- a/tests/data/lang-uk-man-test-docbook5.xml
+++ b/tests/data/lang-uk-man-test-docbook5.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-<refentry xml:lang="uk">
-<info>
- <title>ASCIIDOC(1)</title>
-</info>
-<refmeta>
-<refentrytitle>asciidoc</refentrytitle>
-<manvolnum>1</manvolnum>
-<refmiscinfo class="source">&#160;</refmiscinfo>
-<refmiscinfo class="manual">&#160;</refmiscinfo>
-</refmeta>
-<refnamediv>
- <refname>asciidoc</refname>
- <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
-</refnamediv>
-<refsynopsisdiv xml:id="_огляд">
-<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
-</refsynopsisdiv>
-<refsect1 xml:id="_description">
-<title>DESCRIPTION</title>
-<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
-DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
-<simpara>&#8230;</simpara>
-</refsect1>
-</refentry>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+<refentry xml:lang="uk">
+<info>
+ <title>ASCIIDOC(1)</title>
+</info>
+<refmeta>
+<refentrytitle>asciidoc</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo class="source">&#160;</refmiscinfo>
+<refmiscinfo class="manual">&#160;</refmiscinfo>
+</refmeta>
+<refnamediv>
+ <refname>asciidoc</refname>
+ <refpurpose>converts an AsciiDoc text file to HTML or DocBook</refpurpose>
+</refnamediv>
+<refsynopsisdiv xml:id="_огляд">
+<simpara><emphasis role="strong">asciidoc</emphasis> [<emphasis>OPTIONS</emphasis>] <emphasis>FILE</emphasis></simpara>
+</refsynopsisdiv>
+<refsect1 xml:id="_description">
+<title>DESCRIPTION</title>
+<simpara>The asciidoc(1) command translates the AsciiDoc text file <emphasis>FILE</emphasis> to
+DocBook or HTML. If <emphasis>FILE</emphasis> is <emphasis>-</emphasis> then the standard input is used.</simpara>
+<simpara>&#8230;</simpara>
+</refsect1>
+</refentry>
diff --git a/tests/data/latex-filter-docbook.xml b/tests/data/latex-filter-docbook.xml
index 11cdffe..0563e2c 100644
--- a/tests/data/latex-filter-docbook.xml
+++ b/tests/data/latex-filter-docbook.xml
@@ -1,207 +1,207 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>LaTeX Filter</title>
-</articleinfo>
-<simpara>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
-to an image which is automatically inserted into the AsciiDoc output document.
-Although it can accept any LaTeX source, the primary use is to render
-mathematical formulae (see the examples below). The filter implements the
-<emphasis>latex</emphasis> Listing block and Paragraph styles.</simpara>
-<simpara>Two image formats are supported; PNG and SVG. PNG is the default since that
-was the first format that this filter supported. However, SVG is a better
-format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
-and on web pages. SVG will also scale well when zooming in on a web page for
-example. It is recommended to always use the SVG format. This can be done by
-setting the <emphasis>imgfmt</emphasis> parameter to <emphasis>svg</emphasis>, as is done below. An even better way
-is to set the global attribute <emphasis>latex-imgfmt</emphasis> to <emphasis>svg</emphasis>. Then SVG will be used
-for all formulas.</simpara>
-<simpara>This LaTeX paragraph:</simpara>
-<screen>["latex", imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex-filter__1.svg"/>
- </imageobject>
- <textobject><phrase>latex-filter__1.svg</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>Compare the formula above, which is rendered as an SVG image, to the formula
-below which has been rendered as a PNG image. The difference will be most
-notable if zooming in on a web page, printing the web page or when rendering
-the document as a PDF.</simpara>
-<screen>["latex", "latex2.png", 140, imgfmt="png"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex2.png"/>
- </imageobject>
- <textobject><phrase>latex2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>This LaTeX block:</simpara>
-<screen>["latex","latex1.svg",imgfmt="svg",align="center"]
----------------------------------------------------------------------
-\begin{equation*}
-\displaystyle{ V_i = C_0 - C_3
-\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex1.svg" align="center"/>
- </imageobject>
- <textobject><phrase>latex1.svg</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>This LaTeX block:</simpara>
-<screen>.LaTeX filter example
-[latex]
-["latex","latex3.svg",imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation}
-\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
-\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
-\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
-\end{equation}
-
-\begin{equation}
-\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
-\end{equation}
-
-\begin{equation}\label{first}
-a=b+c
-\end{equation}
-
-\begin{subequations}\label{grp}
-\begin{align}
-a&amp;=b+c\label{second}\\
-d&amp;=e+f+g\label{third}\\
-h&amp;=i+j\label{fourth}
-\end{align}
-\end{subequations}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<figure><title>LaTeX filter example</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex3.svg"/>
- </imageobject>
- <textobject><phrase>latex3.svg</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>This LaTeX paragraph:</simpara>
-<screen>.A LaTeX table
-["latex",imgfmt="svg"]
-\begin{tabular}{c r @{.} l}
-Pi expression &amp;
-\multicolumn{2}{c}{Value} \\
-\hline
-$\pi$ &amp; 3&amp;1416 \\
-$\pi^{\pi}$ &amp; 36&amp;46 \\
-$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
-\end{tabular}</screen>
-<simpara>Renders:</simpara>
-<figure><title>A LaTeX table</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex-filter__2.svg"/>
- </imageobject>
- <textobject><phrase>latex-filter__2.svg</phrase></textobject>
-</mediaobject>
-</figure>
-<section id="_using_the_filter">
-<title>Using the Filter</title>
-<itemizedlist>
-<listitem>
-<simpara>
-The LaTeX filter is invoked by setting the Listing block or
- Paragraph style (the first positional block attribute) to <emphasis>latex</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The second positional attribute (named <emphasis>target</emphasis> is optional, it sets
- the name of the generated image file. If this is not supplied a
- file name like <literal>{docname}__{target-number}.{imgfmt}</literal> is synthesised
- (where <literal>{docname}</literal> is the document file name, <literal>{target-number}</literal>
- is an integer number and <literal>{imgfmt}</literal> is the image format (png or svg).
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The third positional attribute, named <emphasis>dpi</emphasis>, is also optional; it is
- an integer number that sets the output resolution in dots per inch
- for a PNG image. It is ignored for an SVG image.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The image format to use can be selected by setting the <emphasis>imgfmt</emphasis>
- parameter or by globally setting the <emphasis>latex-imgfmt</emphasis> attribute.
- Setting it to <emphasis>svg</emphasis> will render SVG images and setting it to <emphasis>png</emphasis>
- will render PNG images. The default is <emphasis>png</emphasis>.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>Because the LaTeX images are rendered using the image block templates
-you can also use the optional named image block attributes (see
-<ulink url="userguide.html#X55">Image macro attributes</ulink> in the AsciiDoc User
-Guide).</simpara>
-<tip>
-<simpara>You can also change the image size using the following LaTeX commands:</simpara>
-<literallayout class="monospaced">\tiny
-\scriptsize
-\footnotesize
-\small
-\normalsize
-\large
-\Large
-\LARGE
-\huge</literallayout>
-<simpara>For example:</simpara>
-<literallayout class="monospaced">[latex]
-\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</literallayout>
-<simpara>The <literal>\Large</literal> command is outside the <literal>$</literal> math delimiters.</simpara>
-</tip>
-<simpara>The filter (<literal>./filters/latex/latex2img.py</literal>) can be used outside
-AsciiDoc to convert LaTeX source to images.</simpara>
-<simpara>Execute the following command to see how to use it:</simpara>
-<literallayout class="monospaced">$ ./filters/latex/latex2img.py --help</literallayout>
-</section>
-<section id="_limitations">
-<title>Limitations</title>
-<itemizedlist>
-<listitem>
-<simpara>
-The <literal>asciidoc(1)</literal> input and output files cannot both be <literal>-</literal> (stdin
- and stdout), either the input or output files (or both) must be a
- named file.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section id="_installation">
-<title>Installation</title>
-<simpara>In addition to AsciiDoc you will need to have <literal>latex(1)</literal>,
-<literal>dvipng(1)</literal> (for PNG) and/or <literal>dvisvgm(1)</literal> (for SVG) installed.</simpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>LaTeX Filter</title>
+</articleinfo>
+<simpara>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
+to an image which is automatically inserted into the AsciiDoc output document.
+Although it can accept any LaTeX source, the primary use is to render
+mathematical formulae (see the examples below). The filter implements the
+<emphasis>latex</emphasis> Listing block and Paragraph styles.</simpara>
+<simpara>Two image formats are supported; PNG and SVG. PNG is the default since that
+was the first format that this filter supported. However, SVG is a better
+format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
+and on web pages. SVG will also scale well when zooming in on a web page for
+example. It is recommended to always use the SVG format. This can be done by
+setting the <emphasis>imgfmt</emphasis> parameter to <emphasis>svg</emphasis>, as is done below. An even better way
+is to set the global attribute <emphasis>latex-imgfmt</emphasis> to <emphasis>svg</emphasis>. Then SVG will be used
+for all formulas.</simpara>
+<simpara>This LaTeX paragraph:</simpara>
+<screen>["latex", imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex-filter__1.svg"/>
+ </imageobject>
+ <textobject><phrase>latex-filter__1.svg</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>Compare the formula above, which is rendered as an SVG image, to the formula
+below which has been rendered as a PNG image. The difference will be most
+notable if zooming in on a web page, printing the web page or when rendering
+the document as a PDF.</simpara>
+<screen>["latex", "latex2.png", 140, imgfmt="png"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex2.png"/>
+ </imageobject>
+ <textobject><phrase>latex2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>This LaTeX block:</simpara>
+<screen>["latex","latex1.svg",imgfmt="svg",align="center"]
+---------------------------------------------------------------------
+\begin{equation*}
+\displaystyle{ V_i = C_0 - C_3
+\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex1.svg" align="center"/>
+ </imageobject>
+ <textobject><phrase>latex1.svg</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>This LaTeX block:</simpara>
+<screen>.LaTeX filter example
+[latex]
+["latex","latex3.svg",imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation}
+\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
+\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
+\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
+\end{equation}
+
+\begin{equation}
+\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
+\end{equation}
+
+\begin{equation}\label{first}
+a=b+c
+\end{equation}
+
+\begin{subequations}\label{grp}
+\begin{align}
+a&amp;=b+c\label{second}\\
+d&amp;=e+f+g\label{third}\\
+h&amp;=i+j\label{fourth}
+\end{align}
+\end{subequations}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<figure><title>LaTeX filter example</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex3.svg"/>
+ </imageobject>
+ <textobject><phrase>latex3.svg</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>This LaTeX paragraph:</simpara>
+<screen>.A LaTeX table
+["latex",imgfmt="svg"]
+\begin{tabular}{c r @{.} l}
+Pi expression &amp;
+\multicolumn{2}{c}{Value} \\
+\hline
+$\pi$ &amp; 3&amp;1416 \\
+$\pi^{\pi}$ &amp; 36&amp;46 \\
+$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
+\end{tabular}</screen>
+<simpara>Renders:</simpara>
+<figure><title>A LaTeX table</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex-filter__2.svg"/>
+ </imageobject>
+ <textobject><phrase>latex-filter__2.svg</phrase></textobject>
+</mediaobject>
+</figure>
+<section id="_using_the_filter">
+<title>Using the Filter</title>
+<itemizedlist>
+<listitem>
+<simpara>
+The LaTeX filter is invoked by setting the Listing block or
+ Paragraph style (the first positional block attribute) to <emphasis>latex</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The second positional attribute (named <emphasis>target</emphasis> is optional, it sets
+ the name of the generated image file. If this is not supplied a
+ file name like <literal>{docname}__{target-number}.{imgfmt}</literal> is synthesised
+ (where <literal>{docname}</literal> is the document file name, <literal>{target-number}</literal>
+ is an integer number and <literal>{imgfmt}</literal> is the image format (png or svg).
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The third positional attribute, named <emphasis>dpi</emphasis>, is also optional; it is
+ an integer number that sets the output resolution in dots per inch
+ for a PNG image. It is ignored for an SVG image.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The image format to use can be selected by setting the <emphasis>imgfmt</emphasis>
+ parameter or by globally setting the <emphasis>latex-imgfmt</emphasis> attribute.
+ Setting it to <emphasis>svg</emphasis> will render SVG images and setting it to <emphasis>png</emphasis>
+ will render PNG images. The default is <emphasis>png</emphasis>.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>Because the LaTeX images are rendered using the image block templates
+you can also use the optional named image block attributes (see
+<ulink url="userguide.html#X55">Image macro attributes</ulink> in the AsciiDoc User
+Guide).</simpara>
+<tip>
+<simpara>You can also change the image size using the following LaTeX commands:</simpara>
+<literallayout class="monospaced">\tiny
+\scriptsize
+\footnotesize
+\small
+\normalsize
+\large
+\Large
+\LARGE
+\huge</literallayout>
+<simpara>For example:</simpara>
+<literallayout class="monospaced">[latex]
+\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</literallayout>
+<simpara>The <literal>\Large</literal> command is outside the <literal>$</literal> math delimiters.</simpara>
+</tip>
+<simpara>The filter (<literal>./filters/latex/latex2img.py</literal>) can be used outside
+AsciiDoc to convert LaTeX source to images.</simpara>
+<simpara>Execute the following command to see how to use it:</simpara>
+<literallayout class="monospaced">$ ./filters/latex/latex2img.py --help</literallayout>
+</section>
+<section id="_limitations">
+<title>Limitations</title>
+<itemizedlist>
+<listitem>
+<simpara>
+The <literal>asciidoc(1)</literal> input and output files cannot both be <literal>-</literal> (stdin
+ and stdout), either the input or output files (or both) must be a
+ named file.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section id="_installation">
+<title>Installation</title>
+<simpara>In addition to AsciiDoc you will need to have <literal>latex(1)</literal>,
+<literal>dvipng(1)</literal> (for PNG) and/or <literal>dvisvgm(1)</literal> (for SVG) installed.</simpara>
+</section>
+</article>
diff --git a/tests/data/latex-filter-docbook5.xml b/tests/data/latex-filter-docbook5.xml
index 8953f69..c497b22 100644
--- a/tests/data/latex-filter-docbook5.xml
+++ b/tests/data/latex-filter-docbook5.xml
@@ -1,206 +1,206 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>LaTeX Filter</title>
-</info>
-<simpara>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
-to an image which is automatically inserted into the AsciiDoc output document.
-Although it can accept any LaTeX source, the primary use is to render
-mathematical formulae (see the examples below). The filter implements the
-<emphasis>latex</emphasis> Listing block and Paragraph styles.</simpara>
-<simpara>Two image formats are supported; PNG and SVG. PNG is the default since that
-was the first format that this filter supported. However, SVG is a better
-format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
-and on web pages. SVG will also scale well when zooming in on a web page for
-example. It is recommended to always use the SVG format. This can be done by
-setting the <emphasis>imgfmt</emphasis> parameter to <emphasis>svg</emphasis>, as is done below. An even better way
-is to set the global attribute <emphasis>latex-imgfmt</emphasis> to <emphasis>svg</emphasis>. Then SVG will be used
-for all formulas.</simpara>
-<simpara>This LaTeX paragraph:</simpara>
-<screen>["latex", imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex-filter__1.svg"/>
- </imageobject>
- <textobject><phrase>latex-filter__1.svg</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>Compare the formula above, which is rendered as an SVG image, to the formula
-below which has been rendered as a PNG image. The difference will be most
-notable if zooming in on a web page, printing the web page or when rendering
-the document as a PDF.</simpara>
-<screen>["latex", "latex2.png", 140, imgfmt="png"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex2.png"/>
- </imageobject>
- <textobject><phrase>latex2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>This LaTeX block:</simpara>
-<screen>["latex","latex1.svg",imgfmt="svg",align="center"]
----------------------------------------------------------------------
-\begin{equation*}
-\displaystyle{ V_i = C_0 - C_3
-\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
-\end{equation*}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex1.svg" align="center"/>
- </imageobject>
- <textobject><phrase>latex1.svg</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<simpara>This LaTeX block:</simpara>
-<screen>.LaTeX filter example
-[latex]
-["latex","latex3.svg",imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation}
-\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
-\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
-\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
-\end{equation}
-
-\begin{equation}
-\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
-\end{equation}
-
-\begin{equation}\label{first}
-a=b+c
-\end{equation}
-
-\begin{subequations}\label{grp}
-\begin{align}
-a&amp;=b+c\label{second}\\
-d&amp;=e+f+g\label{third}\\
-h&amp;=i+j\label{fourth}
-\end{align}
-\end{subequations}
----------------------------------------------------------------------</screen>
-<simpara>Renders:</simpara>
-<figure><title>LaTeX filter example</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex3.svg"/>
- </imageobject>
- <textobject><phrase>latex3.svg</phrase></textobject>
-</mediaobject>
-</figure>
-<simpara>This LaTeX paragraph:</simpara>
-<screen>.A LaTeX table
-["latex",imgfmt="svg"]
-\begin{tabular}{c r @{.} l}
-Pi expression &amp;
-\multicolumn{2}{c}{Value} \\
-\hline
-$\pi$ &amp; 3&amp;1416 \\
-$\pi^{\pi}$ &amp; 36&amp;46 \\
-$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
-\end{tabular}</screen>
-<simpara>Renders:</simpara>
-<figure><title>A LaTeX table</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="latex-filter__2.svg"/>
- </imageobject>
- <textobject><phrase>latex-filter__2.svg</phrase></textobject>
-</mediaobject>
-</figure>
-<section xml:id="_using_the_filter">
-<title>Using the Filter</title>
-<itemizedlist>
-<listitem>
-<simpara>
-The LaTeX filter is invoked by setting the Listing block or
- Paragraph style (the first positional block attribute) to <emphasis>latex</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The second positional attribute (named <emphasis>target</emphasis> is optional, it sets
- the name of the generated image file. If this is not supplied a
- file name like <literal>{docname}__{target-number}.{imgfmt}</literal> is synthesised
- (where <literal>{docname}</literal> is the document file name, <literal>{target-number}</literal>
- is an integer number and <literal>{imgfmt}</literal> is the image format (png or svg).
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The third positional attribute, named <emphasis>dpi</emphasis>, is also optional; it is
- an integer number that sets the output resolution in dots per inch
- for a PNG image. It is ignored for an SVG image.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The image format to use can be selected by setting the <emphasis>imgfmt</emphasis>
- parameter or by globally setting the <emphasis>latex-imgfmt</emphasis> attribute.
- Setting it to <emphasis>svg</emphasis> will render SVG images and setting it to <emphasis>png</emphasis>
- will render PNG images. The default is <emphasis>png</emphasis>.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>Because the LaTeX images are rendered using the image block templates
-you can also use the optional named image block attributes (see
-<link xlink:href="userguide.html#X55">Image macro attributes</link> in the AsciiDoc User
-Guide).</simpara>
-<tip>
-<simpara>You can also change the image size using the following LaTeX commands:</simpara>
-<literallayout class="monospaced">\tiny
-\scriptsize
-\footnotesize
-\small
-\normalsize
-\large
-\Large
-\LARGE
-\huge</literallayout>
-<simpara>For example:</simpara>
-<literallayout class="monospaced">[latex]
-\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</literallayout>
-<simpara>The <literal>\Large</literal> command is outside the <literal>$</literal> math delimiters.</simpara>
-</tip>
-<simpara>The filter (<literal>./filters/latex/latex2img.py</literal>) can be used outside
-AsciiDoc to convert LaTeX source to images.</simpara>
-<simpara>Execute the following command to see how to use it:</simpara>
-<literallayout class="monospaced">$ ./filters/latex/latex2img.py --help</literallayout>
-</section>
-<section xml:id="_limitations">
-<title>Limitations</title>
-<itemizedlist>
-<listitem>
-<simpara>
-The <literal>asciidoc(1)</literal> input and output files cannot both be <literal>-</literal> (stdin
- and stdout), either the input or output files (or both) must be a
- named file.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section xml:id="_installation">
-<title>Installation</title>
-<simpara>In addition to AsciiDoc you will need to have <literal>latex(1)</literal>,
-<literal>dvipng(1)</literal> (for PNG) and/or <literal>dvisvgm(1)</literal> (for SVG) installed.</simpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>LaTeX Filter</title>
+</info>
+<simpara>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
+to an image which is automatically inserted into the AsciiDoc output document.
+Although it can accept any LaTeX source, the primary use is to render
+mathematical formulae (see the examples below). The filter implements the
+<emphasis>latex</emphasis> Listing block and Paragraph styles.</simpara>
+<simpara>Two image formats are supported; PNG and SVG. PNG is the default since that
+was the first format that this filter supported. However, SVG is a better
+format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
+and on web pages. SVG will also scale well when zooming in on a web page for
+example. It is recommended to always use the SVG format. This can be done by
+setting the <emphasis>imgfmt</emphasis> parameter to <emphasis>svg</emphasis>, as is done below. An even better way
+is to set the global attribute <emphasis>latex-imgfmt</emphasis> to <emphasis>svg</emphasis>. Then SVG will be used
+for all formulas.</simpara>
+<simpara>This LaTeX paragraph:</simpara>
+<screen>["latex", imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex-filter__1.svg"/>
+ </imageobject>
+ <textobject><phrase>latex-filter__1.svg</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>Compare the formula above, which is rendered as an SVG image, to the formula
+below which has been rendered as a PNG image. The difference will be most
+notable if zooming in on a web page, printing the web page or when rendering
+the document as a PDF.</simpara>
+<screen>["latex", "latex2.png", 140, imgfmt="png"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex2.png"/>
+ </imageobject>
+ <textobject><phrase>latex2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>This LaTeX block:</simpara>
+<screen>["latex","latex1.svg",imgfmt="svg",align="center"]
+---------------------------------------------------------------------
+\begin{equation*}
+\displaystyle{ V_i = C_0 - C_3
+\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
+\end{equation*}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex1.svg" align="center"/>
+ </imageobject>
+ <textobject><phrase>latex1.svg</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<simpara>This LaTeX block:</simpara>
+<screen>.LaTeX filter example
+[latex]
+["latex","latex3.svg",imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation}
+\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
+\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
+\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
+\end{equation}
+
+\begin{equation}
+\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
+\end{equation}
+
+\begin{equation}\label{first}
+a=b+c
+\end{equation}
+
+\begin{subequations}\label{grp}
+\begin{align}
+a&amp;=b+c\label{second}\\
+d&amp;=e+f+g\label{third}\\
+h&amp;=i+j\label{fourth}
+\end{align}
+\end{subequations}
+---------------------------------------------------------------------</screen>
+<simpara>Renders:</simpara>
+<figure><title>LaTeX filter example</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex3.svg"/>
+ </imageobject>
+ <textobject><phrase>latex3.svg</phrase></textobject>
+</mediaobject>
+</figure>
+<simpara>This LaTeX paragraph:</simpara>
+<screen>.A LaTeX table
+["latex",imgfmt="svg"]
+\begin{tabular}{c r @{.} l}
+Pi expression &amp;
+\multicolumn{2}{c}{Value} \\
+\hline
+$\pi$ &amp; 3&amp;1416 \\
+$\pi^{\pi}$ &amp; 36&amp;46 \\
+$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
+\end{tabular}</screen>
+<simpara>Renders:</simpara>
+<figure><title>A LaTeX table</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="latex-filter__2.svg"/>
+ </imageobject>
+ <textobject><phrase>latex-filter__2.svg</phrase></textobject>
+</mediaobject>
+</figure>
+<section xml:id="_using_the_filter">
+<title>Using the Filter</title>
+<itemizedlist>
+<listitem>
+<simpara>
+The LaTeX filter is invoked by setting the Listing block or
+ Paragraph style (the first positional block attribute) to <emphasis>latex</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The second positional attribute (named <emphasis>target</emphasis> is optional, it sets
+ the name of the generated image file. If this is not supplied a
+ file name like <literal>{docname}__{target-number}.{imgfmt}</literal> is synthesised
+ (where <literal>{docname}</literal> is the document file name, <literal>{target-number}</literal>
+ is an integer number and <literal>{imgfmt}</literal> is the image format (png or svg).
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The third positional attribute, named <emphasis>dpi</emphasis>, is also optional; it is
+ an integer number that sets the output resolution in dots per inch
+ for a PNG image. It is ignored for an SVG image.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The image format to use can be selected by setting the <emphasis>imgfmt</emphasis>
+ parameter or by globally setting the <emphasis>latex-imgfmt</emphasis> attribute.
+ Setting it to <emphasis>svg</emphasis> will render SVG images and setting it to <emphasis>png</emphasis>
+ will render PNG images. The default is <emphasis>png</emphasis>.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>Because the LaTeX images are rendered using the image block templates
+you can also use the optional named image block attributes (see
+<link xlink:href="userguide.html#X55">Image macro attributes</link> in the AsciiDoc User
+Guide).</simpara>
+<tip>
+<simpara>You can also change the image size using the following LaTeX commands:</simpara>
+<literallayout class="monospaced">\tiny
+\scriptsize
+\footnotesize
+\small
+\normalsize
+\large
+\Large
+\LARGE
+\huge</literallayout>
+<simpara>For example:</simpara>
+<literallayout class="monospaced">[latex]
+\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</literallayout>
+<simpara>The <literal>\Large</literal> command is outside the <literal>$</literal> math delimiters.</simpara>
+</tip>
+<simpara>The filter (<literal>./filters/latex/latex2img.py</literal>) can be used outside
+AsciiDoc to convert LaTeX source to images.</simpara>
+<simpara>Execute the following command to see how to use it:</simpara>
+<literallayout class="monospaced">$ ./filters/latex/latex2img.py --help</literallayout>
+</section>
+<section xml:id="_limitations">
+<title>Limitations</title>
+<itemizedlist>
+<listitem>
+<simpara>
+The <literal>asciidoc(1)</literal> input and output files cannot both be <literal>-</literal> (stdin
+ and stdout), either the input or output files (or both) must be a
+ named file.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section xml:id="_installation">
+<title>Installation</title>
+<simpara>In addition to AsciiDoc you will need to have <literal>latex(1)</literal>,
+<literal>dvipng(1)</literal> (for PNG) and/or <literal>dvisvgm(1)</literal> (for SVG) installed.</simpara>
+</section>
+</article>
diff --git a/tests/data/latex-filter-html4.html b/tests/data/latex-filter-html4.html
index e2a0a8f..e38c561 100644
--- a/tests/data/latex-filter-html4.html
+++ b/tests/data/latex-filter-html4.html
@@ -1,206 +1,206 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>LaTeX Filter</title>
-</head>
-<body>
-<h1>LaTeX Filter</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
-to an image which is automatically inserted into the AsciiDoc output document.
-Although it can accept any LaTeX source, the primary use is to render
-mathematical formulae (see the examples below). The filter implements the
-<em>latex</em> Listing block and Paragraph styles.</p>
-<p>Two image formats are supported; PNG and SVG. PNG is the default since that
-was the first format that this filter supported. However, SVG is a better
-format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
-and on web pages. SVG will also scale well when zooming in on a web page for
-example. It is recommended to always use the SVG format. This can be done by
-setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
-is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
-for all formulas.</p>
-<p>This LaTeX paragraph:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>["latex", imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</td></tr></table>
-<p>Renders:</p>
-<div>
-<img src="latex-filter__1.svg" style="border-width: 0;" alt="latex-filter__1.svg">
-</div>
-<p>Compare the formula above, which is rendered as an SVG image, to the formula
-below which has been rendered as a PNG image. The difference will be most
-notable if zooming in on a web page, printing the web page or when rendering
-the document as a PDF.</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>["latex", "latex2.png", 140, imgfmt="png"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</td></tr></table>
-<p>Renders:</p>
-<div>
-<img src="latex2.png" style="border-width: 0;" alt="latex2.png">
-</div>
-<p>This LaTeX block:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>["latex","latex1.svg",imgfmt="svg",align="center"]
----------------------------------------------------------------------
-\begin{equation*}
-\displaystyle{ V_i = C_0 - C_3
-\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</td></tr></table>
-<p>Renders:</p>
-<div align="center">
-<img src="latex1.svg" style="border-width: 0;" alt="latex1.svg">
-</div>
-<p>This LaTeX block:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.LaTeX filter example
-[latex]
-["latex","latex3.svg",imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation}
-\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
-\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
-\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
-\end{equation}
-
-\begin{equation}
-\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
-\end{equation}
-
-\begin{equation}\label{first}
-a=b+c
-\end{equation}
-
-\begin{subequations}\label{grp}
-\begin{align}
-a&amp;=b+c\label{second}\\
-d&amp;=e+f+g\label{third}\\
-h&amp;=i+j\label{fourth}
-\end{align}
-\end{subequations}
----------------------------------------------------------------------</code></pre>
-</td></tr></table>
-<p>Renders:</p>
-<div>
-<img src="latex3.svg" style="border-width: 0;" alt="latex3.svg">
-<p><b>Figure 1. </b>LaTeX filter example</p>
-</div>
-<p>This LaTeX paragraph:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.A LaTeX table
-["latex",imgfmt="svg"]
-\begin{tabular}{c r @{.} l}
-Pi expression &amp;
-\multicolumn{2}{c}{Value} \\
-\hline
-$\pi$ &amp; 3&amp;1416 \\
-$\pi^{\pi}$ &amp; 36&amp;46 \\
-$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
-\end{tabular}</code></pre>
-</td></tr></table>
-<p>Renders:</p>
-<div>
-<img src="latex-filter__2.svg" style="border-width: 0;" alt="latex-filter__2.svg">
-<p><b>Figure 2. </b>A LaTeX table</p>
-</div>
-<hr>
-<h2><a name="_using_the_filter"></a>Using the Filter</h2>
-<ul>
-<li>
-<p>
-The LaTeX filter is invoked by setting the Listing block or
- Paragraph style (the first positional block attribute) to <em>latex</em>.
-</p>
-</li>
-<li>
-<p>
-The second positional attribute (named <em>target</em> is optional, it sets
- the name of the generated image file. If this is not supplied a
- file name like <code>{docname}__{target-number}.{imgfmt}</code> is synthesised
- (where <code>{docname}</code> is the document file name, <code>{target-number}</code>
- is an integer number and <code>{imgfmt}</code> is the image format (png or svg).
-</p>
-</li>
-<li>
-<p>
-The third positional attribute, named <em>dpi</em>, is also optional; it is
- an integer number that sets the output resolution in dots per inch
- for a PNG image. It is ignored for an SVG image.
-</p>
-</li>
-<li>
-<p>
-The image format to use can be selected by setting the <em>imgfmt</em>
- parameter or by globally setting the <em>latex-imgfmt</em> attribute.
- Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
- will render PNG images. The default is <em>png</em>.
-</p>
-</li>
-</ul>
-<p>Because the LaTeX images are rendered using the image block templates
-you can also use the optional named image block attributes (see
-<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
-Guide).</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>You can also change the image size using the following LaTeX commands:</p>
-<pre><code>\tiny
-\scriptsize
-\footnotesize
-\small
-\normalsize
-\large
-\Large
-\LARGE
-\huge</code></pre>
-<p>For example:</p>
-<pre><code>[latex]
-\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</code></pre>
-<p>The <code>\Large</code> command is outside the <code>$</code> math delimiters.</p>
-</td></tr></table>
-<p>The filter (<code>./filters/latex/latex2img.py</code>) can be used outside
-AsciiDoc to convert LaTeX source to images.</p>
-<p>Execute the following command to see how to use it:</p>
-<pre><code>$ ./filters/latex/latex2img.py --help</code></pre>
-<hr>
-<h2><a name="_limitations"></a>Limitations</h2>
-<ul>
-<li>
-<p>
-The <code>asciidoc(1)</code> input and output files cannot both be <code>-</code> (stdin
- and stdout), either the input or output files (or both) must be a
- named file.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_installation"></a>Installation</h2>
-<p>In addition to AsciiDoc you will need to have <code>latex(1)</code>,
-<code>dvipng(1)</code> (for PNG) and/or <code>dvisvgm(1)</code> (for SVG) installed.</p>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>LaTeX Filter</title>
+</head>
+<body>
+<h1>LaTeX Filter</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
+to an image which is automatically inserted into the AsciiDoc output document.
+Although it can accept any LaTeX source, the primary use is to render
+mathematical formulae (see the examples below). The filter implements the
+<em>latex</em> Listing block and Paragraph styles.</p>
+<p>Two image formats are supported; PNG and SVG. PNG is the default since that
+was the first format that this filter supported. However, SVG is a better
+format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
+and on web pages. SVG will also scale well when zooming in on a web page for
+example. It is recommended to always use the SVG format. This can be done by
+setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
+is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
+for all formulas.</p>
+<p>This LaTeX paragraph:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>["latex", imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</td></tr></table>
+<p>Renders:</p>
+<div>
+<img src="latex-filter__1.svg" style="border-width: 0;" alt="latex-filter__1.svg">
+</div>
+<p>Compare the formula above, which is rendered as an SVG image, to the formula
+below which has been rendered as a PNG image. The difference will be most
+notable if zooming in on a web page, printing the web page or when rendering
+the document as a PDF.</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>["latex", "latex2.png", 140, imgfmt="png"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</td></tr></table>
+<p>Renders:</p>
+<div>
+<img src="latex2.png" style="border-width: 0;" alt="latex2.png">
+</div>
+<p>This LaTeX block:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>["latex","latex1.svg",imgfmt="svg",align="center"]
+---------------------------------------------------------------------
+\begin{equation*}
+\displaystyle{ V_i = C_0 - C_3
+\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</td></tr></table>
+<p>Renders:</p>
+<div align="center">
+<img src="latex1.svg" style="border-width: 0;" alt="latex1.svg">
+</div>
+<p>This LaTeX block:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.LaTeX filter example
+[latex]
+["latex","latex3.svg",imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation}
+\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
+\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
+\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
+\end{equation}
+
+\begin{equation}
+\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
+\end{equation}
+
+\begin{equation}\label{first}
+a=b+c
+\end{equation}
+
+\begin{subequations}\label{grp}
+\begin{align}
+a&amp;=b+c\label{second}\\
+d&amp;=e+f+g\label{third}\\
+h&amp;=i+j\label{fourth}
+\end{align}
+\end{subequations}
+---------------------------------------------------------------------</code></pre>
+</td></tr></table>
+<p>Renders:</p>
+<div>
+<img src="latex3.svg" style="border-width: 0;" alt="latex3.svg">
+<p><b>Figure 1. </b>LaTeX filter example</p>
+</div>
+<p>This LaTeX paragraph:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.A LaTeX table
+["latex",imgfmt="svg"]
+\begin{tabular}{c r @{.} l}
+Pi expression &amp;
+\multicolumn{2}{c}{Value} \\
+\hline
+$\pi$ &amp; 3&amp;1416 \\
+$\pi^{\pi}$ &amp; 36&amp;46 \\
+$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
+\end{tabular}</code></pre>
+</td></tr></table>
+<p>Renders:</p>
+<div>
+<img src="latex-filter__2.svg" style="border-width: 0;" alt="latex-filter__2.svg">
+<p><b>Figure 2. </b>A LaTeX table</p>
+</div>
+<hr>
+<h2><a name="_using_the_filter"></a>Using the Filter</h2>
+<ul>
+<li>
+<p>
+The LaTeX filter is invoked by setting the Listing block or
+ Paragraph style (the first positional block attribute) to <em>latex</em>.
+</p>
+</li>
+<li>
+<p>
+The second positional attribute (named <em>target</em> is optional, it sets
+ the name of the generated image file. If this is not supplied a
+ file name like <code>{docname}__{target-number}.{imgfmt}</code> is synthesised
+ (where <code>{docname}</code> is the document file name, <code>{target-number}</code>
+ is an integer number and <code>{imgfmt}</code> is the image format (png or svg).
+</p>
+</li>
+<li>
+<p>
+The third positional attribute, named <em>dpi</em>, is also optional; it is
+ an integer number that sets the output resolution in dots per inch
+ for a PNG image. It is ignored for an SVG image.
+</p>
+</li>
+<li>
+<p>
+The image format to use can be selected by setting the <em>imgfmt</em>
+ parameter or by globally setting the <em>latex-imgfmt</em> attribute.
+ Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
+ will render PNG images. The default is <em>png</em>.
+</p>
+</li>
+</ul>
+<p>Because the LaTeX images are rendered using the image block templates
+you can also use the optional named image block attributes (see
+<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
+Guide).</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>You can also change the image size using the following LaTeX commands:</p>
+<pre><code>\tiny
+\scriptsize
+\footnotesize
+\small
+\normalsize
+\large
+\Large
+\LARGE
+\huge</code></pre>
+<p>For example:</p>
+<pre><code>[latex]
+\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</code></pre>
+<p>The <code>\Large</code> command is outside the <code>$</code> math delimiters.</p>
+</td></tr></table>
+<p>The filter (<code>./filters/latex/latex2img.py</code>) can be used outside
+AsciiDoc to convert LaTeX source to images.</p>
+<p>Execute the following command to see how to use it:</p>
+<pre><code>$ ./filters/latex/latex2img.py --help</code></pre>
+<hr>
+<h2><a name="_limitations"></a>Limitations</h2>
+<ul>
+<li>
+<p>
+The <code>asciidoc(1)</code> input and output files cannot both be <code>-</code> (stdin
+ and stdout), either the input or output files (or both) must be a
+ named file.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_installation"></a>Installation</h2>
+<p>In addition to AsciiDoc you will need to have <code>latex(1)</code>,
+<code>dvipng(1)</code> (for PNG) and/or <code>dvisvgm(1)</code> (for SVG) installed.</p>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/latex-filter-html5.html b/tests/data/latex-filter-html5.html
index 952b9cd..1507975 100644
--- a/tests/data/latex-filter-html5.html
+++ b/tests/data/latex-filter-html5.html
@@ -1,972 +1,972 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>LaTeX Filter</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>LaTeX Filter</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
-to an image which is automatically inserted into the AsciiDoc output document.
-Although it can accept any LaTeX source, the primary use is to render
-mathematical formulae (see the examples below). The filter implements the
-<em>latex</em> Listing block and Paragraph styles.</p></div>
-<div class="paragraph"><p>Two image formats are supported; PNG and SVG. PNG is the default since that
-was the first format that this filter supported. However, SVG is a better
-format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
-and on web pages. SVG will also scale well when zooming in on a web page for
-example. It is recommended to always use the SVG format. This can be done by
-setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
-is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
-for all formulas.</p></div>
-<div class="paragraph"><p>This LaTeX paragraph:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>["latex", imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex-filter__1.svg" alt="latex-filter__1.svg">
-</div>
-</div>
-<div class="paragraph"><p>Compare the formula above, which is rendered as an SVG image, to the formula
-below which has been rendered as a PNG image. The difference will be most
-notable if zooming in on a web page, printing the web page or when rendering
-the document as a PDF.</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>["latex", "latex2.png", 140, imgfmt="png"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex2.png" alt="latex2.png">
-</div>
-</div>
-<div class="paragraph"><p>This LaTeX block:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>["latex","latex1.svg",imgfmt="svg",align="center"]
----------------------------------------------------------------------
-\begin{equation*}
-\displaystyle{ V_i = C_0 - C_3
-\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
-\end{equation*}
----------------------------------------------------------------------</pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex" style="text-align:center;">
-<div class="content">
-<img src="latex1.svg" alt="latex1.svg">
-</div>
-</div>
-<div class="paragraph"><p>This LaTeX block:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>.LaTeX filter example
-[latex]
-["latex","latex3.svg",imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation}
-\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
-\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
-\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
-\end{equation}
-
-\begin{equation}
-\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
-\end{equation}
-
-\begin{equation}\label{first}
-a=b+c
-\end{equation}
-
-\begin{subequations}\label{grp}
-\begin{align}
-a&amp;=b+c\label{second}\\
-d&amp;=e+f+g\label{third}\\
-h&amp;=i+j\label{fourth}
-\end{align}
-\end{subequations}
----------------------------------------------------------------------</pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex3.svg" alt="latex3.svg">
-</div>
-<div class="title">Figure 1. LaTeX filter example</div>
-</div>
-<div class="paragraph"><p>This LaTeX paragraph:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>.A LaTeX table
-["latex",imgfmt="svg"]
-\begin{tabular}{c r @{.} l}
-Pi expression &amp;
-\multicolumn{2}{c}{Value} \\
-\hline
-$\pi$ &amp; 3&amp;1416 \\
-$\pi^{\pi}$ &amp; 36&amp;46 \\
-$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
-\end{tabular}</pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex-filter__2.svg" alt="latex-filter__2.svg">
-</div>
-<div class="title">Figure 2. A LaTeX table</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_using_the_filter">Using the Filter</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-The LaTeX filter is invoked by setting the Listing block or
- Paragraph style (the first positional block attribute) to <em>latex</em>.
-</p>
-</li>
-<li>
-<p>
-The second positional attribute (named <em>target</em> is optional, it sets
- the name of the generated image file. If this is not supplied a
- file name like <span class="monospaced">{docname}__{target-number}.{imgfmt}</span> is synthesised
- (where <span class="monospaced">{docname}</span> is the document file name, <span class="monospaced">{target-number}</span>
- is an integer number and <span class="monospaced">{imgfmt}</span> is the image format (png or svg).
-</p>
-</li>
-<li>
-<p>
-The third positional attribute, named <em>dpi</em>, is also optional; it is
- an integer number that sets the output resolution in dots per inch
- for a PNG image. It is ignored for an SVG image.
-</p>
-</li>
-<li>
-<p>
-The image format to use can be selected by setting the <em>imgfmt</em>
- parameter or by globally setting the <em>latex-imgfmt</em> attribute.
- Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
- will render PNG images. The default is <em>png</em>.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>Because the LaTeX images are rendered using the image block templates
-you can also use the optional named image block attributes (see
-<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
-Guide).</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>You can also change the image size using the following LaTeX commands:</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>\tiny
-\scriptsize
-\footnotesize
-\small
-\normalsize
-\large
-\Large
-\LARGE
-\huge</pre>
-</div></div>
-<div class="paragraph"><p>For example:</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>[latex]
-\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</pre>
-</div></div>
-<div class="paragraph"><p>The <span class="monospaced">\Large</span> command is outside the <span class="monospaced">$</span> math delimiters.</p></div>
-</td>
-</tr></table>
-</div>
-<div class="paragraph"><p>The filter (<span class="monospaced">./filters/latex/latex2img.py</span>) can be used outside
-AsciiDoc to convert LaTeX source to images.</p></div>
-<div class="paragraph"><p>Execute the following command to see how to use it:</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>$ ./filters/latex/latex2img.py --help</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_limitations">Limitations</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-The <span class="monospaced">asciidoc(1)</span> input and output files cannot both be <span class="monospaced">-</span> (stdin
- and stdout), either the input or output files (or both) must be a
- named file.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_installation">Installation</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>In addition to AsciiDoc you will need to have <span class="monospaced">latex(1)</span>,
-<span class="monospaced">dvipng(1)</span> (for PNG) and/or <span class="monospaced">dvisvgm(1)</span> (for SVG) installed.</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>LaTeX Filter</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>LaTeX Filter</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
+to an image which is automatically inserted into the AsciiDoc output document.
+Although it can accept any LaTeX source, the primary use is to render
+mathematical formulae (see the examples below). The filter implements the
+<em>latex</em> Listing block and Paragraph styles.</p></div>
+<div class="paragraph"><p>Two image formats are supported; PNG and SVG. PNG is the default since that
+was the first format that this filter supported. However, SVG is a better
+format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
+and on web pages. SVG will also scale well when zooming in on a web page for
+example. It is recommended to always use the SVG format. This can be done by
+setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
+is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
+for all formulas.</p></div>
+<div class="paragraph"><p>This LaTeX paragraph:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>["latex", imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex-filter__1.svg" alt="latex-filter__1.svg">
+</div>
+</div>
+<div class="paragraph"><p>Compare the formula above, which is rendered as an SVG image, to the formula
+below which has been rendered as a PNG image. The difference will be most
+notable if zooming in on a web page, printing the web page or when rendering
+the document as a PDF.</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>["latex", "latex2.png", 140, imgfmt="png"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex2.png" alt="latex2.png">
+</div>
+</div>
+<div class="paragraph"><p>This LaTeX block:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>["latex","latex1.svg",imgfmt="svg",align="center"]
+---------------------------------------------------------------------
+\begin{equation*}
+\displaystyle{ V_i = C_0 - C_3
+\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
+\end{equation*}
+---------------------------------------------------------------------</pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex" style="text-align:center;">
+<div class="content">
+<img src="latex1.svg" alt="latex1.svg">
+</div>
+</div>
+<div class="paragraph"><p>This LaTeX block:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>.LaTeX filter example
+[latex]
+["latex","latex3.svg",imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation}
+\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
+\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
+\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
+\end{equation}
+
+\begin{equation}
+\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
+\end{equation}
+
+\begin{equation}\label{first}
+a=b+c
+\end{equation}
+
+\begin{subequations}\label{grp}
+\begin{align}
+a&amp;=b+c\label{second}\\
+d&amp;=e+f+g\label{third}\\
+h&amp;=i+j\label{fourth}
+\end{align}
+\end{subequations}
+---------------------------------------------------------------------</pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex3.svg" alt="latex3.svg">
+</div>
+<div class="title">Figure 1. LaTeX filter example</div>
+</div>
+<div class="paragraph"><p>This LaTeX paragraph:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>.A LaTeX table
+["latex",imgfmt="svg"]
+\begin{tabular}{c r @{.} l}
+Pi expression &amp;
+\multicolumn{2}{c}{Value} \\
+\hline
+$\pi$ &amp; 3&amp;1416 \\
+$\pi^{\pi}$ &amp; 36&amp;46 \\
+$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
+\end{tabular}</pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex-filter__2.svg" alt="latex-filter__2.svg">
+</div>
+<div class="title">Figure 2. A LaTeX table</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_using_the_filter">Using the Filter</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+The LaTeX filter is invoked by setting the Listing block or
+ Paragraph style (the first positional block attribute) to <em>latex</em>.
+</p>
+</li>
+<li>
+<p>
+The second positional attribute (named <em>target</em> is optional, it sets
+ the name of the generated image file. If this is not supplied a
+ file name like <span class="monospaced">{docname}__{target-number}.{imgfmt}</span> is synthesised
+ (where <span class="monospaced">{docname}</span> is the document file name, <span class="monospaced">{target-number}</span>
+ is an integer number and <span class="monospaced">{imgfmt}</span> is the image format (png or svg).
+</p>
+</li>
+<li>
+<p>
+The third positional attribute, named <em>dpi</em>, is also optional; it is
+ an integer number that sets the output resolution in dots per inch
+ for a PNG image. It is ignored for an SVG image.
+</p>
+</li>
+<li>
+<p>
+The image format to use can be selected by setting the <em>imgfmt</em>
+ parameter or by globally setting the <em>latex-imgfmt</em> attribute.
+ Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
+ will render PNG images. The default is <em>png</em>.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>Because the LaTeX images are rendered using the image block templates
+you can also use the optional named image block attributes (see
+<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
+Guide).</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>You can also change the image size using the following LaTeX commands:</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>\tiny
+\scriptsize
+\footnotesize
+\small
+\normalsize
+\large
+\Large
+\LARGE
+\huge</pre>
+</div></div>
+<div class="paragraph"><p>For example:</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>[latex]
+\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</pre>
+</div></div>
+<div class="paragraph"><p>The <span class="monospaced">\Large</span> command is outside the <span class="monospaced">$</span> math delimiters.</p></div>
+</td>
+</tr></table>
+</div>
+<div class="paragraph"><p>The filter (<span class="monospaced">./filters/latex/latex2img.py</span>) can be used outside
+AsciiDoc to convert LaTeX source to images.</p></div>
+<div class="paragraph"><p>Execute the following command to see how to use it:</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>$ ./filters/latex/latex2img.py --help</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_limitations">Limitations</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+The <span class="monospaced">asciidoc(1)</span> input and output files cannot both be <span class="monospaced">-</span> (stdin
+ and stdout), either the input or output files (or both) must be a
+ named file.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_installation">Installation</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>In addition to AsciiDoc you will need to have <span class="monospaced">latex(1)</span>,
+<span class="monospaced">dvipng(1)</span> (for PNG) and/or <span class="monospaced">dvisvgm(1)</span> (for SVG) installed.</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/latex-filter-xhtml11.html b/tests/data/latex-filter-xhtml11.html
index f1786e1..35bcae9 100644
--- a/tests/data/latex-filter-xhtml11.html
+++ b/tests/data/latex-filter-xhtml11.html
@@ -1,974 +1,974 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>LaTeX Filter</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>LaTeX Filter</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
-to an image which is automatically inserted into the AsciiDoc output document.
-Although it can accept any LaTeX source, the primary use is to render
-mathematical formulae (see the examples below). The filter implements the
-<em>latex</em> Listing block and Paragraph styles.</p></div>
-<div class="paragraph"><p>Two image formats are supported; PNG and SVG. PNG is the default since that
-was the first format that this filter supported. However, SVG is a better
-format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
-and on web pages. SVG will also scale well when zooming in on a web page for
-example. It is recommended to always use the SVG format. This can be done by
-setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
-is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
-for all formulas.</p></div>
-<div class="paragraph"><p>This LaTeX paragraph:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>["latex", imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex-filter__1.svg" alt="latex-filter__1.svg" />
-</div>
-</div>
-<div class="paragraph"><p>Compare the formula above, which is rendered as an SVG image, to the formula
-below which has been rendered as a PNG image. The difference will be most
-notable if zooming in on a web page, printing the web page or when rendering
-the document as a PDF.</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>["latex", "latex2.png", 140, imgfmt="png"]
----------------------------------------------------------------------
-\begin{equation*}
-y = \int_0^\infty \gamma^2 \cos(x) dx
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex2.png" alt="latex2.png" />
-</div>
-</div>
-<div class="paragraph"><p>This LaTeX block:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>["latex","latex1.svg",imgfmt="svg",align="center"]
----------------------------------------------------------------------
-\begin{equation*}
-\displaystyle{ V_i = C_0 - C_3
-\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
-\end{equation*}
----------------------------------------------------------------------</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex" style="text-align:center;">
-<div class="content">
-<img src="latex1.svg" alt="latex1.svg" />
-</div>
-</div>
-<div class="paragraph"><p>This LaTeX block:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>.LaTeX filter example
-[latex]
-["latex","latex3.svg",imgfmt="svg"]
----------------------------------------------------------------------
-\begin{equation}
-\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
-\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
-\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
-\end{equation}
-
-\begin{equation}
-\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
-\end{equation}
-
-\begin{equation}\label{first}
-a=b+c
-\end{equation}
-
-\begin{subequations}\label{grp}
-\begin{align}
-a&amp;=b+c\label{second}\\
-d&amp;=e+f+g\label{third}\\
-h&amp;=i+j\label{fourth}
-\end{align}
-\end{subequations}
----------------------------------------------------------------------</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex3.svg" alt="latex3.svg" />
-</div>
-<div class="title">Figure 1. LaTeX filter example</div>
-</div>
-<div class="paragraph"><p>This LaTeX paragraph:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>.A LaTeX table
-["latex",imgfmt="svg"]
-\begin{tabular}{c r @{.} l}
-Pi expression &amp;
-\multicolumn{2}{c}{Value} \\
-\hline
-$\pi$ &amp; 3&amp;1416 \\
-$\pi^{\pi}$ &amp; 36&amp;46 \\
-$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
-\end{tabular}</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders:</p></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="latex-filter__2.svg" alt="latex-filter__2.svg" />
-</div>
-<div class="title">Figure 2. A LaTeX table</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_using_the_filter">Using the Filter</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-The LaTeX filter is invoked by setting the Listing block or
- Paragraph style (the first positional block attribute) to <em>latex</em>.
-</p>
-</li>
-<li>
-<p>
-The second positional attribute (named <em>target</em> is optional, it sets
- the name of the generated image file. If this is not supplied a
- file name like <code>{docname}__{target-number}.{imgfmt}</code> is synthesised
- (where <code>{docname}</code> is the document file name, <code>{target-number}</code>
- is an integer number and <code>{imgfmt}</code> is the image format (png or svg).
-</p>
-</li>
-<li>
-<p>
-The third positional attribute, named <em>dpi</em>, is also optional; it is
- an integer number that sets the output resolution in dots per inch
- for a PNG image. It is ignored for an SVG image.
-</p>
-</li>
-<li>
-<p>
-The image format to use can be selected by setting the <em>imgfmt</em>
- parameter or by globally setting the <em>latex-imgfmt</em> attribute.
- Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
- will render PNG images. The default is <em>png</em>.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>Because the LaTeX images are rendered using the image block templates
-you can also use the optional named image block attributes (see
-<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
-Guide).</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>You can also change the image size using the following LaTeX commands:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>\tiny
-\scriptsize
-\footnotesize
-\small
-\normalsize
-\large
-\Large
-\LARGE
-\huge</code></pre>
-</div></div>
-<div class="paragraph"><p>For example:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>[latex]
-\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</code></pre>
-</div></div>
-<div class="paragraph"><p>The <code>\Large</code> command is outside the <code>$</code> math delimiters.</p></div>
-</td>
-</tr></table>
-</div>
-<div class="paragraph"><p>The filter (<code>./filters/latex/latex2img.py</code>) can be used outside
-AsciiDoc to convert LaTeX source to images.</p></div>
-<div class="paragraph"><p>Execute the following command to see how to use it:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>$ ./filters/latex/latex2img.py --help</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_limitations">Limitations</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-The <code>asciidoc(1)</code> input and output files cannot both be <code>-</code> (stdin
- and stdout), either the input or output files (or both) must be a
- named file.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_installation">Installation</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>In addition to AsciiDoc you will need to have <code>latex(1)</code>,
-<code>dvipng(1)</code> (for PNG) and/or <code>dvisvgm(1)</code> (for SVG) installed.</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>LaTeX Filter</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>LaTeX Filter</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>The AsciiDoc distribution includes a LaTeX filter that translates LaTeX source
+to an image which is automatically inserted into the AsciiDoc output document.
+Although it can accept any LaTeX source, the primary use is to render
+mathematical formulae (see the examples below). The filter implements the
+<em>latex</em> Listing block and Paragraph styles.</p></div>
+<div class="paragraph"><p>Two image formats are supported; PNG and SVG. PNG is the default since that
+was the first format that this filter supported. However, SVG is a better
+format since it&#8217;s scalable. Using SVG make formulas look good in both PDFs
+and on web pages. SVG will also scale well when zooming in on a web page for
+example. It is recommended to always use the SVG format. This can be done by
+setting the <em>imgfmt</em> parameter to <em>svg</em>, as is done below. An even better way
+is to set the global attribute <em>latex-imgfmt</em> to <em>svg</em>. Then SVG will be used
+for all formulas.</p></div>
+<div class="paragraph"><p>This LaTeX paragraph:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>["latex", imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex-filter__1.svg" alt="latex-filter__1.svg" />
+</div>
+</div>
+<div class="paragraph"><p>Compare the formula above, which is rendered as an SVG image, to the formula
+below which has been rendered as a PNG image. The difference will be most
+notable if zooming in on a web page, printing the web page or when rendering
+the document as a PDF.</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>["latex", "latex2.png", 140, imgfmt="png"]
+---------------------------------------------------------------------
+\begin{equation*}
+y = \int_0^\infty \gamma^2 \cos(x) dx
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex2.png" alt="latex2.png" />
+</div>
+</div>
+<div class="paragraph"><p>This LaTeX block:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>["latex","latex1.svg",imgfmt="svg",align="center"]
+---------------------------------------------------------------------
+\begin{equation*}
+\displaystyle{ V_i = C_0 - C_3
+\frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }
+\end{equation*}
+---------------------------------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex" style="text-align:center;">
+<div class="content">
+<img src="latex1.svg" alt="latex1.svg" />
+</div>
+</div>
+<div class="paragraph"><p>This LaTeX block:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>.LaTeX filter example
+[latex]
+["latex","latex3.svg",imgfmt="svg"]
+---------------------------------------------------------------------
+\begin{equation}
+\Re{z} =\frac{n\pi \dfrac{\theta +\psi}{2}}{
+\left(\dfrac{\theta +\psi}{2}\right)^2 + \left( \dfrac{1}{2}
+\log \left\lvert\dfrac{B}{A}\right\rvert\right)^2}.
+\end{equation}
+
+\begin{equation}
+\boxed{\eta \leq C(\delta(\eta) +\Lambda_M(0,\delta))}
+\end{equation}
+
+\begin{equation}\label{first}
+a=b+c
+\end{equation}
+
+\begin{subequations}\label{grp}
+\begin{align}
+a&amp;=b+c\label{second}\\
+d&amp;=e+f+g\label{third}\\
+h&amp;=i+j\label{fourth}
+\end{align}
+\end{subequations}
+---------------------------------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex3.svg" alt="latex3.svg" />
+</div>
+<div class="title">Figure 1. LaTeX filter example</div>
+</div>
+<div class="paragraph"><p>This LaTeX paragraph:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>.A LaTeX table
+["latex",imgfmt="svg"]
+\begin{tabular}{c r @{.} l}
+Pi expression &amp;
+\multicolumn{2}{c}{Value} \\
+\hline
+$\pi$ &amp; 3&amp;1416 \\
+$\pi^{\pi}$ &amp; 36&amp;46 \\
+$(\pi^{\pi})^{\pi}$ &amp; 80662&amp;7 \\
+\end{tabular}</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders:</p></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="latex-filter__2.svg" alt="latex-filter__2.svg" />
+</div>
+<div class="title">Figure 2. A LaTeX table</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_using_the_filter">Using the Filter</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+The LaTeX filter is invoked by setting the Listing block or
+ Paragraph style (the first positional block attribute) to <em>latex</em>.
+</p>
+</li>
+<li>
+<p>
+The second positional attribute (named <em>target</em> is optional, it sets
+ the name of the generated image file. If this is not supplied a
+ file name like <code>{docname}__{target-number}.{imgfmt}</code> is synthesised
+ (where <code>{docname}</code> is the document file name, <code>{target-number}</code>
+ is an integer number and <code>{imgfmt}</code> is the image format (png or svg).
+</p>
+</li>
+<li>
+<p>
+The third positional attribute, named <em>dpi</em>, is also optional; it is
+ an integer number that sets the output resolution in dots per inch
+ for a PNG image. It is ignored for an SVG image.
+</p>
+</li>
+<li>
+<p>
+The image format to use can be selected by setting the <em>imgfmt</em>
+ parameter or by globally setting the <em>latex-imgfmt</em> attribute.
+ Setting it to <em>svg</em> will render SVG images and setting it to <em>png</em>
+ will render PNG images. The default is <em>png</em>.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>Because the LaTeX images are rendered using the image block templates
+you can also use the optional named image block attributes (see
+<a href="userguide.html#X55">Image macro attributes</a> in the AsciiDoc User
+Guide).</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>You can also change the image size using the following LaTeX commands:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>\tiny
+\scriptsize
+\footnotesize
+\small
+\normalsize
+\large
+\Large
+\LARGE
+\huge</code></pre>
+</div></div>
+<div class="paragraph"><p>For example:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>[latex]
+\Large $y = \int_0^\infty \gamma^2 \cos(x) dx$</code></pre>
+</div></div>
+<div class="paragraph"><p>The <code>\Large</code> command is outside the <code>$</code> math delimiters.</p></div>
+</td>
+</tr></table>
+</div>
+<div class="paragraph"><p>The filter (<code>./filters/latex/latex2img.py</code>) can be used outside
+AsciiDoc to convert LaTeX source to images.</p></div>
+<div class="paragraph"><p>Execute the following command to see how to use it:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>$ ./filters/latex/latex2img.py --help</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_limitations">Limitations</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+The <code>asciidoc(1)</code> input and output files cannot both be <code>-</code> (stdin
+ and stdout), either the input or output files (or both) must be a
+ named file.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_installation">Installation</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>In addition to AsciiDoc you will need to have <code>latex(1)</code>,
+<code>dvipng(1)</code> (for PNG) and/or <code>dvisvgm(1)</code> (for SVG) installed.</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/latexmath-docbook.xml b/tests/data/latexmath-docbook.xml
index 77939c6..6062f16 100644
--- a/tests/data/latexmath-docbook.xml
+++ b/tests/data/latexmath-docbook.xml
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Embedding LaTeX Math in AsciiDoc dblatex documents</title>
-</articleinfo>
-<simpara>You can include LaTeX math equations in AsciiDoc documents that are
-processed by <ulink url="http://dblatex.sourceforge.net/">dblatex</ulink>. The AsciiDoc
-<emphasis>latexmath</emphasis> macros and passthrough blocks generate DocBook
-<emphasis>inlineequation</emphasis>, <emphasis>informalequation</emphasis> and <emphasis>equation</emphasis> elements
-containing the LaTeX markup which is processed by <emphasis>dblatex</emphasis>.</simpara>
-<section id="_inline_equations">
-<title>Inline equations</title>
-<simpara>This markup:</simpara>
-<screen>An inline equation latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
-using the 'latexmath' inline macro.</screen>
-<simpara>Renders:</simpara>
-<simpara>An inline equation <inlineequation>
-<alt><![CDATA[$C = \alpha + \beta Y^{\gamma} + \epsilon$]]></alt>
-<inlinemediaobject><textobject><phrase></phrase></textobject></inlinemediaobject>
-</inlineequation>
-using the <emphasis>latexmath</emphasis> inline macro.</simpara>
-</section>
-<section id="_informal_equations">
-<title>Informal equations</title>
-<simpara>Informal (untitled) equations are generated with a <emphasis>latexmath</emphasis> style
-passthrough delimited block. This markup:</simpara>
-<screen>[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<informalequation>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</informalequation>
-<simpara>Functionally identical block macro syntax:</simpara>
-<screen>latexmath::[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]</screen>
-<simpara>Renders:</simpara>
-<informalequation>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</informalequation>
-</section>
-<section id="_formal_equations">
-<title>Formal equations</title>
-<simpara>Formal equations are titled and are generated with a <emphasis>latexmath</emphasis> style
-passthrough delimited block.</simpara>
-<simpara>This markup:</simpara>
-<screen>.First equation
-[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<equation><title>First equation</title>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-<simpara>This markup:</simpara>
-<screen>.Matrix
-[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[ P^{e \rightarrow c}= \left[
- \begin{array}{*{3}{r@{}l}}
- &amp; \cos \theta &amp; &amp; \sin \theta \sin \varphi &amp; &amp; \sin \theta \cos \varphi\\
-
- &amp; \sin \theta \sin \psi
- &amp; &amp; \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
- &amp; - &amp; \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
-
- - &amp; \sin \theta \cos \psi
- &amp; &amp; \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
- &amp; - &amp; \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
- \end{array}
-\right] \]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<equation><title>Matrix</title>
-<alt><![CDATA[\[P^{e \rightarrow c}= \left[
- \begin{array}{*{3}{r@{}l}}
- & \cos \theta & & \sin \theta \sin \varphi & & \sin \theta \cos \varphi\\
-
- & \sin \theta \sin \psi
- & & \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
- & - & \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
-
- - & \sin \theta \cos \psi
- & & \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
- & - & \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
- \end{array}
-\right]\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Embedding LaTeX Math in AsciiDoc dblatex documents</title>
+</articleinfo>
+<simpara>You can include LaTeX math equations in AsciiDoc documents that are
+processed by <ulink url="http://dblatex.sourceforge.net/">dblatex</ulink>. The AsciiDoc
+<emphasis>latexmath</emphasis> macros and passthrough blocks generate DocBook
+<emphasis>inlineequation</emphasis>, <emphasis>informalequation</emphasis> and <emphasis>equation</emphasis> elements
+containing the LaTeX markup which is processed by <emphasis>dblatex</emphasis>.</simpara>
+<section id="_inline_equations">
+<title>Inline equations</title>
+<simpara>This markup:</simpara>
+<screen>An inline equation latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
+using the 'latexmath' inline macro.</screen>
+<simpara>Renders:</simpara>
+<simpara>An inline equation <inlineequation>
+<alt><![CDATA[$C = \alpha + \beta Y^{\gamma} + \epsilon$]]></alt>
+<inlinemediaobject><textobject><phrase></phrase></textobject></inlinemediaobject>
+</inlineequation>
+using the <emphasis>latexmath</emphasis> inline macro.</simpara>
+</section>
+<section id="_informal_equations">
+<title>Informal equations</title>
+<simpara>Informal (untitled) equations are generated with a <emphasis>latexmath</emphasis> style
+passthrough delimited block. This markup:</simpara>
+<screen>[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<informalequation>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</informalequation>
+<simpara>Functionally identical block macro syntax:</simpara>
+<screen>latexmath::[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]</screen>
+<simpara>Renders:</simpara>
+<informalequation>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</informalequation>
+</section>
+<section id="_formal_equations">
+<title>Formal equations</title>
+<simpara>Formal equations are titled and are generated with a <emphasis>latexmath</emphasis> style
+passthrough delimited block.</simpara>
+<simpara>This markup:</simpara>
+<screen>.First equation
+[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<equation><title>First equation</title>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+<simpara>This markup:</simpara>
+<screen>.Matrix
+[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[ P^{e \rightarrow c}= \left[
+ \begin{array}{*{3}{r@{}l}}
+ &amp; \cos \theta &amp; &amp; \sin \theta \sin \varphi &amp; &amp; \sin \theta \cos \varphi\\
+
+ &amp; \sin \theta \sin \psi
+ &amp; &amp; \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
+ &amp; - &amp; \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
+
+ - &amp; \sin \theta \cos \psi
+ &amp; &amp; \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
+ &amp; - &amp; \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
+ \end{array}
+\right] \]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<equation><title>Matrix</title>
+<alt><![CDATA[\[P^{e \rightarrow c}= \left[
+ \begin{array}{*{3}{r@{}l}}
+ & \cos \theta & & \sin \theta \sin \varphi & & \sin \theta \cos \varphi\\
+
+ & \sin \theta \sin \psi
+ & & \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
+ & - & \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
+
+ - & \sin \theta \cos \psi
+ & & \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
+ & - & \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
+ \end{array}
+\right]\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+</section>
+</article>
diff --git a/tests/data/latexmath-docbook5.xml b/tests/data/latexmath-docbook5.xml
index f7f9037..8d4e30d 100644
--- a/tests/data/latexmath-docbook5.xml
+++ b/tests/data/latexmath-docbook5.xml
@@ -1,98 +1,98 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Embedding LaTeX Math in AsciiDoc dblatex documents</title>
-</info>
-<simpara>You can include LaTeX math equations in AsciiDoc documents that are
-processed by <link xlink:href="http://dblatex.sourceforge.net/">dblatex</link>. The AsciiDoc
-<emphasis>latexmath</emphasis> macros and passthrough blocks generate DocBook
-<emphasis>inlineequation</emphasis>, <emphasis>informalequation</emphasis> and <emphasis>equation</emphasis> elements
-containing the LaTeX markup which is processed by <emphasis>dblatex</emphasis>.</simpara>
-<section xml:id="_inline_equations">
-<title>Inline equations</title>
-<simpara>This markup:</simpara>
-<screen>An inline equation latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
-using the 'latexmath' inline macro.</screen>
-<simpara>Renders:</simpara>
-<simpara>An inline equation <inlineequation>
-<alt><![CDATA[$C = \alpha + \beta Y^{\gamma} + \epsilon$]]></alt>
-<inlinemediaobject><textobject><phrase></phrase></textobject></inlinemediaobject>
-</inlineequation>
-using the <emphasis>latexmath</emphasis> inline macro.</simpara>
-</section>
-<section xml:id="_informal_equations">
-<title>Informal equations</title>
-<simpara>Informal (untitled) equations are generated with a <emphasis>latexmath</emphasis> style
-passthrough delimited block. This markup:</simpara>
-<screen>[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<informalequation>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</informalequation>
-<simpara>Functionally identical block macro syntax:</simpara>
-<screen>latexmath::[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]</screen>
-<simpara>Renders:</simpara>
-<informalequation>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</informalequation>
-</section>
-<section xml:id="_formal_equations">
-<title>Formal equations</title>
-<simpara>Formal equations are titled and are generated with a <emphasis>latexmath</emphasis> style
-passthrough delimited block.</simpara>
-<simpara>This markup:</simpara>
-<screen>.First equation
-[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<equation><title>First equation</title>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-<simpara>This markup:</simpara>
-<screen>.Matrix
-[latexmath]
-++++++++++++++++++++++++++++++++++++++++++++
-\[ P^{e \rightarrow c}= \left[
- \begin{array}{*{3}{r@{}l}}
- &amp; \cos \theta &amp; &amp; \sin \theta \sin \varphi &amp; &amp; \sin \theta \cos \varphi\\
-
- &amp; \sin \theta \sin \psi
- &amp; &amp; \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
- &amp; - &amp; \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
-
- - &amp; \sin \theta \cos \psi
- &amp; &amp; \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
- &amp; - &amp; \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
- \end{array}
-\right] \]
-++++++++++++++++++++++++++++++++++++++++++++</screen>
-<simpara>Renders:</simpara>
-<equation><title>Matrix</title>
-<alt><![CDATA[\[P^{e \rightarrow c}= \left[
- \begin{array}{*{3}{r@{}l}}
- & \cos \theta & & \sin \theta \sin \varphi & & \sin \theta \cos \varphi\\
-
- & \sin \theta \sin \psi
- & & \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
- & - & \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
-
- - & \sin \theta \cos \psi
- & & \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
- & - & \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
- \end{array}
-\right]\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Embedding LaTeX Math in AsciiDoc dblatex documents</title>
+</info>
+<simpara>You can include LaTeX math equations in AsciiDoc documents that are
+processed by <link xlink:href="http://dblatex.sourceforge.net/">dblatex</link>. The AsciiDoc
+<emphasis>latexmath</emphasis> macros and passthrough blocks generate DocBook
+<emphasis>inlineequation</emphasis>, <emphasis>informalequation</emphasis> and <emphasis>equation</emphasis> elements
+containing the LaTeX markup which is processed by <emphasis>dblatex</emphasis>.</simpara>
+<section xml:id="_inline_equations">
+<title>Inline equations</title>
+<simpara>This markup:</simpara>
+<screen>An inline equation latexmath:[$C = \alpha + \beta Y^{\gamma} + \epsilon$]
+using the 'latexmath' inline macro.</screen>
+<simpara>Renders:</simpara>
+<simpara>An inline equation <inlineequation>
+<alt><![CDATA[$C = \alpha + \beta Y^{\gamma} + \epsilon$]]></alt>
+<inlinemediaobject><textobject><phrase></phrase></textobject></inlinemediaobject>
+</inlineequation>
+using the <emphasis>latexmath</emphasis> inline macro.</simpara>
+</section>
+<section xml:id="_informal_equations">
+<title>Informal equations</title>
+<simpara>Informal (untitled) equations are generated with a <emphasis>latexmath</emphasis> style
+passthrough delimited block. This markup:</simpara>
+<screen>[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<informalequation>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</informalequation>
+<simpara>Functionally identical block macro syntax:</simpara>
+<screen>latexmath::[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]</screen>
+<simpara>Renders:</simpara>
+<informalequation>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</informalequation>
+</section>
+<section xml:id="_formal_equations">
+<title>Formal equations</title>
+<simpara>Formal equations are titled and are generated with a <emphasis>latexmath</emphasis> style
+passthrough delimited block.</simpara>
+<simpara>This markup:</simpara>
+<screen>.First equation
+[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<equation><title>First equation</title>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+<simpara>This markup:</simpara>
+<screen>.Matrix
+[latexmath]
+++++++++++++++++++++++++++++++++++++++++++++
+\[ P^{e \rightarrow c}= \left[
+ \begin{array}{*{3}{r@{}l}}
+ &amp; \cos \theta &amp; &amp; \sin \theta \sin \varphi &amp; &amp; \sin \theta \cos \varphi\\
+
+ &amp; \sin \theta \sin \psi
+ &amp; &amp; \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
+ &amp; - &amp; \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
+
+ - &amp; \sin \theta \cos \psi
+ &amp; &amp; \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
+ &amp; - &amp; \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
+ \end{array}
+\right] \]
+++++++++++++++++++++++++++++++++++++++++++++</screen>
+<simpara>Renders:</simpara>
+<equation><title>Matrix</title>
+<alt><![CDATA[\[P^{e \rightarrow c}= \left[
+ \begin{array}{*{3}{r@{}l}}
+ & \cos \theta & & \sin \theta \sin \varphi & & \sin \theta \cos \varphi\\
+
+ & \sin \theta \sin \psi
+ & & \cos \varphi \cos \psi - \cos \theta \sin \varphi \sin \psi
+ & - & \sin \varphi \cos \psi - \cos \theta \cos \varphi \sin \psi\\
+
+ - & \sin \theta \cos \psi
+ & & \cos \varphi \sin \psi + \cos \theta \sin \varphi \cos \psi
+ & - & \sin \varphi \sin \psi + \cos \theta \cos \varphi \cos \psi\\
+ \end{array}
+\right]\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+</section>
+</article>
diff --git a/tests/data/latexmathml-html5.html b/tests/data/latexmathml-html5.html
index 96c8c6e..dae63c0 100644
--- a/tests/data/latexmathml-html5.html
+++ b/tests/data/latexmathml-html5.html
@@ -1,2031 +1,2031 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>LaTeXMathML Formulae</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-<script type="text/javascript">
-/*<![CDATA[*/
-/*
-LaTeXMathML.js
-==============
-
-This file, in this form, is due to Douglas Woodall, June 2006.
-It contains JavaScript functions to convert (most simple) LaTeX
-math notation to Presentation MathML. It was obtained by
-downloading the file ASCIIMathML.js from
- http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/
-and modifying it so that it carries out ONLY those conversions
-that would be carried out in LaTeX. A description of the original
-file, with examples, can be found at
- www1.chapman.edu/~jipsen/mathml/asciimath.html
- ASCIIMathML: Math on the web for everyone
-
-Here is the header notice from the original file:
-
-ASCIIMathML.js
-==============
-This file contains JavaScript functions to convert ASCII math notation
-to Presentation MathML. The conversion is done while the (X)HTML page
-loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
-Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
-Just add the next line to your (X)HTML page with this file in the same folder:
-This is a convenient and inexpensive solution for authoring MathML.
-
-Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
-Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
-For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
-If you use it on a webpage, please send the URL to jipsen@chapman.edu
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License (at http://www.gnu.org/copyleft/gpl.html)
-for more details.
-
-LaTeXMathML.js (ctd)
-==============
-
-The instructions for use are the same as for the original
-ASCIIMathML.js, except that of course the line you add to your
-file should be
-Or use absolute path names if the file is not in the same folder
-as your (X)HTML page.
-*/
-
-var checkForMathML = true; // check if browser can display MathML
-var notifyIfNoMathML = true; // display note if no MathML capability
-var alertIfNoMathML = false; // show alert box if no MathML capability
-// was "red":
-var mathcolor = ""; // change it to "" (to inherit) or any other color
-// was "serif":
-var mathfontfamily = ""; // change to "" to inherit (works in IE)
- // or another family (e.g. "arial")
-var showasciiformulaonhover = true; // helps students learn ASCIIMath
-/*
-// Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end
-var displaystyle = false; // puts limits above and below large operators
-var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
-var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
-var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
-var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
- // for IE this works only in <!-- -->
-//var separatetokens;// has been removed (email me if this is a problem)
-*/
-var isIE = document.createElementNS==null;
-
-if (document.getElementById==null)
- alert("This webpage requires a recent browser such as\
-\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
-
-// all further global variables start with "AM"
-
-function AMcreateElementXHTML(t) {
- if (isIE) return document.createElement(t);
- else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
-}
-
-function AMnoMathMLNote() {
- var nd = AMcreateElementXHTML("h3");
- nd.setAttribute("align","center")
- nd.appendChild(AMcreateElementXHTML("p"));
- nd.appendChild(document.createTextNode("To view the "));
- var an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("LaTeXMathML"));
- an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
- an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("MathPlayer"));
- an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
- nd.appendChild(AMcreateElementXHTML("p"));
- return nd;
-}
-
-function AMisMathMLavailable() {
- if (navigator.appName.slice(0,8)=="Netscape")
- if (navigator.appVersion.slice(0,1)>="5") return null;
- else return AMnoMathMLNote();
- else if (navigator.appName.slice(0,9)=="Microsoft")
- try {
- var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
- return null;
- } catch (e) {
- return AMnoMathMLNote();
- }
- else return AMnoMathMLNote();
-}
-
-// character lists for Mozilla/Netscape fonts
-var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
-var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
-var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
-
-var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
- RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
- TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types
-
-var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY},
- AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY},
- AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY},
- AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY},
- AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX},
- AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX},
- AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX},
- AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX},
- AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT},
- AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT};
-
-// Commented out by DRW to prevent 1/2 turning into a 2-line fraction
-// AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX},
-// Commented out by DRW so that " prints literally in equations
-// AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT};
-
-var AMsymbols = [
-//Greek letters
-{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST},
-{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST},
-{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST},
-{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST},
-{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST},
-{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST},
-{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST},
-{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST},
-{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST},
-{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST},
-{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST},
-{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST},
-{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST},
-{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST},
-{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST},
-{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST},
-{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST},
-{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST},
-{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST},
-{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST},
-{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST},
-{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST},
-{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST},
-{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST},
-{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST},
-{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST},
-{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST},
-{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST},
-{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST},
-{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST},
-{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST},
-{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST},
-{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST},
-{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST},
-{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST},
-{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST},
-{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST},
-{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST},
-{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST},
-{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST},
-
-//fractions
-{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST},
-{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST},
-{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST},
-{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST},
-{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST},
-{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST},
-{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST},
-{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST},
-{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST},
-{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST},
-{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST},
-{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST},
-{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST},
-{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST},
-{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST},
-
-//binary operation symbols
-{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST},
-{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST},
-{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST},
-{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST},
-{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST},
-{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST},
-{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST},
-{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST},
-{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST},
-{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST},
-//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST},
-{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST},
-{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST},
-{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST},
-{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST},
-{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST},
-{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST},
-{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST},
-{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST},
-{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST},
-{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST},
-{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST},
-{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST},
-{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST},
-{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST},
-{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST},
-{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST},
-{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST},
-{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST},
-{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST},
-{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST},
-{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST},
-{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST},
-{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST},
-{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST},
-{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST},
-{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST},
-{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST},
-
-
-//BIG Operators
-{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER},
-{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER},
-{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER},
-{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER},
-{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER},
-{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER},
-{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER},
-{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER},
-{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER},
-{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER},
-{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER},
-{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER},
-{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER},
-{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST},
-{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST},
-
-//binary relation symbols
-{input:":=", tag:"mo", output:":=", ttype:CONST},
-{input:"\\lt", tag:"mo", output:"<", ttype:CONST},
-{input:"\\gt", tag:"mo", output:">", ttype:CONST},
-{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST},
-{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST},
-{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST},
-{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST},
-{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST},
-{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST},
-{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST},
-{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST},
-{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST},
-{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST},
-{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST},
-{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST},
-{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST},
-{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST},
-{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST},
-{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST},
-{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST},
-{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST},
-{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST},
-{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST},
-{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST},
-{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST},
-{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST},
-{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST},
-{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST},
-{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST},
-{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST},
-{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST},
-{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST},
-{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST},
-{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST},
-{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST},
-{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST},
-{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST},
-{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST},
-{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST},
-
-//matrices
-{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true},
-{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true},
-{input:"\\\\", output:"}&{", ttype:DEFINITION},
-{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION},
-{input:"\\end{array}", output:"}}", ttype:DEFINITION},
-
-//grouping and literal brackets -- ieval is for IE
-{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG},
-{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG},
-{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG},
-{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG},
-{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET},
-{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET},
-{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true},
-{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true},
-
-{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY},
-{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
-{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
-{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
-{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
-{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY},
-{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY},
-{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY},
-
-// rtag:"mi" causes space to be inserted before a following sin, cos, etc.
-// (see function AMparseExpr() )
-{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY},
-
-// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em
-{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY},
-{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY},
-{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST},
-
-//miscellaneous symbols
-{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE},
-{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE},
-{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
-{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
-{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE},
-{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE},
-{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE},
-{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE},
-//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width
-{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST},
-{input:"'", tag:"mo", output:"\u02B9", ttype:CONST},
-{input:"''", tag:"mo", output:"\u02BA", ttype:CONST},
-{input:"'''", tag:"mo", output:"\u2034", ttype:CONST},
-{input:"''''", tag:"mo", output:"\u2057", ttype:CONST},
-{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST},
-{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST},
-{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST},
-{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST},
-{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST},
-{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST},
-{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST},
-{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST},
-{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST},
-{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST},
-{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST},
-{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST},
-{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST},
-{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST},
-{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION},
-{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST},
-{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST},
-{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST},
-{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST},
-{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST},
-//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST},
-{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST},
-//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST},
-{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST},
-{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST},
-{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST},
-{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST},
-{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST},
-{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST},
-{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST},
-{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST},
-
-//standard functions
-//Note UNDEROVER *must* have tag:"mo" to work properly
-{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true},
-{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true},
-{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true},
-{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true},
-{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true},
-{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true},
-{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true},
-{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true},
-{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true},
-{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true},
-{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true},
-{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST?
-{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true},
-{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST?
-{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true},
-{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER},
-{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true},
-{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true},
-{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER},
-{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER},
-{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER},
-{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true},
-{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true},
-{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER},
-{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER},
-{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true},
-{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true},
-{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true},
-{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true},
-{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER},
-{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true},
-{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true},
-
-//arrows
-{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST},
-{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST},
-{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST},
-{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST},
-{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST},
-{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST},
-{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST},
-{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST},
-{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST},
-{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST},
-{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST},
-{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION},
-{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST},
-{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST},
-{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST},
-{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST},
-{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG},
-{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG},
-{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG},
-{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG},
-{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG},
-{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG},
-{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST},
- // disaster if LONG
-
-//commands with argument
-AMsqrt, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose,
-//AMdiv, AMquote,
-
-//diacritical marks
-{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true},
-//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true},
-//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true},
-//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true},
-//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true},
-{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true},
-{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true},
-{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true},
-{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true},
-{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true},
-//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true},
-{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true},
-{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true},
-{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true},
-{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true},
-{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true},
-{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true},
-{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true},
-//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true},
-{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true},
-{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true},
-{input:"\\overbrace", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true},
-{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true},
-{input:"\\underbrace", tag:"munder", output:"\u23B5", ttype:UNARY, acc:true},
-{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true},
-//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true},
-
-//typestyles and fonts
-{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY},
-{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY},
-{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY},
-{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY},
-{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION},
-{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
-{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
-{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
-{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
-{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
-{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
-{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY},
-{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb},
-{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal},
-{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk}
-];
-
-function compareNames(s1,s2) {
- if (s1.input > s2.input) return 1
- else return -1;
-}
-
-var AMnames = []; //list of input symbols
-
-function AMinitSymbols() {
- AMsymbols.sort(compareNames);
- for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
-}
-
-var AMmathml = "http://www.w3.org/1998/Math/MathML";
-
-function AMcreateElementMathML(t) {
- if (isIE) return document.createElement("m:"+t);
- else return document.createElementNS(AMmathml,t);
-}
-
-function AMcreateMmlNode(t,frag) {
-// var node = AMcreateElementMathML(name);
- if (isIE) var node = document.createElement("m:"+t);
- else var node = document.createElementNS(AMmathml,t);
- node.appendChild(frag);
- return node;
-}
-
-function newcommand(oldstr,newstr) {
- AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
- ttype:DEFINITION}]);
-}
-
-function AMremoveCharsAndBlanks(str,n) {
-//remove n characters and any following blanks
- var st;
- st = str.slice(n);
- for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
- return st.slice(i);
-}
-
-function AMposition(arr, str, n) {
-// return position >=n where str appears or would be inserted
-// assumes arr is sorted
- if (n==0) {
- var h,m;
- n = -1;
- h = arr.length;
- while (n+1<h) {
- m = (n+h) >> 1;
- if (arr[m]<str) n = m; else h = m;
- }
- return h;
- } else
- for (var i=n; i<arr.length && arr[i]<str; i++);
- return i; // i=arr.length || arr[i]>=str
-}
-
-function AMgetSymbol(str) {
-//return maximal initial substring of str that appears in names
-//return null if there is none
- var k = 0; //new pos
- var j = 0; //old pos
- var mk; //match pos
- var st;
- var tagst;
- var match = "";
- var more = true;
- for (var i=1; i<=str.length && more; i++) {
- st = str.slice(0,i); //initial substring of length i
- j = k;
- k = AMposition(AMnames, st, j);
- if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
- match = AMnames[k];
- mk = k;
- i = match.length;
- }
- more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
- }
- AMpreviousSymbol=AMcurrentSymbol;
- if (match!=""){
- AMcurrentSymbol=AMsymbols[mk].ttype;
- return AMsymbols[mk];
- }
- AMcurrentSymbol=CONST;
- k = 1;
- st = str.slice(0,1); //take 1 character
- if ("0"<=st && st<="9") tagst = "mn";
- else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
-/*
-// Commented out by DRW (not fully understood, but probably to do with
-// use of "/" as an INFIX version of "\\frac", which we don't want):
-//}
-//if (st=="-" && AMpreviousSymbol==INFIX) {
-// AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
-// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
-//}
-*/
- return {input:st, tag:tagst, output:st, ttype:CONST};
-}
-
-
-/*Parsing ASCII math expressions with the following grammar
-v ::= [A-Za-z] | greek letters | numbers | other constant symbols
-u ::= sqrt | text | bb | other unary symbols for font commands
-b ::= frac | root | stackrel binary symbols
-l ::= { | \left left brackets
-r ::= } | \right right brackets
-S ::= v | lEr | uS | bSS Simple expression
-I ::= S_S | S^S | S_S^S | S Intermediate expression
-E ::= IE | I/I Expression
-Each terminal symbol is translated into a corresponding mathml node.*/
-
-var AMpreviousSymbol,AMcurrentSymbol;
-
-function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag]
- var symbol, node, result, result2, i, st,// rightvert = false,
- newFrag = document.createDocumentFragment();
- str = AMremoveCharsAndBlanks(str,0);
- symbol = AMgetSymbol(str); //either a token or a bracket or empty
- if (symbol == null || symbol.ttype == RIGHTBRACKET)
- return [null,str,null];
- if (symbol.ttype == DEFINITION) {
- str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- if (symbol == null || symbol.ttype == RIGHTBRACKET)
- return [null,str,null];
- }
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- switch (symbol.ttype) {
- case SPACE:
- node = AMcreateElementMathML(symbol.tag);
- node.setAttribute(symbol.atname,symbol.atval);
- return [node,str,symbol.tag];
- case UNDEROVER:
- if (isIE) {
- if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols
- str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc.
- symbol = AMgetSymbol(str);
- symbol.ttype = UNDEROVER;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- }
- }
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str,symbol.tag];
- case CONST:
- var output = symbol.output;
- if (isIE) {
- if (symbol.input == "'")
- output = "\u2032";
- else if (symbol.input == "''")
- output = "\u2033";
- else if (symbol.input == "'''")
- output = "\u2033\u2032";
- else if (symbol.input == "''''")
- output = "\u2033\u2033";
- else if (symbol.input == "\\square")
- output = "\u25A1"; // same as \Box
- else if (symbol.input.substr(0,5) == "\\frac") {
- // botch for missing fractions
- var denom = symbol.input.substr(6,1);
- if (denom == "5" || denom == "6") {
- str = symbol.input.replace(/\\frac/,"\\frac ")+str;
- return [node,str,symbol.tag];
- }
- }
- }
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(output));
- return [node,str,symbol.tag];
- case LONG: // added by DRW
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- node.setAttribute("minsize","1.5");
- node.setAttribute("maxsize","1.5");
- node = AMcreateMmlNode("mover",node);
- node.appendChild(AMcreateElementMathML("mspace"));
- return [node,str,symbol.tag];
- case STRETCHY: // added by DRW
- if (isIE && symbol.input == "\\backslash")
- symbol.output = "\\"; // doesn't expand, but then nor does "\u2216"
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- if (symbol.input == "|" || symbol.input == "\\vert" ||
- symbol.input == "\\|" || symbol.input == "\\Vert") {
- node.setAttribute("lspace","0em");
- node.setAttribute("rspace","0em");
- }
- node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here
- if (symbol.rtag != null)
- return [node,str,symbol.rtag];
- else
- return [node,str,symbol.tag];
- case BIG: // added by DRW
- var atval = symbol.atval;
- if (isIE)
- atval = symbol.ieval;
- symbol = AMgetSymbol(str);
- if (symbol == null)
- return [null,str,null];
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- if (isIE) { // to get brackets to expand
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("height",atval+"ex");
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(space);
- } else { // ignored in IE
- node.setAttribute("minsize",atval);
- node.setAttribute("maxsize",atval);
- }
- return [node,str,symbol.tag];
- case LEFTBRACKET: //read (expr+)
- if (symbol.input == "\\left") { // left what?
- symbol = AMgetSymbol(str);
- if (symbol != null) {
- if (symbol.input == ".")
- symbol.invisible = true;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- }
- }
- result = AMparseExpr(str,true,false);
- if (symbol==null ||
- (typeof symbol.invisible == "boolean" && symbol.invisible))
- node = AMcreateMmlNode("mrow",result[0]);
- else {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- }
- return [node,result[1],result[2]];
- case MATRIX: //read (expr+)
- if (symbol.input == "\\begin{array}") {
- var mask = "";
- symbol = AMgetSymbol(str);
- str = AMremoveCharsAndBlanks(str,0);
- if (symbol == null)
- mask = "l";
- else {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (symbol.input != "{")
- mask = "l";
- else do {
- symbol = AMgetSymbol(str);
- if (symbol != null) {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (symbol.input != "}")
- mask = mask+symbol.input;
- }
- } while (symbol != null && symbol.input != "" && symbol.input != "}");
- }
- result = AMparseExpr("{"+str,true,true);
-// if (result[0]==null) return [AMcreateMmlNode("mo",
-// document.createTextNode(symbol.input)),str];
- node = AMcreateMmlNode("mtable",result[0]);
- mask = mask.replace(/l/g,"left ");
- mask = mask.replace(/r/g,"right ");
- mask = mask.replace(/c/g,"center ");
- node.setAttribute("columnalign",mask);
- node.setAttribute("displaystyle","false");
- if (isIE)
- return [node,result[1],null];
-// trying to get a *little* bit of space around the array
-// (IE already includes it)
- var lspace = AMcreateElementMathML("mspace");
- lspace.setAttribute("width","0.167em");
- var rspace = AMcreateElementMathML("mspace");
- rspace.setAttribute("width","0.167em");
- var node1 = AMcreateMmlNode("mrow",lspace);
- node1.appendChild(node);
- node1.appendChild(rspace);
- return [node1,result[1],null];
- } else { // eqnarray
- result = AMparseExpr("{"+str,true,true);
- node = AMcreateMmlNode("mtable",result[0]);
- if (isIE)
- node.setAttribute("columnspacing","0.25em"); // best in practice?
- else
- node.setAttribute("columnspacing","0.167em"); // correct (but ignored?)
- node.setAttribute("columnalign","right center left");
- node.setAttribute("displaystyle","true");
- node = AMcreateMmlNode("mrow",node);
- return [node,result[1],null];
- }
- case TEXT:
- if (str.charAt(0)=="{") i=str.indexOf("}");
- else i = 0;
- if (i==-1)
- i = str.length;
- st = str.slice(1,i);
- if (st.charAt(0) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","0.33em"); // was 1ex
- newFrag.appendChild(node);
- }
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
- if (st.charAt(st.length-1) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","0.33em"); // was 1ex
- newFrag.appendChild(node);
- }
- str = AMremoveCharsAndBlanks(str,i+1);
- return [AMcreateMmlNode("mrow",newFrag),str,null];
- case UNARY:
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
- st = str.charAt(0);
-// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
- if (st=="^" || st=="_" || st==",") {
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str,symbol.tag];
- } else {
- node = AMcreateMmlNode("mrow",
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- if (isIE) {
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("width","0.167em");
- node.appendChild(space);
- }
- node.appendChild(result[0]);
- return [node,result[1],symbol.tag];
- }
- }
- if (symbol.input == "\\sqrt") { // sqrt
- if (isIE) { // set minsize, for \surd
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("height","1.2ex");
- space.setAttribute("width","0em"); // probably no effect
- node = AMcreateMmlNode(symbol.tag,result[0])
-// node.setAttribute("minsize","1"); // ignored
-// node = AMcreateMmlNode("mrow",node); // hopefully unnecessary
- node.appendChild(space);
- return [node,result[1],symbol.tag];
- } else
- return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
- } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
- node = AMcreateMmlNode(symbol.tag,result[0]);
- var output = symbol.output;
- if (isIE) {
- if (symbol.input == "\\hat")
- output = "\u0302";
- else if (symbol.input == "\\widehat")
- output = "\u005E";
- else if (symbol.input == "\\bar")
- output = "\u00AF";
- else if (symbol.input == "\\grave")
- output = "\u0300";
- else if (symbol.input == "\\tilde")
- output = "\u0303";
- }
- var node1 = AMcreateMmlNode("mo",document.createTextNode(output));
- if (symbol.input == "\\vec" || symbol.input == "\\check")
- // don't allow to stretch
- node1.setAttribute("maxsize","1.2");
- // why doesn't "1" work? \vec nearly disappears in firefox
- if (isIE && symbol.input == "\\bar")
- node1.setAttribute("maxsize","0.5");
- if (symbol.input == "\\underbrace" || symbol.input == "\\underline")
- node1.setAttribute("accentunder","true");
- else
- node1.setAttribute("accent","true");
- node.appendChild(node1);
- if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace")
- node.ttype = UNDEROVER;
- return [node,result[1],symbol.tag];
- } else { // font change or displaystyle command
- if (!isIE && typeof symbol.codes != "undefined") {
- for (i=0; i<result[0].childNodes.length; i++)
- if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
- st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
- result[0].childNodes[i].firstChild.nodeValue);
- var newst = [];
- for (var j=0; j<st.length; j++)
- if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
- String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
- else newst = newst + st.charAt(j);
- if (result[0].nodeName=="mi")
- result[0]=AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst));
- else result[0].replaceChild(AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
- }
- }
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.setAttribute(symbol.atname,symbol.atval);
- if (symbol.input == "\\scriptstyle" ||
- symbol.input == "\\scriptscriptstyle")
- node.setAttribute("displaystyle","false");
- return [node,result[1],symbol.tag];
- }
- case BINARY:
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str,null];
- result2 = AMparseSexpr(result[1]);
- if (result2[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str,null];
- if (symbol.input=="\\root" || symbol.input=="\\stackrel")
- newFrag.appendChild(result2[0]);
- newFrag.appendChild(result[0]);
- if (symbol.input=="\\frac") newFrag.appendChild(result2[0]);
- return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];
- case INFIX:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),
- str,symbol.tag];
- default:
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str,symbol.tag];
- }
-}
-
-function AMparseIexpr(str) {
- var symbol, sym1, sym2, node, result, tag, underover;
- str = AMremoveCharsAndBlanks(str,0);
- sym1 = AMgetSymbol(str);
- result = AMparseSexpr(str);
- node = result[0];
- str = result[1];
- tag = result[2];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX) {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- str = result[1];
- tag = result[2];
- if (symbol.input == "_" || symbol.input == "^") {
- sym2 = AMgetSymbol(str);
- tag = null; // no space between x^2 and a following sin, cos, etc.
-// This is for \underbrace and \overbrace
- underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER));
-// underover = (sym1.ttype == UNDEROVER);
- if (symbol.input == "_" && sym2.input == "^") {
- str = AMremoveCharsAndBlanks(str,sym2.input.length);
- var res2 = AMparseSexpr(str);
- str = res2[1];
- tag = res2[2]; // leave space between x_1^2 and a following sin etc.
- node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
- node.appendChild(result[0]);
- node.appendChild(res2[0]);
- } else if (symbol.input == "_") {
- node = AMcreateMmlNode((underover?"munder":"msub"),node);
- node.appendChild(result[0]);
- } else {
- node = AMcreateMmlNode((underover?"mover":"msup"),node);
- node.appendChild(result[0]);
- }
- node = AMcreateMmlNode("mrow",node); // so sum does not stretch
- } else {
- node = AMcreateMmlNode(symbol.tag,node);
- if (symbol.input == "\\atop" || symbol.input == "\\choose")
- node.setAttribute("linethickness","0ex");
- node.appendChild(result[0]);
- if (symbol.input == "\\choose")
- node = AMcreateMmlNode("mfenced",node);
- }
- }
- return [node,str,tag];
-}
-
-function AMparseExpr(str,rightbracket,matrix) {
- var symbol, node, result, i, tag,
- newFrag = document.createDocumentFragment();
- do {
- str = AMremoveCharsAndBlanks(str,0);
- result = AMparseIexpr(str);
- node = result[0];
- str = result[1];
- tag = result[2];
- symbol = AMgetSymbol(str);
- if (node!=undefined) {
- if ((tag == "mn" || tag == "mi") && symbol!=null &&
- typeof symbol.func == "boolean" && symbol.func) {
- // Add space before \sin in 2\sin x or x\sin x
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("width","0.167em");
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(space);
- }
- newFrag.appendChild(node);
- }
- } while ((symbol.ttype != RIGHTBRACKET)
- && symbol!=null && symbol.output!="");
- tag = null;
- if (symbol.ttype == RIGHTBRACKET) {
- if (symbol.input == "\\right") { // right what?
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- if (symbol != null && symbol.input == ".")
- symbol.invisible = true;
- if (symbol != null)
- tag = symbol.rtag;
- }
- if (symbol!=null)
- str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return
- var len = newFrag.childNodes.length;
- if (matrix &&
- len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
- newFrag.childNodes[len-2].nodeName == "mo" &&
- newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix
- var pos = []; // positions of ampersands
- var m = newFrag.childNodes.length;
- for (i=0; matrix && i<m; i=i+2) {
- pos[i] = [];
- node = newFrag.childNodes[i];
- for (var j=0; j<node.childNodes.length; j++)
- if (node.childNodes[j].firstChild.nodeValue=="&")
- pos[i][pos[i].length]=j;
- }
- var row, frag, n, k, table = document.createDocumentFragment();
- for (i=0; i<m; i=i+2) {
- row = document.createDocumentFragment();
- frag = document.createDocumentFragment();
- node = newFrag.firstChild; // <mrow> -&-&...&-&- </mrow>
- n = node.childNodes.length;
- k = 0;
- for (j=0; j<n; j++) {
- if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
- node.removeChild(node.firstChild); //remove &
- row.appendChild(AMcreateMmlNode("mtd",frag));
- k++;
- } else frag.appendChild(node.firstChild);
- }
- row.appendChild(AMcreateMmlNode("mtd",frag));
- if (newFrag.childNodes.length>2) {
- newFrag.removeChild(newFrag.firstChild); //remove <mrow> </mrow>
- newFrag.removeChild(newFrag.firstChild); //remove <mo>&</mo>
- }
- table.appendChild(AMcreateMmlNode("mtr",row));
- }
- return [table,str];
- }
- if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- newFrag.appendChild(node);
- }
- }
- return [newFrag,str,tag];
-}
-
-function AMparseMath(str) {
- var result, node = AMcreateElementMathML("mstyle");
- if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
- if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
- node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]);
- node = AMcreateMmlNode("math",node);
- if (showasciiformulaonhover) //fixed by djhsu so newline
- node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
- if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
- var fnode = AMcreateElementXHTML("font");
- fnode.setAttribute("face",mathfontfamily);
- fnode.appendChild(node);
- return fnode;
- }
- return node;
-}
-
-function AMstrarr2docFrag(arr, linebreaks) {
- var newFrag=document.createDocumentFragment();
- var expr = false;
- for (var i=0; i<arr.length; i++) {
- if (expr) newFrag.appendChild(AMparseMath(arr[i]));
- else {
- var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[0])));
- for (var j=1; j<arri.length; j++) {
- newFrag.appendChild(AMcreateElementXHTML("p"));
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[j])));
- }
- }
- expr = !expr;
- }
- return newFrag;
-}
-
-function AMprocessNodeR(n, linebreaks) {
- var mtch, str, arr, frg, i;
- if (n.childNodes.length == 0) {
- if ((n.nodeType!=8 || linebreaks) &&
- n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
- n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
- n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
- str = n.nodeValue;
- if (!(str == null)) {
- str = str.replace(/\r\n\r\n/g,"\n\n");
- str = str.replace(/\x20+/g," ");
- str = str.replace(/\s*\r\n/g," ");
-// DELIMITERS:
- mtch = (str.indexOf("\$")==-1 ? false : true);
- str = str.replace(/([^\\])\$/g,"$1 \$");
- str = str.replace(/^\$/," \$"); // in case \$ at start of string
- arr = str.split(" \$");
- for (i=0; i<arr.length; i++)
- arr[i]=arr[i].replace(/\\\$/g,"\$");
- if (arr.length>1 || mtch) {
- if (checkForMathML) {
- checkForMathML = false;
- var nd = AMisMathMLavailable();
- AMnoMathML = nd != null;
- if (AMnoMathML && notifyIfNoMathML)
- if (alertIfNoMathML)
- alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
- or Firefox/Mozilla/Netscape");
- else AMbody.insertBefore(nd,AMbody.childNodes[0]);
- }
- if (!AMnoMathML) {
- frg = AMstrarr2docFrag(arr,n.nodeType==8);
- var len = frg.childNodes.length;
- n.parentNode.replaceChild(frg,n);
- return len-1;
- } else return 0;
- }
- }
- } else return 0;
- } else if (n.nodeName!="math") {
- for (i=0; i<n.childNodes.length; i++)
- i += AMprocessNodeR(n.childNodes[i], linebreaks);
- }
- return 0;
-}
-
-function AMprocessNode(n, linebreaks, spanclassAM) {
- var frag,st;
- if (spanclassAM!=null) {
- frag = document.getElementsByTagName("span")
- for (var i=0;i<frag.length;i++)
- if (frag[i].className == "AM")
- AMprocessNodeR(frag[i],linebreaks);
- } else {
- try {
- st = n.innerHTML;
- } catch(err) {}
-// DELIMITERS:
- if (st==null || st.indexOf("\$")!=-1)
- AMprocessNodeR(n,linebreaks);
- }
- if (isIE) { //needed to match size and font of formula to surrounding text
- frag = document.getElementsByTagName('math');
- for (var i=0;i<frag.length;i++) frag[i].update()
- }
-}
-
-var AMbody;
-var AMnoMathML = false, AMtranslated = false;
-
-function translate(spanclassAM) {
- if (!AMtranslated) { // run this only once
- AMtranslated = true;
- AMinitSymbols();
- AMbody = document.getElementsByTagName("body")[0];
- AMprocessNode(AMbody, false, spanclassAM);
- }
-}
-
-if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
- document.write("<object id=\"mathplayer\"\
- classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
- document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
-}
-
-// GO1.1 Generic onload by Brothercake
-// http://www.brothercake.com/
-//onload function (replaces the onload="translate()" in the <body> tag)
-function generic()
-{
- translate();
-};
-//setup onload function
-if(typeof window.addEventListener != 'undefined')
-{
- //.. gecko, safari, konqueror and standard
- window.addEventListener('load', generic, false);
-}
-else if(typeof document.addEventListener != 'undefined')
-{
- //.. opera 7
- document.addEventListener('load', generic, false);
-}
-else if(typeof window.attachEvent != 'undefined')
-{
- //.. win/ie
- window.attachEvent('onload', generic);
-}
-//** remove this condition to degrade older browsers
-else
-{
- //.. mac/ie5 and anything else that gets this far
- //if there's an existing onload function
- if(typeof window.onload == 'function')
- {
- //store it
- var existing = onload;
- //add new onload handler
- window.onload = function()
- {
- //call existing onload function
- existing();
- //call generic onload function
- generic();
- };
- }
- else
- {
- //setup onload function
- window.onload = generic;
- }
-}
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>LaTeXMathML Formulae</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
-capability has been added to AsciiDoc for users who are more familar
-with or prefer LaTeX math formulas to the
-<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>
-notation.</p></div>
-<div class="paragraph"><p><em>LaTeXMathML</em> is a derivative of
-<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>&#8201;&#8212;&#8201;in
-terms of usage the only difference it that you use the <span class="monospaced">latexmath</span>
-attribute instead of the <span class="monospaced">asciimath</span> attribute.</p></div>
-<div class="paragraph"><p><em>LaTeXMathML</em> processes LaTeX math formulas not arbitrary LaTeX (as
-<span class="monospaced">dblatex(1)</span> does). See the
-<a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
-website for details.</p></div>
-<div class="paragraph"><p>Here&#8217;s the <a href="latexmathml.txt">AsciiDoc source</a> that generated this
-page.</p></div>
-<div class="paragraph"><p>Some example <em>LaTeXMathML</em> formulas:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-$R_x = 10.0 \times \sin(R_\phi)$
-</p>
-</li>
-<li>
-<p>
-$\sum_{n=1}^\infty \frac{1}{2^n}$
-</p>
-</li>
-<li>
-<p>
-$\lim_{x\to\infty} f(x) = k \choose r + \frac ab
- \sum_{n=1}^\infty a_n + \displaystyle{ \left\{ \frac{1}{13}
- \sum_{n=1}^\infty b_n \right\} }$
-</p>
-</li>
-<li>
-<p>
-$\$\alpha + \$\beta = \$(\alpha + \beta)$
-</p>
-</li>
-<li>
-<p>
-$\begin{eqnarray} x &amp; = &amp; \frac{-7 \pm
- \sqrt{49 - 24}}{6} \\ &amp; = &amp; -2 \textrm{ or } -\frac13.
- \end{eqnarray}$
-</p>
-</li>
-<li>
-<p>
-$\displaystyle{ V_i = C_0 - C_3
- \frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }$
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>LaTeXMathML Formulae</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+<script type="text/javascript">
+/*<![CDATA[*/
+/*
+LaTeXMathML.js
+==============
+
+This file, in this form, is due to Douglas Woodall, June 2006.
+It contains JavaScript functions to convert (most simple) LaTeX
+math notation to Presentation MathML. It was obtained by
+downloading the file ASCIIMathML.js from
+ http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/
+and modifying it so that it carries out ONLY those conversions
+that would be carried out in LaTeX. A description of the original
+file, with examples, can be found at
+ www1.chapman.edu/~jipsen/mathml/asciimath.html
+ ASCIIMathML: Math on the web for everyone
+
+Here is the header notice from the original file:
+
+ASCIIMathML.js
+==============
+This file contains JavaScript functions to convert ASCII math notation
+to Presentation MathML. The conversion is done while the (X)HTML page
+loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
+Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
+Just add the next line to your (X)HTML page with this file in the same folder:
+This is a convenient and inexpensive solution for authoring MathML.
+
+Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
+Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
+For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
+If you use it on a webpage, please send the URL to jipsen@chapman.edu
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License (at http://www.gnu.org/copyleft/gpl.html)
+for more details.
+
+LaTeXMathML.js (ctd)
+==============
+
+The instructions for use are the same as for the original
+ASCIIMathML.js, except that of course the line you add to your
+file should be
+Or use absolute path names if the file is not in the same folder
+as your (X)HTML page.
+*/
+
+var checkForMathML = true; // check if browser can display MathML
+var notifyIfNoMathML = true; // display note if no MathML capability
+var alertIfNoMathML = false; // show alert box if no MathML capability
+// was "red":
+var mathcolor = ""; // change it to "" (to inherit) or any other color
+// was "serif":
+var mathfontfamily = ""; // change to "" to inherit (works in IE)
+ // or another family (e.g. "arial")
+var showasciiformulaonhover = true; // helps students learn ASCIIMath
+/*
+// Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end
+var displaystyle = false; // puts limits above and below large operators
+var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
+var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
+var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
+var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
+ // for IE this works only in <!-- -->
+//var separatetokens;// has been removed (email me if this is a problem)
+*/
+var isIE = document.createElementNS==null;
+
+if (document.getElementById==null)
+ alert("This webpage requires a recent browser such as\
+\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
+
+// all further global variables start with "AM"
+
+function AMcreateElementXHTML(t) {
+ if (isIE) return document.createElement(t);
+ else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
+}
+
+function AMnoMathMLNote() {
+ var nd = AMcreateElementXHTML("h3");
+ nd.setAttribute("align","center")
+ nd.appendChild(AMcreateElementXHTML("p"));
+ nd.appendChild(document.createTextNode("To view the "));
+ var an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("LaTeXMathML"));
+ an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
+ an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("MathPlayer"));
+ an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
+ nd.appendChild(AMcreateElementXHTML("p"));
+ return nd;
+}
+
+function AMisMathMLavailable() {
+ if (navigator.appName.slice(0,8)=="Netscape")
+ if (navigator.appVersion.slice(0,1)>="5") return null;
+ else return AMnoMathMLNote();
+ else if (navigator.appName.slice(0,9)=="Microsoft")
+ try {
+ var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
+ return null;
+ } catch (e) {
+ return AMnoMathMLNote();
+ }
+ else return AMnoMathMLNote();
+}
+
+// character lists for Mozilla/Netscape fonts
+var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
+var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
+var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
+
+var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
+ RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
+ TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types
+
+var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY},
+ AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY},
+ AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY},
+ AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY},
+ AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX},
+ AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX},
+ AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX},
+ AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX},
+ AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT},
+ AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT};
+
+// Commented out by DRW to prevent 1/2 turning into a 2-line fraction
+// AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX},
+// Commented out by DRW so that " prints literally in equations
+// AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT};
+
+var AMsymbols = [
+//Greek letters
+{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST},
+{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST},
+{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST},
+{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST},
+{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST},
+{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST},
+{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST},
+{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST},
+{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST},
+{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST},
+{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST},
+{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST},
+{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST},
+{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST},
+{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST},
+{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST},
+{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST},
+{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST},
+{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST},
+{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST},
+{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST},
+{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST},
+{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST},
+{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST},
+{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST},
+{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST},
+{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST},
+{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST},
+{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST},
+{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST},
+{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST},
+{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST},
+{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST},
+{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST},
+{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST},
+{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST},
+{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST},
+{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST},
+{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST},
+{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST},
+
+//fractions
+{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST},
+{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST},
+{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST},
+{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST},
+{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST},
+{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST},
+{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST},
+{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST},
+{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST},
+{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST},
+{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST},
+{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST},
+{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST},
+{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST},
+{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST},
+
+//binary operation symbols
+{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST},
+{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST},
+{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST},
+{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST},
+{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST},
+{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST},
+{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST},
+{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST},
+{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST},
+{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST},
+//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST},
+{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST},
+{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST},
+{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST},
+{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST},
+{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST},
+{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST},
+{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST},
+{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST},
+{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST},
+{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST},
+{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST},
+{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST},
+{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST},
+{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST},
+{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST},
+{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST},
+{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST},
+{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST},
+{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST},
+{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST},
+{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST},
+{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST},
+{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST},
+{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST},
+{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST},
+{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST},
+{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST},
+
+
+//BIG Operators
+{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER},
+{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER},
+{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER},
+{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER},
+{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER},
+{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER},
+{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER},
+{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER},
+{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER},
+{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER},
+{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER},
+{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER},
+{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER},
+{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST},
+{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST},
+
+//binary relation symbols
+{input:":=", tag:"mo", output:":=", ttype:CONST},
+{input:"\\lt", tag:"mo", output:"<", ttype:CONST},
+{input:"\\gt", tag:"mo", output:">", ttype:CONST},
+{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST},
+{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST},
+{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST},
+{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST},
+{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST},
+{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST},
+{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST},
+{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST},
+{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST},
+{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST},
+{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST},
+{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST},
+{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST},
+{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST},
+{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST},
+{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST},
+{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST},
+{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST},
+{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST},
+{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST},
+{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST},
+{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST},
+{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST},
+{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST},
+{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST},
+{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST},
+{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST},
+{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST},
+{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST},
+{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST},
+{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST},
+{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST},
+{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST},
+{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST},
+{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST},
+{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST},
+
+//matrices
+{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true},
+{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true},
+{input:"\\\\", output:"}&{", ttype:DEFINITION},
+{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION},
+{input:"\\end{array}", output:"}}", ttype:DEFINITION},
+
+//grouping and literal brackets -- ieval is for IE
+{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG},
+{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG},
+{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG},
+{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG},
+{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET},
+{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET},
+{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true},
+{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true},
+
+{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY},
+{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
+{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
+{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
+{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
+{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY},
+{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY},
+{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY},
+
+// rtag:"mi" causes space to be inserted before a following sin, cos, etc.
+// (see function AMparseExpr() )
+{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY},
+
+// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em
+{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY},
+{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY},
+{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST},
+
+//miscellaneous symbols
+{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE},
+{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE},
+{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
+{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
+{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE},
+{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE},
+{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE},
+{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE},
+//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width
+{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST},
+{input:"'", tag:"mo", output:"\u02B9", ttype:CONST},
+{input:"''", tag:"mo", output:"\u02BA", ttype:CONST},
+{input:"'''", tag:"mo", output:"\u2034", ttype:CONST},
+{input:"''''", tag:"mo", output:"\u2057", ttype:CONST},
+{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST},
+{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST},
+{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST},
+{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST},
+{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST},
+{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST},
+{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST},
+{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST},
+{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST},
+{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST},
+{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST},
+{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST},
+{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST},
+{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST},
+{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION},
+{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST},
+{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST},
+{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST},
+{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST},
+{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST},
+//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST},
+{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST},
+//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST},
+{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST},
+{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST},
+{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST},
+{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST},
+{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST},
+{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST},
+{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST},
+{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST},
+
+//standard functions
+//Note UNDEROVER *must* have tag:"mo" to work properly
+{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true},
+{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true},
+{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true},
+{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true},
+{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true},
+{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true},
+{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true},
+{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true},
+{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true},
+{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true},
+{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true},
+{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST?
+{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true},
+{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST?
+{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true},
+{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER},
+{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true},
+{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true},
+{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER},
+{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER},
+{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER},
+{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true},
+{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true},
+{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER},
+{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER},
+{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true},
+{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true},
+{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true},
+{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true},
+{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER},
+{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true},
+{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true},
+
+//arrows
+{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST},
+{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST},
+{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST},
+{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST},
+{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST},
+{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST},
+{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST},
+{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST},
+{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST},
+{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST},
+{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST},
+{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION},
+{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST},
+{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST},
+{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST},
+{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST},
+{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG},
+{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG},
+{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG},
+{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG},
+{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG},
+{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG},
+{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST},
+ // disaster if LONG
+
+//commands with argument
+AMsqrt, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose,
+//AMdiv, AMquote,
+
+//diacritical marks
+{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true},
+//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true},
+//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true},
+//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true},
+//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true},
+{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true},
+{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true},
+{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true},
+{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true},
+{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true},
+//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true},
+{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true},
+{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true},
+{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true},
+{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true},
+{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true},
+{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true},
+{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true},
+//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true},
+{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true},
+{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true},
+{input:"\\overbrace", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true},
+{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true},
+{input:"\\underbrace", tag:"munder", output:"\u23B5", ttype:UNARY, acc:true},
+{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true},
+//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true},
+
+//typestyles and fonts
+{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY},
+{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY},
+{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY},
+{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY},
+{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION},
+{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
+{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
+{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
+{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
+{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
+{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
+{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY},
+{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb},
+{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal},
+{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk}
+];
+
+function compareNames(s1,s2) {
+ if (s1.input > s2.input) return 1
+ else return -1;
+}
+
+var AMnames = []; //list of input symbols
+
+function AMinitSymbols() {
+ AMsymbols.sort(compareNames);
+ for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
+}
+
+var AMmathml = "http://www.w3.org/1998/Math/MathML";
+
+function AMcreateElementMathML(t) {
+ if (isIE) return document.createElement("m:"+t);
+ else return document.createElementNS(AMmathml,t);
+}
+
+function AMcreateMmlNode(t,frag) {
+// var node = AMcreateElementMathML(name);
+ if (isIE) var node = document.createElement("m:"+t);
+ else var node = document.createElementNS(AMmathml,t);
+ node.appendChild(frag);
+ return node;
+}
+
+function newcommand(oldstr,newstr) {
+ AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
+ ttype:DEFINITION}]);
+}
+
+function AMremoveCharsAndBlanks(str,n) {
+//remove n characters and any following blanks
+ var st;
+ st = str.slice(n);
+ for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
+ return st.slice(i);
+}
+
+function AMposition(arr, str, n) {
+// return position >=n where str appears or would be inserted
+// assumes arr is sorted
+ if (n==0) {
+ var h,m;
+ n = -1;
+ h = arr.length;
+ while (n+1<h) {
+ m = (n+h) >> 1;
+ if (arr[m]<str) n = m; else h = m;
+ }
+ return h;
+ } else
+ for (var i=n; i<arr.length && arr[i]<str; i++);
+ return i; // i=arr.length || arr[i]>=str
+}
+
+function AMgetSymbol(str) {
+//return maximal initial substring of str that appears in names
+//return null if there is none
+ var k = 0; //new pos
+ var j = 0; //old pos
+ var mk; //match pos
+ var st;
+ var tagst;
+ var match = "";
+ var more = true;
+ for (var i=1; i<=str.length && more; i++) {
+ st = str.slice(0,i); //initial substring of length i
+ j = k;
+ k = AMposition(AMnames, st, j);
+ if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
+ match = AMnames[k];
+ mk = k;
+ i = match.length;
+ }
+ more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
+ }
+ AMpreviousSymbol=AMcurrentSymbol;
+ if (match!=""){
+ AMcurrentSymbol=AMsymbols[mk].ttype;
+ return AMsymbols[mk];
+ }
+ AMcurrentSymbol=CONST;
+ k = 1;
+ st = str.slice(0,1); //take 1 character
+ if ("0"<=st && st<="9") tagst = "mn";
+ else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
+/*
+// Commented out by DRW (not fully understood, but probably to do with
+// use of "/" as an INFIX version of "\\frac", which we don't want):
+//}
+//if (st=="-" && AMpreviousSymbol==INFIX) {
+// AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
+// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
+//}
+*/
+ return {input:st, tag:tagst, output:st, ttype:CONST};
+}
+
+
+/*Parsing ASCII math expressions with the following grammar
+v ::= [A-Za-z] | greek letters | numbers | other constant symbols
+u ::= sqrt | text | bb | other unary symbols for font commands
+b ::= frac | root | stackrel binary symbols
+l ::= { | \left left brackets
+r ::= } | \right right brackets
+S ::= v | lEr | uS | bSS Simple expression
+I ::= S_S | S^S | S_S^S | S Intermediate expression
+E ::= IE | I/I Expression
+Each terminal symbol is translated into a corresponding mathml node.*/
+
+var AMpreviousSymbol,AMcurrentSymbol;
+
+function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag]
+ var symbol, node, result, result2, i, st,// rightvert = false,
+ newFrag = document.createDocumentFragment();
+ str = AMremoveCharsAndBlanks(str,0);
+ symbol = AMgetSymbol(str); //either a token or a bracket or empty
+ if (symbol == null || symbol.ttype == RIGHTBRACKET)
+ return [null,str,null];
+ if (symbol.ttype == DEFINITION) {
+ str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ if (symbol == null || symbol.ttype == RIGHTBRACKET)
+ return [null,str,null];
+ }
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ switch (symbol.ttype) {
+ case SPACE:
+ node = AMcreateElementMathML(symbol.tag);
+ node.setAttribute(symbol.atname,symbol.atval);
+ return [node,str,symbol.tag];
+ case UNDEROVER:
+ if (isIE) {
+ if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols
+ str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc.
+ symbol = AMgetSymbol(str);
+ symbol.ttype = UNDEROVER;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ }
+ }
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ case CONST:
+ var output = symbol.output;
+ if (isIE) {
+ if (symbol.input == "'")
+ output = "\u2032";
+ else if (symbol.input == "''")
+ output = "\u2033";
+ else if (symbol.input == "'''")
+ output = "\u2033\u2032";
+ else if (symbol.input == "''''")
+ output = "\u2033\u2033";
+ else if (symbol.input == "\\square")
+ output = "\u25A1"; // same as \Box
+ else if (symbol.input.substr(0,5) == "\\frac") {
+ // botch for missing fractions
+ var denom = symbol.input.substr(6,1);
+ if (denom == "5" || denom == "6") {
+ str = symbol.input.replace(/\\frac/,"\\frac ")+str;
+ return [node,str,symbol.tag];
+ }
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(output));
+ return [node,str,symbol.tag];
+ case LONG: // added by DRW
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ node.setAttribute("minsize","1.5");
+ node.setAttribute("maxsize","1.5");
+ node = AMcreateMmlNode("mover",node);
+ node.appendChild(AMcreateElementMathML("mspace"));
+ return [node,str,symbol.tag];
+ case STRETCHY: // added by DRW
+ if (isIE && symbol.input == "\\backslash")
+ symbol.output = "\\"; // doesn't expand, but then nor does "\u2216"
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ if (symbol.input == "|" || symbol.input == "\\vert" ||
+ symbol.input == "\\|" || symbol.input == "\\Vert") {
+ node.setAttribute("lspace","0em");
+ node.setAttribute("rspace","0em");
+ }
+ node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here
+ if (symbol.rtag != null)
+ return [node,str,symbol.rtag];
+ else
+ return [node,str,symbol.tag];
+ case BIG: // added by DRW
+ var atval = symbol.atval;
+ if (isIE)
+ atval = symbol.ieval;
+ symbol = AMgetSymbol(str);
+ if (symbol == null)
+ return [null,str,null];
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ if (isIE) { // to get brackets to expand
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("height",atval+"ex");
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(space);
+ } else { // ignored in IE
+ node.setAttribute("minsize",atval);
+ node.setAttribute("maxsize",atval);
+ }
+ return [node,str,symbol.tag];
+ case LEFTBRACKET: //read (expr+)
+ if (symbol.input == "\\left") { // left what?
+ symbol = AMgetSymbol(str);
+ if (symbol != null) {
+ if (symbol.input == ".")
+ symbol.invisible = true;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ }
+ }
+ result = AMparseExpr(str,true,false);
+ if (symbol==null ||
+ (typeof symbol.invisible == "boolean" && symbol.invisible))
+ node = AMcreateMmlNode("mrow",result[0]);
+ else {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ }
+ return [node,result[1],result[2]];
+ case MATRIX: //read (expr+)
+ if (symbol.input == "\\begin{array}") {
+ var mask = "";
+ symbol = AMgetSymbol(str);
+ str = AMremoveCharsAndBlanks(str,0);
+ if (symbol == null)
+ mask = "l";
+ else {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (symbol.input != "{")
+ mask = "l";
+ else do {
+ symbol = AMgetSymbol(str);
+ if (symbol != null) {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (symbol.input != "}")
+ mask = mask+symbol.input;
+ }
+ } while (symbol != null && symbol.input != "" && symbol.input != "}");
+ }
+ result = AMparseExpr("{"+str,true,true);
+// if (result[0]==null) return [AMcreateMmlNode("mo",
+// document.createTextNode(symbol.input)),str];
+ node = AMcreateMmlNode("mtable",result[0]);
+ mask = mask.replace(/l/g,"left ");
+ mask = mask.replace(/r/g,"right ");
+ mask = mask.replace(/c/g,"center ");
+ node.setAttribute("columnalign",mask);
+ node.setAttribute("displaystyle","false");
+ if (isIE)
+ return [node,result[1],null];
+// trying to get a *little* bit of space around the array
+// (IE already includes it)
+ var lspace = AMcreateElementMathML("mspace");
+ lspace.setAttribute("width","0.167em");
+ var rspace = AMcreateElementMathML("mspace");
+ rspace.setAttribute("width","0.167em");
+ var node1 = AMcreateMmlNode("mrow",lspace);
+ node1.appendChild(node);
+ node1.appendChild(rspace);
+ return [node1,result[1],null];
+ } else { // eqnarray
+ result = AMparseExpr("{"+str,true,true);
+ node = AMcreateMmlNode("mtable",result[0]);
+ if (isIE)
+ node.setAttribute("columnspacing","0.25em"); // best in practice?
+ else
+ node.setAttribute("columnspacing","0.167em"); // correct (but ignored?)
+ node.setAttribute("columnalign","right center left");
+ node.setAttribute("displaystyle","true");
+ node = AMcreateMmlNode("mrow",node);
+ return [node,result[1],null];
+ }
+ case TEXT:
+ if (str.charAt(0)=="{") i=str.indexOf("}");
+ else i = 0;
+ if (i==-1)
+ i = str.length;
+ st = str.slice(1,i);
+ if (st.charAt(0) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","0.33em"); // was 1ex
+ newFrag.appendChild(node);
+ }
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
+ if (st.charAt(st.length-1) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","0.33em"); // was 1ex
+ newFrag.appendChild(node);
+ }
+ str = AMremoveCharsAndBlanks(str,i+1);
+ return [AMcreateMmlNode("mrow",newFrag),str,null];
+ case UNARY:
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
+ st = str.charAt(0);
+// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
+ if (st=="^" || st=="_" || st==",") {
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ } else {
+ node = AMcreateMmlNode("mrow",
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ if (isIE) {
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("width","0.167em");
+ node.appendChild(space);
+ }
+ node.appendChild(result[0]);
+ return [node,result[1],symbol.tag];
+ }
+ }
+ if (symbol.input == "\\sqrt") { // sqrt
+ if (isIE) { // set minsize, for \surd
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("height","1.2ex");
+ space.setAttribute("width","0em"); // probably no effect
+ node = AMcreateMmlNode(symbol.tag,result[0])
+// node.setAttribute("minsize","1"); // ignored
+// node = AMcreateMmlNode("mrow",node); // hopefully unnecessary
+ node.appendChild(space);
+ return [node,result[1],symbol.tag];
+ } else
+ return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
+ } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ var output = symbol.output;
+ if (isIE) {
+ if (symbol.input == "\\hat")
+ output = "\u0302";
+ else if (symbol.input == "\\widehat")
+ output = "\u005E";
+ else if (symbol.input == "\\bar")
+ output = "\u00AF";
+ else if (symbol.input == "\\grave")
+ output = "\u0300";
+ else if (symbol.input == "\\tilde")
+ output = "\u0303";
+ }
+ var node1 = AMcreateMmlNode("mo",document.createTextNode(output));
+ if (symbol.input == "\\vec" || symbol.input == "\\check")
+ // don't allow to stretch
+ node1.setAttribute("maxsize","1.2");
+ // why doesn't "1" work? \vec nearly disappears in firefox
+ if (isIE && symbol.input == "\\bar")
+ node1.setAttribute("maxsize","0.5");
+ if (symbol.input == "\\underbrace" || symbol.input == "\\underline")
+ node1.setAttribute("accentunder","true");
+ else
+ node1.setAttribute("accent","true");
+ node.appendChild(node1);
+ if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace")
+ node.ttype = UNDEROVER;
+ return [node,result[1],symbol.tag];
+ } else { // font change or displaystyle command
+ if (!isIE && typeof symbol.codes != "undefined") {
+ for (i=0; i<result[0].childNodes.length; i++)
+ if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
+ st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
+ result[0].childNodes[i].firstChild.nodeValue);
+ var newst = [];
+ for (var j=0; j<st.length; j++)
+ if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
+ String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
+ else newst = newst + st.charAt(j);
+ if (result[0].nodeName=="mi")
+ result[0]=AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst));
+ else result[0].replaceChild(AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.setAttribute(symbol.atname,symbol.atval);
+ if (symbol.input == "\\scriptstyle" ||
+ symbol.input == "\\scriptscriptstyle")
+ node.setAttribute("displaystyle","false");
+ return [node,result[1],symbol.tag];
+ }
+ case BINARY:
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str,null];
+ result2 = AMparseSexpr(result[1]);
+ if (result2[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str,null];
+ if (symbol.input=="\\root" || symbol.input=="\\stackrel")
+ newFrag.appendChild(result2[0]);
+ newFrag.appendChild(result[0]);
+ if (symbol.input=="\\frac") newFrag.appendChild(result2[0]);
+ return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];
+ case INFIX:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),
+ str,symbol.tag];
+ default:
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ }
+}
+
+function AMparseIexpr(str) {
+ var symbol, sym1, sym2, node, result, tag, underover;
+ str = AMremoveCharsAndBlanks(str,0);
+ sym1 = AMgetSymbol(str);
+ result = AMparseSexpr(str);
+ node = result[0];
+ str = result[1];
+ tag = result[2];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX) {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ str = result[1];
+ tag = result[2];
+ if (symbol.input == "_" || symbol.input == "^") {
+ sym2 = AMgetSymbol(str);
+ tag = null; // no space between x^2 and a following sin, cos, etc.
+// This is for \underbrace and \overbrace
+ underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER));
+// underover = (sym1.ttype == UNDEROVER);
+ if (symbol.input == "_" && sym2.input == "^") {
+ str = AMremoveCharsAndBlanks(str,sym2.input.length);
+ var res2 = AMparseSexpr(str);
+ str = res2[1];
+ tag = res2[2]; // leave space between x_1^2 and a following sin etc.
+ node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
+ node.appendChild(result[0]);
+ node.appendChild(res2[0]);
+ } else if (symbol.input == "_") {
+ node = AMcreateMmlNode((underover?"munder":"msub"),node);
+ node.appendChild(result[0]);
+ } else {
+ node = AMcreateMmlNode((underover?"mover":"msup"),node);
+ node.appendChild(result[0]);
+ }
+ node = AMcreateMmlNode("mrow",node); // so sum does not stretch
+ } else {
+ node = AMcreateMmlNode(symbol.tag,node);
+ if (symbol.input == "\\atop" || symbol.input == "\\choose")
+ node.setAttribute("linethickness","0ex");
+ node.appendChild(result[0]);
+ if (symbol.input == "\\choose")
+ node = AMcreateMmlNode("mfenced",node);
+ }
+ }
+ return [node,str,tag];
+}
+
+function AMparseExpr(str,rightbracket,matrix) {
+ var symbol, node, result, i, tag,
+ newFrag = document.createDocumentFragment();
+ do {
+ str = AMremoveCharsAndBlanks(str,0);
+ result = AMparseIexpr(str);
+ node = result[0];
+ str = result[1];
+ tag = result[2];
+ symbol = AMgetSymbol(str);
+ if (node!=undefined) {
+ if ((tag == "mn" || tag == "mi") && symbol!=null &&
+ typeof symbol.func == "boolean" && symbol.func) {
+ // Add space before \sin in 2\sin x or x\sin x
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("width","0.167em");
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(space);
+ }
+ newFrag.appendChild(node);
+ }
+ } while ((symbol.ttype != RIGHTBRACKET)
+ && symbol!=null && symbol.output!="");
+ tag = null;
+ if (symbol.ttype == RIGHTBRACKET) {
+ if (symbol.input == "\\right") { // right what?
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ if (symbol != null && symbol.input == ".")
+ symbol.invisible = true;
+ if (symbol != null)
+ tag = symbol.rtag;
+ }
+ if (symbol!=null)
+ str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return
+ var len = newFrag.childNodes.length;
+ if (matrix &&
+ len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
+ newFrag.childNodes[len-2].nodeName == "mo" &&
+ newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix
+ var pos = []; // positions of ampersands
+ var m = newFrag.childNodes.length;
+ for (i=0; matrix && i<m; i=i+2) {
+ pos[i] = [];
+ node = newFrag.childNodes[i];
+ for (var j=0; j<node.childNodes.length; j++)
+ if (node.childNodes[j].firstChild.nodeValue=="&")
+ pos[i][pos[i].length]=j;
+ }
+ var row, frag, n, k, table = document.createDocumentFragment();
+ for (i=0; i<m; i=i+2) {
+ row = document.createDocumentFragment();
+ frag = document.createDocumentFragment();
+ node = newFrag.firstChild; // <mrow> -&-&...&-&- </mrow>
+ n = node.childNodes.length;
+ k = 0;
+ for (j=0; j<n; j++) {
+ if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
+ node.removeChild(node.firstChild); //remove &
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ k++;
+ } else frag.appendChild(node.firstChild);
+ }
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ if (newFrag.childNodes.length>2) {
+ newFrag.removeChild(newFrag.firstChild); //remove <mrow> </mrow>
+ newFrag.removeChild(newFrag.firstChild); //remove <mo>&</mo>
+ }
+ table.appendChild(AMcreateMmlNode("mtr",row));
+ }
+ return [table,str];
+ }
+ if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ newFrag.appendChild(node);
+ }
+ }
+ return [newFrag,str,tag];
+}
+
+function AMparseMath(str) {
+ var result, node = AMcreateElementMathML("mstyle");
+ if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
+ if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
+ node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]);
+ node = AMcreateMmlNode("math",node);
+ if (showasciiformulaonhover) //fixed by djhsu so newline
+ node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
+ if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
+ var fnode = AMcreateElementXHTML("font");
+ fnode.setAttribute("face",mathfontfamily);
+ fnode.appendChild(node);
+ return fnode;
+ }
+ return node;
+}
+
+function AMstrarr2docFrag(arr, linebreaks) {
+ var newFrag=document.createDocumentFragment();
+ var expr = false;
+ for (var i=0; i<arr.length; i++) {
+ if (expr) newFrag.appendChild(AMparseMath(arr[i]));
+ else {
+ var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[0])));
+ for (var j=1; j<arri.length; j++) {
+ newFrag.appendChild(AMcreateElementXHTML("p"));
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[j])));
+ }
+ }
+ expr = !expr;
+ }
+ return newFrag;
+}
+
+function AMprocessNodeR(n, linebreaks) {
+ var mtch, str, arr, frg, i;
+ if (n.childNodes.length == 0) {
+ if ((n.nodeType!=8 || linebreaks) &&
+ n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
+ n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
+ n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
+ str = n.nodeValue;
+ if (!(str == null)) {
+ str = str.replace(/\r\n\r\n/g,"\n\n");
+ str = str.replace(/\x20+/g," ");
+ str = str.replace(/\s*\r\n/g," ");
+// DELIMITERS:
+ mtch = (str.indexOf("\$")==-1 ? false : true);
+ str = str.replace(/([^\\])\$/g,"$1 \$");
+ str = str.replace(/^\$/," \$"); // in case \$ at start of string
+ arr = str.split(" \$");
+ for (i=0; i<arr.length; i++)
+ arr[i]=arr[i].replace(/\\\$/g,"\$");
+ if (arr.length>1 || mtch) {
+ if (checkForMathML) {
+ checkForMathML = false;
+ var nd = AMisMathMLavailable();
+ AMnoMathML = nd != null;
+ if (AMnoMathML && notifyIfNoMathML)
+ if (alertIfNoMathML)
+ alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
+ or Firefox/Mozilla/Netscape");
+ else AMbody.insertBefore(nd,AMbody.childNodes[0]);
+ }
+ if (!AMnoMathML) {
+ frg = AMstrarr2docFrag(arr,n.nodeType==8);
+ var len = frg.childNodes.length;
+ n.parentNode.replaceChild(frg,n);
+ return len-1;
+ } else return 0;
+ }
+ }
+ } else return 0;
+ } else if (n.nodeName!="math") {
+ for (i=0; i<n.childNodes.length; i++)
+ i += AMprocessNodeR(n.childNodes[i], linebreaks);
+ }
+ return 0;
+}
+
+function AMprocessNode(n, linebreaks, spanclassAM) {
+ var frag,st;
+ if (spanclassAM!=null) {
+ frag = document.getElementsByTagName("span")
+ for (var i=0;i<frag.length;i++)
+ if (frag[i].className == "AM")
+ AMprocessNodeR(frag[i],linebreaks);
+ } else {
+ try {
+ st = n.innerHTML;
+ } catch(err) {}
+// DELIMITERS:
+ if (st==null || st.indexOf("\$")!=-1)
+ AMprocessNodeR(n,linebreaks);
+ }
+ if (isIE) { //needed to match size and font of formula to surrounding text
+ frag = document.getElementsByTagName('math');
+ for (var i=0;i<frag.length;i++) frag[i].update()
+ }
+}
+
+var AMbody;
+var AMnoMathML = false, AMtranslated = false;
+
+function translate(spanclassAM) {
+ if (!AMtranslated) { // run this only once
+ AMtranslated = true;
+ AMinitSymbols();
+ AMbody = document.getElementsByTagName("body")[0];
+ AMprocessNode(AMbody, false, spanclassAM);
+ }
+}
+
+if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
+ document.write("<object id=\"mathplayer\"\
+ classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
+ document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
+}
+
+// GO1.1 Generic onload by Brothercake
+// http://www.brothercake.com/
+//onload function (replaces the onload="translate()" in the <body> tag)
+function generic()
+{
+ translate();
+};
+//setup onload function
+if(typeof window.addEventListener != 'undefined')
+{
+ //.. gecko, safari, konqueror and standard
+ window.addEventListener('load', generic, false);
+}
+else if(typeof document.addEventListener != 'undefined')
+{
+ //.. opera 7
+ document.addEventListener('load', generic, false);
+}
+else if(typeof window.attachEvent != 'undefined')
+{
+ //.. win/ie
+ window.attachEvent('onload', generic);
+}
+//** remove this condition to degrade older browsers
+else
+{
+ //.. mac/ie5 and anything else that gets this far
+ //if there's an existing onload function
+ if(typeof window.onload == 'function')
+ {
+ //store it
+ var existing = onload;
+ //add new onload handler
+ window.onload = function()
+ {
+ //call existing onload function
+ existing();
+ //call generic onload function
+ generic();
+ };
+ }
+ else
+ {
+ //setup onload function
+ window.onload = generic;
+ }
+}
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>LaTeXMathML Formulae</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
+capability has been added to AsciiDoc for users who are more familar
+with or prefer LaTeX math formulas to the
+<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>
+notation.</p></div>
+<div class="paragraph"><p><em>LaTeXMathML</em> is a derivative of
+<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>&#8201;&#8212;&#8201;in
+terms of usage the only difference it that you use the <span class="monospaced">latexmath</span>
+attribute instead of the <span class="monospaced">asciimath</span> attribute.</p></div>
+<div class="paragraph"><p><em>LaTeXMathML</em> processes LaTeX math formulas not arbitrary LaTeX (as
+<span class="monospaced">dblatex(1)</span> does). See the
+<a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
+website for details.</p></div>
+<div class="paragraph"><p>Here&#8217;s the <a href="latexmathml.txt">AsciiDoc source</a> that generated this
+page.</p></div>
+<div class="paragraph"><p>Some example <em>LaTeXMathML</em> formulas:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+$R_x = 10.0 \times \sin(R_\phi)$
+</p>
+</li>
+<li>
+<p>
+$\sum_{n=1}^\infty \frac{1}{2^n}$
+</p>
+</li>
+<li>
+<p>
+$\lim_{x\to\infty} f(x) = k \choose r + \frac ab
+ \sum_{n=1}^\infty a_n + \displaystyle{ \left\{ \frac{1}{13}
+ \sum_{n=1}^\infty b_n \right\} }$
+</p>
+</li>
+<li>
+<p>
+$\$\alpha + \$\beta = \$(\alpha + \beta)$
+</p>
+</li>
+<li>
+<p>
+$\begin{eqnarray} x &amp; = &amp; \frac{-7 \pm
+ \sqrt{49 - 24}}{6} \\ &amp; = &amp; -2 \textrm{ or } -\frac13.
+ \end{eqnarray}$
+</p>
+</li>
+<li>
+<p>
+$\displaystyle{ V_i = C_0 - C_3
+ \frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }$
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/latexmathml-xhtml11.html b/tests/data/latexmathml-xhtml11.html
index 7c48e33..64140b4 100644
--- a/tests/data/latexmathml-xhtml11.html
+++ b/tests/data/latexmathml-xhtml11.html
@@ -1,2033 +1,2033 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>LaTeXMathML Formulae</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-<script type="text/javascript">
-/*<![CDATA[*/
-/*
-LaTeXMathML.js
-==============
-
-This file, in this form, is due to Douglas Woodall, June 2006.
-It contains JavaScript functions to convert (most simple) LaTeX
-math notation to Presentation MathML. It was obtained by
-downloading the file ASCIIMathML.js from
- http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/
-and modifying it so that it carries out ONLY those conversions
-that would be carried out in LaTeX. A description of the original
-file, with examples, can be found at
- www1.chapman.edu/~jipsen/mathml/asciimath.html
- ASCIIMathML: Math on the web for everyone
-
-Here is the header notice from the original file:
-
-ASCIIMathML.js
-==============
-This file contains JavaScript functions to convert ASCII math notation
-to Presentation MathML. The conversion is done while the (X)HTML page
-loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
-Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
-Just add the next line to your (X)HTML page with this file in the same folder:
-This is a convenient and inexpensive solution for authoring MathML.
-
-Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
-Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
-For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
-If you use it on a webpage, please send the URL to jipsen@chapman.edu
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License (at http://www.gnu.org/copyleft/gpl.html)
-for more details.
-
-LaTeXMathML.js (ctd)
-==============
-
-The instructions for use are the same as for the original
-ASCIIMathML.js, except that of course the line you add to your
-file should be
-Or use absolute path names if the file is not in the same folder
-as your (X)HTML page.
-*/
-
-var checkForMathML = true; // check if browser can display MathML
-var notifyIfNoMathML = true; // display note if no MathML capability
-var alertIfNoMathML = false; // show alert box if no MathML capability
-// was "red":
-var mathcolor = ""; // change it to "" (to inherit) or any other color
-// was "serif":
-var mathfontfamily = ""; // change to "" to inherit (works in IE)
- // or another family (e.g. "arial")
-var showasciiformulaonhover = true; // helps students learn ASCIIMath
-/*
-// Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end
-var displaystyle = false; // puts limits above and below large operators
-var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
-var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
-var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
-var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
- // for IE this works only in <!-- -->
-//var separatetokens;// has been removed (email me if this is a problem)
-*/
-var isIE = document.createElementNS==null;
-
-if (document.getElementById==null)
- alert("This webpage requires a recent browser such as\
-\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
-
-// all further global variables start with "AM"
-
-function AMcreateElementXHTML(t) {
- if (isIE) return document.createElement(t);
- else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
-}
-
-function AMnoMathMLNote() {
- var nd = AMcreateElementXHTML("h3");
- nd.setAttribute("align","center")
- nd.appendChild(AMcreateElementXHTML("p"));
- nd.appendChild(document.createTextNode("To view the "));
- var an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("LaTeXMathML"));
- an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
- an = AMcreateElementXHTML("a");
- an.appendChild(document.createTextNode("MathPlayer"));
- an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
- nd.appendChild(an);
- nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
- nd.appendChild(AMcreateElementXHTML("p"));
- return nd;
-}
-
-function AMisMathMLavailable() {
- if (navigator.appName.slice(0,8)=="Netscape")
- if (navigator.appVersion.slice(0,1)>="5") return null;
- else return AMnoMathMLNote();
- else if (navigator.appName.slice(0,9)=="Microsoft")
- try {
- var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
- return null;
- } catch (e) {
- return AMnoMathMLNote();
- }
- else return AMnoMathMLNote();
-}
-
-// character lists for Mozilla/Netscape fonts
-var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
-var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
-var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
-
-var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
- RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
- TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types
-
-var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY},
- AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY},
- AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY},
- AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY},
- AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX},
- AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX},
- AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX},
- AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX},
- AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT},
- AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT};
-
-// Commented out by DRW to prevent 1/2 turning into a 2-line fraction
-// AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX},
-// Commented out by DRW so that " prints literally in equations
-// AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT};
-
-var AMsymbols = [
-//Greek letters
-{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST},
-{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST},
-{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST},
-{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST},
-{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST},
-{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST},
-{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST},
-{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST},
-{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST},
-{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST},
-{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST},
-{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST},
-{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST},
-{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST},
-{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST},
-{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST},
-{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST},
-{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST},
-{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST},
-{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST},
-{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST},
-{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST},
-{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST},
-{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST},
-{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST},
-{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST},
-{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST},
-{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST},
-{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST},
-{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST},
-{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST},
-{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST},
-{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST},
-{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST},
-{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST},
-{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST},
-{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST},
-{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST},
-{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST},
-{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST},
-
-//fractions
-{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST},
-{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST},
-{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST},
-{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST},
-{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST},
-{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST},
-{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST},
-{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST},
-{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST},
-{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST},
-{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST},
-{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST},
-{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST},
-{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST},
-{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST},
-
-//binary operation symbols
-{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST},
-{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST},
-{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST},
-{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST},
-{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST},
-{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST},
-{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST},
-{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST},
-{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST},
-{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST},
-//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST},
-{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST},
-{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST},
-{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST},
-{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST},
-{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST},
-{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST},
-{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST},
-{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST},
-{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST},
-{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST},
-{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST},
-{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST},
-{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST},
-{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST},
-{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST},
-{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST},
-{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST},
-{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST},
-{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST},
-{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST},
-{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST},
-{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST},
-{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST},
-{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST},
-{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST},
-{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST},
-{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST},
-
-
-//BIG Operators
-{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER},
-{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER},
-{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER},
-{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER},
-{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER},
-{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER},
-{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER},
-{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER},
-{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER},
-{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER},
-{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER},
-{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER},
-{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER},
-{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST},
-{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST},
-
-//binary relation symbols
-{input:":=", tag:"mo", output:":=", ttype:CONST},
-{input:"\\lt", tag:"mo", output:"<", ttype:CONST},
-{input:"\\gt", tag:"mo", output:">", ttype:CONST},
-{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST},
-{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST},
-{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST},
-{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST},
-{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST},
-{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST},
-{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST},
-{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST},
-{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST},
-{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST},
-{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST},
-{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST},
-{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST},
-{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST},
-{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST},
-{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST},
-{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST},
-{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST},
-{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST},
-{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST},
-{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST},
-{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST},
-{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST},
-{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST},
-{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST},
-{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST},
-{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST},
-{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST},
-{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST},
-{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST},
-{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST},
-{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST},
-{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST},
-{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST},
-{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST},
-{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST},
-{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST},
-{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST},
-
-//matrices
-{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true},
-{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true},
-{input:"\\\\", output:"}&{", ttype:DEFINITION},
-{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION},
-{input:"\\end{array}", output:"}}", ttype:DEFINITION},
-
-//grouping and literal brackets -- ieval is for IE
-{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG},
-{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG},
-{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG},
-{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG},
-{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET},
-{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET},
-{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true},
-{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true},
-
-{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY},
-{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
-{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
-{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
-{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
-{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY},
-{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY},
-{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY},
-
-// rtag:"mi" causes space to be inserted before a following sin, cos, etc.
-// (see function AMparseExpr() )
-{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY},
-{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY},
-
-// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em
-{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
-{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
-{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY},
-{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY},
-{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST},
-
-//miscellaneous symbols
-{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE},
-{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE},
-{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
-{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
-{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE},
-{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE},
-{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE},
-{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE},
-//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width
-{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST},
-{input:"'", tag:"mo", output:"\u02B9", ttype:CONST},
-{input:"''", tag:"mo", output:"\u02BA", ttype:CONST},
-{input:"'''", tag:"mo", output:"\u2034", ttype:CONST},
-{input:"''''", tag:"mo", output:"\u2057", ttype:CONST},
-{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST},
-{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST},
-{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST},
-{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST},
-{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST},
-{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST},
-{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST},
-{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST},
-{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST},
-{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST},
-{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST},
-{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST},
-{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST},
-{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST},
-{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION},
-{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST},
-{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST},
-{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST},
-{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST},
-{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST},
-//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST},
-{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST},
-//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST},
-{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST},
-{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST},
-{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST},
-{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST},
-{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST},
-{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST},
-{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST},
-{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST},
-
-//standard functions
-//Note UNDEROVER *must* have tag:"mo" to work properly
-{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true},
-{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true},
-{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true},
-{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true},
-{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true},
-{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true},
-{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true},
-{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true},
-{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true},
-{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true},
-{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true},
-{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST?
-{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true},
-{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST?
-{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true},
-{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER},
-{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true},
-{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true},
-{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER},
-{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER},
-{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER},
-{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true},
-{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true},
-{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER},
-{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER},
-{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true},
-{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true},
-{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true},
-{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true},
-{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER},
-{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true},
-{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true},
-
-//arrows
-{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST},
-{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST},
-{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST},
-{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST},
-{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST},
-{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST},
-{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST},
-{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST},
-{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST},
-{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST},
-{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST},
-{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION},
-{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST},
-{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST},
-{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST},
-{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST},
-{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG},
-{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG},
-{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG},
-{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG},
-{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG},
-{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG},
-{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST},
- // disaster if LONG
-
-//commands with argument
-AMsqrt, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose,
-//AMdiv, AMquote,
-
-//diacritical marks
-{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true},
-//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true},
-//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true},
-//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true},
-//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true},
-{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true},
-{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true},
-{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true},
-{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true},
-{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true},
-//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true},
-{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true},
-{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true},
-{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true},
-{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true},
-{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true},
-{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true},
-{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true},
-//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true},
-{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true},
-{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true},
-{input:"\\overbrace", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true},
-{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true},
-{input:"\\underbrace", tag:"munder", output:"\u23B5", ttype:UNARY, acc:true},
-{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true},
-//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true},
-
-//typestyles and fonts
-{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY},
-{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY},
-{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY},
-{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY},
-{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION},
-{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
-{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
-{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
-{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
-{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
-{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
-{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY},
-{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb},
-{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal},
-{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk}
-];
-
-function compareNames(s1,s2) {
- if (s1.input > s2.input) return 1
- else return -1;
-}
-
-var AMnames = []; //list of input symbols
-
-function AMinitSymbols() {
- AMsymbols.sort(compareNames);
- for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
-}
-
-var AMmathml = "http://www.w3.org/1998/Math/MathML";
-
-function AMcreateElementMathML(t) {
- if (isIE) return document.createElement("m:"+t);
- else return document.createElementNS(AMmathml,t);
-}
-
-function AMcreateMmlNode(t,frag) {
-// var node = AMcreateElementMathML(name);
- if (isIE) var node = document.createElement("m:"+t);
- else var node = document.createElementNS(AMmathml,t);
- node.appendChild(frag);
- return node;
-}
-
-function newcommand(oldstr,newstr) {
- AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
- ttype:DEFINITION}]);
-}
-
-function AMremoveCharsAndBlanks(str,n) {
-//remove n characters and any following blanks
- var st;
- st = str.slice(n);
- for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
- return st.slice(i);
-}
-
-function AMposition(arr, str, n) {
-// return position >=n where str appears or would be inserted
-// assumes arr is sorted
- if (n==0) {
- var h,m;
- n = -1;
- h = arr.length;
- while (n+1<h) {
- m = (n+h) >> 1;
- if (arr[m]<str) n = m; else h = m;
- }
- return h;
- } else
- for (var i=n; i<arr.length && arr[i]<str; i++);
- return i; // i=arr.length || arr[i]>=str
-}
-
-function AMgetSymbol(str) {
-//return maximal initial substring of str that appears in names
-//return null if there is none
- var k = 0; //new pos
- var j = 0; //old pos
- var mk; //match pos
- var st;
- var tagst;
- var match = "";
- var more = true;
- for (var i=1; i<=str.length && more; i++) {
- st = str.slice(0,i); //initial substring of length i
- j = k;
- k = AMposition(AMnames, st, j);
- if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
- match = AMnames[k];
- mk = k;
- i = match.length;
- }
- more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
- }
- AMpreviousSymbol=AMcurrentSymbol;
- if (match!=""){
- AMcurrentSymbol=AMsymbols[mk].ttype;
- return AMsymbols[mk];
- }
- AMcurrentSymbol=CONST;
- k = 1;
- st = str.slice(0,1); //take 1 character
- if ("0"<=st && st<="9") tagst = "mn";
- else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
-/*
-// Commented out by DRW (not fully understood, but probably to do with
-// use of "/" as an INFIX version of "\\frac", which we don't want):
-//}
-//if (st=="-" && AMpreviousSymbol==INFIX) {
-// AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
-// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
-//}
-*/
- return {input:st, tag:tagst, output:st, ttype:CONST};
-}
-
-
-/*Parsing ASCII math expressions with the following grammar
-v ::= [A-Za-z] | greek letters | numbers | other constant symbols
-u ::= sqrt | text | bb | other unary symbols for font commands
-b ::= frac | root | stackrel binary symbols
-l ::= { | \left left brackets
-r ::= } | \right right brackets
-S ::= v | lEr | uS | bSS Simple expression
-I ::= S_S | S^S | S_S^S | S Intermediate expression
-E ::= IE | I/I Expression
-Each terminal symbol is translated into a corresponding mathml node.*/
-
-var AMpreviousSymbol,AMcurrentSymbol;
-
-function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag]
- var symbol, node, result, result2, i, st,// rightvert = false,
- newFrag = document.createDocumentFragment();
- str = AMremoveCharsAndBlanks(str,0);
- symbol = AMgetSymbol(str); //either a token or a bracket or empty
- if (symbol == null || symbol.ttype == RIGHTBRACKET)
- return [null,str,null];
- if (symbol.ttype == DEFINITION) {
- str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- if (symbol == null || symbol.ttype == RIGHTBRACKET)
- return [null,str,null];
- }
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- switch (symbol.ttype) {
- case SPACE:
- node = AMcreateElementMathML(symbol.tag);
- node.setAttribute(symbol.atname,symbol.atval);
- return [node,str,symbol.tag];
- case UNDEROVER:
- if (isIE) {
- if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols
- str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc.
- symbol = AMgetSymbol(str);
- symbol.ttype = UNDEROVER;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- }
- }
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str,symbol.tag];
- case CONST:
- var output = symbol.output;
- if (isIE) {
- if (symbol.input == "'")
- output = "\u2032";
- else if (symbol.input == "''")
- output = "\u2033";
- else if (symbol.input == "'''")
- output = "\u2033\u2032";
- else if (symbol.input == "''''")
- output = "\u2033\u2033";
- else if (symbol.input == "\\square")
- output = "\u25A1"; // same as \Box
- else if (symbol.input.substr(0,5) == "\\frac") {
- // botch for missing fractions
- var denom = symbol.input.substr(6,1);
- if (denom == "5" || denom == "6") {
- str = symbol.input.replace(/\\frac/,"\\frac ")+str;
- return [node,str,symbol.tag];
- }
- }
- }
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(output));
- return [node,str,symbol.tag];
- case LONG: // added by DRW
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- node.setAttribute("minsize","1.5");
- node.setAttribute("maxsize","1.5");
- node = AMcreateMmlNode("mover",node);
- node.appendChild(AMcreateElementMathML("mspace"));
- return [node,str,symbol.tag];
- case STRETCHY: // added by DRW
- if (isIE && symbol.input == "\\backslash")
- symbol.output = "\\"; // doesn't expand, but then nor does "\u2216"
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- if (symbol.input == "|" || symbol.input == "\\vert" ||
- symbol.input == "\\|" || symbol.input == "\\Vert") {
- node.setAttribute("lspace","0em");
- node.setAttribute("rspace","0em");
- }
- node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here
- if (symbol.rtag != null)
- return [node,str,symbol.rtag];
- else
- return [node,str,symbol.tag];
- case BIG: // added by DRW
- var atval = symbol.atval;
- if (isIE)
- atval = symbol.ieval;
- symbol = AMgetSymbol(str);
- if (symbol == null)
- return [null,str,null];
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
- if (isIE) { // to get brackets to expand
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("height",atval+"ex");
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(space);
- } else { // ignored in IE
- node.setAttribute("minsize",atval);
- node.setAttribute("maxsize",atval);
- }
- return [node,str,symbol.tag];
- case LEFTBRACKET: //read (expr+)
- if (symbol.input == "\\left") { // left what?
- symbol = AMgetSymbol(str);
- if (symbol != null) {
- if (symbol.input == ".")
- symbol.invisible = true;
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- }
- }
- result = AMparseExpr(str,true,false);
- if (symbol==null ||
- (typeof symbol.invisible == "boolean" && symbol.invisible))
- node = AMcreateMmlNode("mrow",result[0]);
- else {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(result[0]);
- }
- return [node,result[1],result[2]];
- case MATRIX: //read (expr+)
- if (symbol.input == "\\begin{array}") {
- var mask = "";
- symbol = AMgetSymbol(str);
- str = AMremoveCharsAndBlanks(str,0);
- if (symbol == null)
- mask = "l";
- else {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (symbol.input != "{")
- mask = "l";
- else do {
- symbol = AMgetSymbol(str);
- if (symbol != null) {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- if (symbol.input != "}")
- mask = mask+symbol.input;
- }
- } while (symbol != null && symbol.input != "" && symbol.input != "}");
- }
- result = AMparseExpr("{"+str,true,true);
-// if (result[0]==null) return [AMcreateMmlNode("mo",
-// document.createTextNode(symbol.input)),str];
- node = AMcreateMmlNode("mtable",result[0]);
- mask = mask.replace(/l/g,"left ");
- mask = mask.replace(/r/g,"right ");
- mask = mask.replace(/c/g,"center ");
- node.setAttribute("columnalign",mask);
- node.setAttribute("displaystyle","false");
- if (isIE)
- return [node,result[1],null];
-// trying to get a *little* bit of space around the array
-// (IE already includes it)
- var lspace = AMcreateElementMathML("mspace");
- lspace.setAttribute("width","0.167em");
- var rspace = AMcreateElementMathML("mspace");
- rspace.setAttribute("width","0.167em");
- var node1 = AMcreateMmlNode("mrow",lspace);
- node1.appendChild(node);
- node1.appendChild(rspace);
- return [node1,result[1],null];
- } else { // eqnarray
- result = AMparseExpr("{"+str,true,true);
- node = AMcreateMmlNode("mtable",result[0]);
- if (isIE)
- node.setAttribute("columnspacing","0.25em"); // best in practice?
- else
- node.setAttribute("columnspacing","0.167em"); // correct (but ignored?)
- node.setAttribute("columnalign","right center left");
- node.setAttribute("displaystyle","true");
- node = AMcreateMmlNode("mrow",node);
- return [node,result[1],null];
- }
- case TEXT:
- if (str.charAt(0)=="{") i=str.indexOf("}");
- else i = 0;
- if (i==-1)
- i = str.length;
- st = str.slice(1,i);
- if (st.charAt(0) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","0.33em"); // was 1ex
- newFrag.appendChild(node);
- }
- newFrag.appendChild(
- AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
- if (st.charAt(st.length-1) == " ") {
- node = AMcreateElementMathML("mspace");
- node.setAttribute("width","0.33em"); // was 1ex
- newFrag.appendChild(node);
- }
- str = AMremoveCharsAndBlanks(str,i+1);
- return [AMcreateMmlNode("mrow",newFrag),str,null];
- case UNARY:
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str];
- if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
- st = str.charAt(0);
-// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
- if (st=="^" || st=="_" || st==",") {
- return [AMcreateMmlNode(symbol.tag,
- document.createTextNode(symbol.output)),str,symbol.tag];
- } else {
- node = AMcreateMmlNode("mrow",
- AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
- if (isIE) {
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("width","0.167em");
- node.appendChild(space);
- }
- node.appendChild(result[0]);
- return [node,result[1],symbol.tag];
- }
- }
- if (symbol.input == "\\sqrt") { // sqrt
- if (isIE) { // set minsize, for \surd
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("height","1.2ex");
- space.setAttribute("width","0em"); // probably no effect
- node = AMcreateMmlNode(symbol.tag,result[0])
-// node.setAttribute("minsize","1"); // ignored
-// node = AMcreateMmlNode("mrow",node); // hopefully unnecessary
- node.appendChild(space);
- return [node,result[1],symbol.tag];
- } else
- return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
- } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
- node = AMcreateMmlNode(symbol.tag,result[0]);
- var output = symbol.output;
- if (isIE) {
- if (symbol.input == "\\hat")
- output = "\u0302";
- else if (symbol.input == "\\widehat")
- output = "\u005E";
- else if (symbol.input == "\\bar")
- output = "\u00AF";
- else if (symbol.input == "\\grave")
- output = "\u0300";
- else if (symbol.input == "\\tilde")
- output = "\u0303";
- }
- var node1 = AMcreateMmlNode("mo",document.createTextNode(output));
- if (symbol.input == "\\vec" || symbol.input == "\\check")
- // don't allow to stretch
- node1.setAttribute("maxsize","1.2");
- // why doesn't "1" work? \vec nearly disappears in firefox
- if (isIE && symbol.input == "\\bar")
- node1.setAttribute("maxsize","0.5");
- if (symbol.input == "\\underbrace" || symbol.input == "\\underline")
- node1.setAttribute("accentunder","true");
- else
- node1.setAttribute("accent","true");
- node.appendChild(node1);
- if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace")
- node.ttype = UNDEROVER;
- return [node,result[1],symbol.tag];
- } else { // font change or displaystyle command
- if (!isIE && typeof symbol.codes != "undefined") {
- for (i=0; i<result[0].childNodes.length; i++)
- if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
- st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
- result[0].childNodes[i].firstChild.nodeValue);
- var newst = [];
- for (var j=0; j<st.length; j++)
- if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
- String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
- else newst = newst + st.charAt(j);
- if (result[0].nodeName=="mi")
- result[0]=AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst));
- else result[0].replaceChild(AMcreateElementMathML("mo").
- appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
- }
- }
- node = AMcreateMmlNode(symbol.tag,result[0]);
- node.setAttribute(symbol.atname,symbol.atval);
- if (symbol.input == "\\scriptstyle" ||
- symbol.input == "\\scriptscriptstyle")
- node.setAttribute("displaystyle","false");
- return [node,result[1],symbol.tag];
- }
- case BINARY:
- result = AMparseSexpr(str);
- if (result[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str,null];
- result2 = AMparseSexpr(result[1]);
- if (result2[0]==null) return [AMcreateMmlNode("mo",
- document.createTextNode(symbol.input)),str,null];
- if (symbol.input=="\\root" || symbol.input=="\\stackrel")
- newFrag.appendChild(result2[0]);
- newFrag.appendChild(result[0]);
- if (symbol.input=="\\frac") newFrag.appendChild(result2[0]);
- return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];
- case INFIX:
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),
- str,symbol.tag];
- default:
- return [AMcreateMmlNode(symbol.tag, //its a constant
- document.createTextNode(symbol.output)),str,symbol.tag];
- }
-}
-
-function AMparseIexpr(str) {
- var symbol, sym1, sym2, node, result, tag, underover;
- str = AMremoveCharsAndBlanks(str,0);
- sym1 = AMgetSymbol(str);
- result = AMparseSexpr(str);
- node = result[0];
- str = result[1];
- tag = result[2];
- symbol = AMgetSymbol(str);
- if (symbol.ttype == INFIX) {
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- result = AMparseSexpr(str);
- if (result[0] == null) // show box in place of missing argument
- result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
- str = result[1];
- tag = result[2];
- if (symbol.input == "_" || symbol.input == "^") {
- sym2 = AMgetSymbol(str);
- tag = null; // no space between x^2 and a following sin, cos, etc.
-// This is for \underbrace and \overbrace
- underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER));
-// underover = (sym1.ttype == UNDEROVER);
- if (symbol.input == "_" && sym2.input == "^") {
- str = AMremoveCharsAndBlanks(str,sym2.input.length);
- var res2 = AMparseSexpr(str);
- str = res2[1];
- tag = res2[2]; // leave space between x_1^2 and a following sin etc.
- node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
- node.appendChild(result[0]);
- node.appendChild(res2[0]);
- } else if (symbol.input == "_") {
- node = AMcreateMmlNode((underover?"munder":"msub"),node);
- node.appendChild(result[0]);
- } else {
- node = AMcreateMmlNode((underover?"mover":"msup"),node);
- node.appendChild(result[0]);
- }
- node = AMcreateMmlNode("mrow",node); // so sum does not stretch
- } else {
- node = AMcreateMmlNode(symbol.tag,node);
- if (symbol.input == "\\atop" || symbol.input == "\\choose")
- node.setAttribute("linethickness","0ex");
- node.appendChild(result[0]);
- if (symbol.input == "\\choose")
- node = AMcreateMmlNode("mfenced",node);
- }
- }
- return [node,str,tag];
-}
-
-function AMparseExpr(str,rightbracket,matrix) {
- var symbol, node, result, i, tag,
- newFrag = document.createDocumentFragment();
- do {
- str = AMremoveCharsAndBlanks(str,0);
- result = AMparseIexpr(str);
- node = result[0];
- str = result[1];
- tag = result[2];
- symbol = AMgetSymbol(str);
- if (node!=undefined) {
- if ((tag == "mn" || tag == "mi") && symbol!=null &&
- typeof symbol.func == "boolean" && symbol.func) {
- // Add space before \sin in 2\sin x or x\sin x
- var space = AMcreateElementMathML("mspace");
- space.setAttribute("width","0.167em");
- node = AMcreateMmlNode("mrow",node);
- node.appendChild(space);
- }
- newFrag.appendChild(node);
- }
- } while ((symbol.ttype != RIGHTBRACKET)
- && symbol!=null && symbol.output!="");
- tag = null;
- if (symbol.ttype == RIGHTBRACKET) {
- if (symbol.input == "\\right") { // right what?
- str = AMremoveCharsAndBlanks(str,symbol.input.length);
- symbol = AMgetSymbol(str);
- if (symbol != null && symbol.input == ".")
- symbol.invisible = true;
- if (symbol != null)
- tag = symbol.rtag;
- }
- if (symbol!=null)
- str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return
- var len = newFrag.childNodes.length;
- if (matrix &&
- len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
- newFrag.childNodes[len-2].nodeName == "mo" &&
- newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix
- var pos = []; // positions of ampersands
- var m = newFrag.childNodes.length;
- for (i=0; matrix && i<m; i=i+2) {
- pos[i] = [];
- node = newFrag.childNodes[i];
- for (var j=0; j<node.childNodes.length; j++)
- if (node.childNodes[j].firstChild.nodeValue=="&")
- pos[i][pos[i].length]=j;
- }
- var row, frag, n, k, table = document.createDocumentFragment();
- for (i=0; i<m; i=i+2) {
- row = document.createDocumentFragment();
- frag = document.createDocumentFragment();
- node = newFrag.firstChild; // <mrow> -&-&...&-&- </mrow>
- n = node.childNodes.length;
- k = 0;
- for (j=0; j<n; j++) {
- if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
- node.removeChild(node.firstChild); //remove &
- row.appendChild(AMcreateMmlNode("mtd",frag));
- k++;
- } else frag.appendChild(node.firstChild);
- }
- row.appendChild(AMcreateMmlNode("mtd",frag));
- if (newFrag.childNodes.length>2) {
- newFrag.removeChild(newFrag.firstChild); //remove <mrow> </mrow>
- newFrag.removeChild(newFrag.firstChild); //remove <mo>&</mo>
- }
- table.appendChild(AMcreateMmlNode("mtr",row));
- }
- return [table,str];
- }
- if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
- node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
- newFrag.appendChild(node);
- }
- }
- return [newFrag,str,tag];
-}
-
-function AMparseMath(str) {
- var result, node = AMcreateElementMathML("mstyle");
- if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
- if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
- node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]);
- node = AMcreateMmlNode("math",node);
- if (showasciiformulaonhover) //fixed by djhsu so newline
- node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
- if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
- var fnode = AMcreateElementXHTML("font");
- fnode.setAttribute("face",mathfontfamily);
- fnode.appendChild(node);
- return fnode;
- }
- return node;
-}
-
-function AMstrarr2docFrag(arr, linebreaks) {
- var newFrag=document.createDocumentFragment();
- var expr = false;
- for (var i=0; i<arr.length; i++) {
- if (expr) newFrag.appendChild(AMparseMath(arr[i]));
- else {
- var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[0])));
- for (var j=1; j<arri.length; j++) {
- newFrag.appendChild(AMcreateElementXHTML("p"));
- newFrag.appendChild(AMcreateElementXHTML("span").
- appendChild(document.createTextNode(arri[j])));
- }
- }
- expr = !expr;
- }
- return newFrag;
-}
-
-function AMprocessNodeR(n, linebreaks) {
- var mtch, str, arr, frg, i;
- if (n.childNodes.length == 0) {
- if ((n.nodeType!=8 || linebreaks) &&
- n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
- n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
- n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
- str = n.nodeValue;
- if (!(str == null)) {
- str = str.replace(/\r\n\r\n/g,"\n\n");
- str = str.replace(/\x20+/g," ");
- str = str.replace(/\s*\r\n/g," ");
-// DELIMITERS:
- mtch = (str.indexOf("\$")==-1 ? false : true);
- str = str.replace(/([^\\])\$/g,"$1 \$");
- str = str.replace(/^\$/," \$"); // in case \$ at start of string
- arr = str.split(" \$");
- for (i=0; i<arr.length; i++)
- arr[i]=arr[i].replace(/\\\$/g,"\$");
- if (arr.length>1 || mtch) {
- if (checkForMathML) {
- checkForMathML = false;
- var nd = AMisMathMLavailable();
- AMnoMathML = nd != null;
- if (AMnoMathML && notifyIfNoMathML)
- if (alertIfNoMathML)
- alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
- or Firefox/Mozilla/Netscape");
- else AMbody.insertBefore(nd,AMbody.childNodes[0]);
- }
- if (!AMnoMathML) {
- frg = AMstrarr2docFrag(arr,n.nodeType==8);
- var len = frg.childNodes.length;
- n.parentNode.replaceChild(frg,n);
- return len-1;
- } else return 0;
- }
- }
- } else return 0;
- } else if (n.nodeName!="math") {
- for (i=0; i<n.childNodes.length; i++)
- i += AMprocessNodeR(n.childNodes[i], linebreaks);
- }
- return 0;
-}
-
-function AMprocessNode(n, linebreaks, spanclassAM) {
- var frag,st;
- if (spanclassAM!=null) {
- frag = document.getElementsByTagName("span")
- for (var i=0;i<frag.length;i++)
- if (frag[i].className == "AM")
- AMprocessNodeR(frag[i],linebreaks);
- } else {
- try {
- st = n.innerHTML;
- } catch(err) {}
-// DELIMITERS:
- if (st==null || st.indexOf("\$")!=-1)
- AMprocessNodeR(n,linebreaks);
- }
- if (isIE) { //needed to match size and font of formula to surrounding text
- frag = document.getElementsByTagName('math');
- for (var i=0;i<frag.length;i++) frag[i].update()
- }
-}
-
-var AMbody;
-var AMnoMathML = false, AMtranslated = false;
-
-function translate(spanclassAM) {
- if (!AMtranslated) { // run this only once
- AMtranslated = true;
- AMinitSymbols();
- AMbody = document.getElementsByTagName("body")[0];
- AMprocessNode(AMbody, false, spanclassAM);
- }
-}
-
-if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
- document.write("<object id=\"mathplayer\"\
- classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
- document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
-}
-
-// GO1.1 Generic onload by Brothercake
-// http://www.brothercake.com/
-//onload function (replaces the onload="translate()" in the <body> tag)
-function generic()
-{
- translate();
-};
-//setup onload function
-if(typeof window.addEventListener != 'undefined')
-{
- //.. gecko, safari, konqueror and standard
- window.addEventListener('load', generic, false);
-}
-else if(typeof document.addEventListener != 'undefined')
-{
- //.. opera 7
- document.addEventListener('load', generic, false);
-}
-else if(typeof window.attachEvent != 'undefined')
-{
- //.. win/ie
- window.attachEvent('onload', generic);
-}
-//** remove this condition to degrade older browsers
-else
-{
- //.. mac/ie5 and anything else that gets this far
- //if there's an existing onload function
- if(typeof window.onload == 'function')
- {
- //store it
- var existing = onload;
- //add new onload handler
- window.onload = function()
- {
- //call existing onload function
- existing();
- //call generic onload function
- generic();
- };
- }
- else
- {
- //setup onload function
- window.onload = generic;
- }
-}
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>LaTeXMathML Formulae</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
-capability has been added to AsciiDoc for users who are more familar
-with or prefer LaTeX math formulas to the
-<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>
-notation.</p></div>
-<div class="paragraph"><p><em>LaTeXMathML</em> is a derivative of
-<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>&#8201;&#8212;&#8201;in
-terms of usage the only difference it that you use the <code>latexmath</code>
-attribute instead of the <code>asciimath</code> attribute.</p></div>
-<div class="paragraph"><p><em>LaTeXMathML</em> processes LaTeX math formulas not arbitrary LaTeX (as
-<code>dblatex(1)</code> does). See the
-<a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
-website for details.</p></div>
-<div class="paragraph"><p>Here&#8217;s the <a href="latexmathml.txt">AsciiDoc source</a> that generated this
-page.</p></div>
-<div class="paragraph"><p>Some example <em>LaTeXMathML</em> formulas:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-$R_x = 10.0 \times \sin(R_\phi)$
-</p>
-</li>
-<li>
-<p>
-$\sum_{n=1}^\infty \frac{1}{2^n}$
-</p>
-</li>
-<li>
-<p>
-$\lim_{x\to\infty} f(x) = k \choose r + \frac ab
- \sum_{n=1}^\infty a_n + \displaystyle{ \left\{ \frac{1}{13}
- \sum_{n=1}^\infty b_n \right\} }$
-</p>
-</li>
-<li>
-<p>
-$\$\alpha + \$\beta = \$(\alpha + \beta)$
-</p>
-</li>
-<li>
-<p>
-$\begin{eqnarray} x &amp; = &amp; \frac{-7 \pm
- \sqrt{49 - 24}}{6} \\ &amp; = &amp; -2 \textrm{ or } -\frac13.
- \end{eqnarray}$
-</p>
-</li>
-<li>
-<p>
-$\displaystyle{ V_i = C_0 - C_3
- \frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }$
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>LaTeXMathML Formulae</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+<script type="text/javascript">
+/*<![CDATA[*/
+/*
+LaTeXMathML.js
+==============
+
+This file, in this form, is due to Douglas Woodall, June 2006.
+It contains JavaScript functions to convert (most simple) LaTeX
+math notation to Presentation MathML. It was obtained by
+downloading the file ASCIIMathML.js from
+ http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/
+and modifying it so that it carries out ONLY those conversions
+that would be carried out in LaTeX. A description of the original
+file, with examples, can be found at
+ www1.chapman.edu/~jipsen/mathml/asciimath.html
+ ASCIIMathML: Math on the web for everyone
+
+Here is the header notice from the original file:
+
+ASCIIMathML.js
+==============
+This file contains JavaScript functions to convert ASCII math notation
+to Presentation MathML. The conversion is done while the (X)HTML page
+loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
+Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
+Just add the next line to your (X)HTML page with this file in the same folder:
+This is a convenient and inexpensive solution for authoring MathML.
+
+Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
+Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
+For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
+If you use it on a webpage, please send the URL to jipsen@chapman.edu
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License (at http://www.gnu.org/copyleft/gpl.html)
+for more details.
+
+LaTeXMathML.js (ctd)
+==============
+
+The instructions for use are the same as for the original
+ASCIIMathML.js, except that of course the line you add to your
+file should be
+Or use absolute path names if the file is not in the same folder
+as your (X)HTML page.
+*/
+
+var checkForMathML = true; // check if browser can display MathML
+var notifyIfNoMathML = true; // display note if no MathML capability
+var alertIfNoMathML = false; // show alert box if no MathML capability
+// was "red":
+var mathcolor = ""; // change it to "" (to inherit) or any other color
+// was "serif":
+var mathfontfamily = ""; // change to "" to inherit (works in IE)
+ // or another family (e.g. "arial")
+var showasciiformulaonhover = true; // helps students learn ASCIIMath
+/*
+// Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end
+var displaystyle = false; // puts limits above and below large operators
+var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
+var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
+var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
+var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
+ // for IE this works only in <!-- -->
+//var separatetokens;// has been removed (email me if this is a problem)
+*/
+var isIE = document.createElementNS==null;
+
+if (document.getElementById==null)
+ alert("This webpage requires a recent browser such as\
+\nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
+
+// all further global variables start with "AM"
+
+function AMcreateElementXHTML(t) {
+ if (isIE) return document.createElement(t);
+ else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
+}
+
+function AMnoMathMLNote() {
+ var nd = AMcreateElementXHTML("h3");
+ nd.setAttribute("align","center")
+ nd.appendChild(AMcreateElementXHTML("p"));
+ nd.appendChild(document.createTextNode("To view the "));
+ var an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("LaTeXMathML"));
+ an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
+ an = AMcreateElementXHTML("a");
+ an.appendChild(document.createTextNode("MathPlayer"));
+ an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
+ nd.appendChild(an);
+ nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
+ nd.appendChild(AMcreateElementXHTML("p"));
+ return nd;
+}
+
+function AMisMathMLavailable() {
+ if (navigator.appName.slice(0,8)=="Netscape")
+ if (navigator.appVersion.slice(0,1)>="5") return null;
+ else return AMnoMathMLNote();
+ else if (navigator.appName.slice(0,9)=="Microsoft")
+ try {
+ var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
+ return null;
+ } catch (e) {
+ return AMnoMathMLNote();
+ }
+ else return AMnoMathMLNote();
+}
+
+// character lists for Mozilla/Netscape fonts
+var AMcal = [0xEF35,0x212C,0xEF36,0xEF37,0x2130,0x2131,0xEF38,0x210B,0x2110,0xEF39,0xEF3A,0x2112,0x2133,0xEF3B,0xEF3C,0xEF3D,0xEF3E,0x211B,0xEF3F,0xEF40,0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xEF46];
+var AMfrk = [0xEF5D,0xEF5E,0x212D,0xEF5F,0xEF60,0xEF61,0xEF62,0x210C,0x2111,0xEF63,0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0x211C,0xEF6B,0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0x2128];
+var AMbbb = [0xEF8C,0xEF8D,0x2102,0xEF8E,0xEF8F,0xEF90,0xEF91,0x210D,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0x2115,0xEF97,0x2119,0x211A,0x211D,0xEF98,0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0x2124];
+
+var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
+ RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
+ TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types
+
+var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY},
+ AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY},
+ AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY},
+ AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY},
+ AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX},
+ AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX},
+ AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX},
+ AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX},
+ AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT},
+ AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT};
+
+// Commented out by DRW to prevent 1/2 turning into a 2-line fraction
+// AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX},
+// Commented out by DRW so that " prints literally in equations
+// AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT};
+
+var AMsymbols = [
+//Greek letters
+{input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST},
+{input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST},
+{input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST},
+{input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST},
+{input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST},
+{input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST},
+{input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST},
+{input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST},
+{input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST},
+{input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST},
+{input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST},
+{input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST},
+{input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST},
+{input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST},
+{input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST},
+{input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST},
+{input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST},
+{input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST},
+{input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST},
+{input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST},
+{input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST},
+{input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST},
+{input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST},
+{input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST},
+{input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST},
+{input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST},
+{input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST},
+{input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST},
+{input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST},
+{input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST},
+{input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST},
+{input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST},
+{input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST},
+{input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST},
+{input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST},
+{input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST},
+{input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST},
+{input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST},
+{input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST},
+{input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST},
+
+//fractions
+{input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST},
+{input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST},
+{input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST},
+{input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST},
+{input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST},
+{input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST},
+{input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST},
+{input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST},
+{input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST},
+{input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST},
+{input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST},
+{input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST},
+{input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST},
+{input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST},
+{input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST},
+
+//binary operation symbols
+{input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST},
+{input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST},
+{input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST},
+{input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST},
+{input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST},
+{input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST},
+{input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST},
+{input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST},
+{input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST},
+{input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST},
+//{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST},
+{input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST},
+{input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST},
+{input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST},
+{input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST},
+{input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST},
+{input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST},
+{input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST},
+{input:"\\land", tag:"mo", output:"\u2227", ttype:CONST},
+{input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST},
+{input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST},
+{input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST},
+{input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST},
+{input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST},
+{input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST},
+{input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST},
+{input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST},
+{input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST},
+{input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST},
+{input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST},
+{input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST},
+{input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST},
+{input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST},
+{input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST},
+{input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST},
+{input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST},
+{input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST},
+{input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST},
+
+
+//BIG Operators
+{input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER},
+{input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER},
+{input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER},
+{input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER},
+{input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER},
+{input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER},
+{input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER},
+{input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER},
+{input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER},
+{input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER},
+{input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER},
+{input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER},
+{input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER},
+{input:"\\int", tag:"mo", output:"\u222B", ttype:CONST},
+{input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST},
+
+//binary relation symbols
+{input:":=", tag:"mo", output:":=", ttype:CONST},
+{input:"\\lt", tag:"mo", output:"<", ttype:CONST},
+{input:"\\gt", tag:"mo", output:">", ttype:CONST},
+{input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST},
+{input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST},
+{input:"\\le", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST},
+{input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST},
+{input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST},
+{input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST},
+{input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST},
+{input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST},
+{input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST},
+{input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST},
+{input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST},
+{input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST},
+{input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST},
+{input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST},
+{input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST},
+{input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST},
+{input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST},
+{input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST},
+{input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST},
+{input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST},
+{input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST},
+{input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST},
+{input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST},
+{input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST},
+{input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST},
+{input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST},
+{input:"\\in", tag:"mo", output:"\u2208", ttype:CONST},
+{input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST},
+{input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST},
+{input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST},
+{input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST},
+{input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST},
+{input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST},
+{input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST},
+{input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST},
+{input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST},
+{input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST},
+{input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST},
+
+//matrices
+{input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true},
+{input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true},
+{input:"\\\\", output:"}&{", ttype:DEFINITION},
+{input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION},
+{input:"\\end{array}", output:"}}", ttype:DEFINITION},
+
+//grouping and literal brackets -- ieval is for IE
+{input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG},
+{input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG},
+{input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG},
+{input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG},
+{input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET},
+{input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET},
+{input:"{", output:"{", ttype:LEFTBRACKET, invisible:true},
+{input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true},
+
+{input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY},
+{input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
+{input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
+{input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
+{input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
+{input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY},
+{input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY},
+{input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY},
+
+// rtag:"mi" causes space to be inserted before a following sin, cos, etc.
+// (see function AMparseExpr() )
+{input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY},
+{input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY},
+
+// "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em
+{input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
+{input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
+{input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY},
+{input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY},
+{input:"\\setminus", tag:"mo", output:"\\", ttype:CONST},
+
+//miscellaneous symbols
+{input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE},
+{input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE},
+{input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
+{input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
+{input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE},
+{input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE},
+{input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE},
+{input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE},
+//{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width
+{input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST},
+{input:"'", tag:"mo", output:"\u02B9", ttype:CONST},
+{input:"''", tag:"mo", output:"\u02BA", ttype:CONST},
+{input:"'''", tag:"mo", output:"\u2034", ttype:CONST},
+{input:"''''", tag:"mo", output:"\u2057", ttype:CONST},
+{input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST},
+{input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST},
+{input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST},
+{input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST},
+{input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST},
+{input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST},
+{input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST},
+{input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST},
+{input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST},
+{input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST},
+{input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST},
+{input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST},
+{input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST},
+{input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST},
+{input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION},
+{input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST},
+{input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST},
+{input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST},
+{input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST},
+{input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST},
+//{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST},
+{input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST},
+//{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST},
+{input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST},
+{input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST},
+{input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST},
+{input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST},
+{input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST},
+{input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST},
+{input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST},
+{input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST},
+
+//standard functions
+//Note UNDEROVER *must* have tag:"mo" to work properly
+{input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true},
+{input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true},
+{input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true},
+{input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true},
+{input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true},
+{input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true},
+{input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true},
+{input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true},
+{input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true},
+{input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true},
+{input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true},
+{input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST?
+{input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true},
+{input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST?
+{input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true},
+{input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER},
+{input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true},
+{input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true},
+{input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER},
+{input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER},
+{input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER},
+{input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true},
+{input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true},
+{input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER},
+{input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER},
+{input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true},
+{input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true},
+{input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true},
+{input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true},
+{input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER},
+{input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true},
+{input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true},
+
+//arrows
+{input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST},
+{input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST},
+{input:"\\to", tag:"mo", output:"\u2192", ttype:CONST},
+{input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST},
+{input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST},
+{input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST},
+{input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST},
+{input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST},
+{input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST},
+{input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST},
+{input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST},
+{input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION},
+{input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST},
+{input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST},
+{input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST},
+{input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST},
+{input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG},
+{input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG},
+{input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG},
+{input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG},
+{input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG},
+{input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG},
+{input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST},
+ // disaster if LONG
+
+//commands with argument
+AMsqrt, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose,
+//AMdiv, AMquote,
+
+//diacritical marks
+{input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true},
+//{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true},
+//{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true},
+//{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true},
+//{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true},
+{input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true},
+{input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true},
+{input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true},
+{input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true},
+{input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true},
+//{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true},
+{input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true},
+{input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true},
+{input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true},
+{input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true},
+{input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true},
+{input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true},
+{input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true},
+//{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true},
+{input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true},
+{input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true},
+{input:"\\overbrace", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true},
+{input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true},
+{input:"\\underbrace", tag:"munder", output:"\u23B5", ttype:UNARY, acc:true},
+{input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true},
+//{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true},
+
+//typestyles and fonts
+{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY},
+{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY},
+{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY},
+{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY},
+{input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION},
+{input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
+{input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
+{input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
+{input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
+{input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
+{input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
+{input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY},
+{input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb},
+{input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal},
+{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk}
+];
+
+function compareNames(s1,s2) {
+ if (s1.input > s2.input) return 1
+ else return -1;
+}
+
+var AMnames = []; //list of input symbols
+
+function AMinitSymbols() {
+ AMsymbols.sort(compareNames);
+ for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
+}
+
+var AMmathml = "http://www.w3.org/1998/Math/MathML";
+
+function AMcreateElementMathML(t) {
+ if (isIE) return document.createElement("m:"+t);
+ else return document.createElementNS(AMmathml,t);
+}
+
+function AMcreateMmlNode(t,frag) {
+// var node = AMcreateElementMathML(name);
+ if (isIE) var node = document.createElement("m:"+t);
+ else var node = document.createElementNS(AMmathml,t);
+ node.appendChild(frag);
+ return node;
+}
+
+function newcommand(oldstr,newstr) {
+ AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
+ ttype:DEFINITION}]);
+}
+
+function AMremoveCharsAndBlanks(str,n) {
+//remove n characters and any following blanks
+ var st;
+ st = str.slice(n);
+ for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
+ return st.slice(i);
+}
+
+function AMposition(arr, str, n) {
+// return position >=n where str appears or would be inserted
+// assumes arr is sorted
+ if (n==0) {
+ var h,m;
+ n = -1;
+ h = arr.length;
+ while (n+1<h) {
+ m = (n+h) >> 1;
+ if (arr[m]<str) n = m; else h = m;
+ }
+ return h;
+ } else
+ for (var i=n; i<arr.length && arr[i]<str; i++);
+ return i; // i=arr.length || arr[i]>=str
+}
+
+function AMgetSymbol(str) {
+//return maximal initial substring of str that appears in names
+//return null if there is none
+ var k = 0; //new pos
+ var j = 0; //old pos
+ var mk; //match pos
+ var st;
+ var tagst;
+ var match = "";
+ var more = true;
+ for (var i=1; i<=str.length && more; i++) {
+ st = str.slice(0,i); //initial substring of length i
+ j = k;
+ k = AMposition(AMnames, st, j);
+ if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
+ match = AMnames[k];
+ mk = k;
+ i = match.length;
+ }
+ more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
+ }
+ AMpreviousSymbol=AMcurrentSymbol;
+ if (match!=""){
+ AMcurrentSymbol=AMsymbols[mk].ttype;
+ return AMsymbols[mk];
+ }
+ AMcurrentSymbol=CONST;
+ k = 1;
+ st = str.slice(0,1); //take 1 character
+ if ("0"<=st && st<="9") tagst = "mn";
+ else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
+/*
+// Commented out by DRW (not fully understood, but probably to do with
+// use of "/" as an INFIX version of "\\frac", which we don't want):
+//}
+//if (st=="-" && AMpreviousSymbol==INFIX) {
+// AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
+// return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
+//}
+*/
+ return {input:st, tag:tagst, output:st, ttype:CONST};
+}
+
+
+/*Parsing ASCII math expressions with the following grammar
+v ::= [A-Za-z] | greek letters | numbers | other constant symbols
+u ::= sqrt | text | bb | other unary symbols for font commands
+b ::= frac | root | stackrel binary symbols
+l ::= { | \left left brackets
+r ::= } | \right right brackets
+S ::= v | lEr | uS | bSS Simple expression
+I ::= S_S | S^S | S_S^S | S Intermediate expression
+E ::= IE | I/I Expression
+Each terminal symbol is translated into a corresponding mathml node.*/
+
+var AMpreviousSymbol,AMcurrentSymbol;
+
+function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag]
+ var symbol, node, result, result2, i, st,// rightvert = false,
+ newFrag = document.createDocumentFragment();
+ str = AMremoveCharsAndBlanks(str,0);
+ symbol = AMgetSymbol(str); //either a token or a bracket or empty
+ if (symbol == null || symbol.ttype == RIGHTBRACKET)
+ return [null,str,null];
+ if (symbol.ttype == DEFINITION) {
+ str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ if (symbol == null || symbol.ttype == RIGHTBRACKET)
+ return [null,str,null];
+ }
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ switch (symbol.ttype) {
+ case SPACE:
+ node = AMcreateElementMathML(symbol.tag);
+ node.setAttribute(symbol.atname,symbol.atval);
+ return [node,str,symbol.tag];
+ case UNDEROVER:
+ if (isIE) {
+ if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols
+ str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc.
+ symbol = AMgetSymbol(str);
+ symbol.ttype = UNDEROVER;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ }
+ }
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ case CONST:
+ var output = symbol.output;
+ if (isIE) {
+ if (symbol.input == "'")
+ output = "\u2032";
+ else if (symbol.input == "''")
+ output = "\u2033";
+ else if (symbol.input == "'''")
+ output = "\u2033\u2032";
+ else if (symbol.input == "''''")
+ output = "\u2033\u2033";
+ else if (symbol.input == "\\square")
+ output = "\u25A1"; // same as \Box
+ else if (symbol.input.substr(0,5) == "\\frac") {
+ // botch for missing fractions
+ var denom = symbol.input.substr(6,1);
+ if (denom == "5" || denom == "6") {
+ str = symbol.input.replace(/\\frac/,"\\frac ")+str;
+ return [node,str,symbol.tag];
+ }
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(output));
+ return [node,str,symbol.tag];
+ case LONG: // added by DRW
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ node.setAttribute("minsize","1.5");
+ node.setAttribute("maxsize","1.5");
+ node = AMcreateMmlNode("mover",node);
+ node.appendChild(AMcreateElementMathML("mspace"));
+ return [node,str,symbol.tag];
+ case STRETCHY: // added by DRW
+ if (isIE && symbol.input == "\\backslash")
+ symbol.output = "\\"; // doesn't expand, but then nor does "\u2216"
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ if (symbol.input == "|" || symbol.input == "\\vert" ||
+ symbol.input == "\\|" || symbol.input == "\\Vert") {
+ node.setAttribute("lspace","0em");
+ node.setAttribute("rspace","0em");
+ }
+ node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here
+ if (symbol.rtag != null)
+ return [node,str,symbol.rtag];
+ else
+ return [node,str,symbol.tag];
+ case BIG: // added by DRW
+ var atval = symbol.atval;
+ if (isIE)
+ atval = symbol.ieval;
+ symbol = AMgetSymbol(str);
+ if (symbol == null)
+ return [null,str,null];
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
+ if (isIE) { // to get brackets to expand
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("height",atval+"ex");
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(space);
+ } else { // ignored in IE
+ node.setAttribute("minsize",atval);
+ node.setAttribute("maxsize",atval);
+ }
+ return [node,str,symbol.tag];
+ case LEFTBRACKET: //read (expr+)
+ if (symbol.input == "\\left") { // left what?
+ symbol = AMgetSymbol(str);
+ if (symbol != null) {
+ if (symbol.input == ".")
+ symbol.invisible = true;
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ }
+ }
+ result = AMparseExpr(str,true,false);
+ if (symbol==null ||
+ (typeof symbol.invisible == "boolean" && symbol.invisible))
+ node = AMcreateMmlNode("mrow",result[0]);
+ else {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(result[0]);
+ }
+ return [node,result[1],result[2]];
+ case MATRIX: //read (expr+)
+ if (symbol.input == "\\begin{array}") {
+ var mask = "";
+ symbol = AMgetSymbol(str);
+ str = AMremoveCharsAndBlanks(str,0);
+ if (symbol == null)
+ mask = "l";
+ else {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (symbol.input != "{")
+ mask = "l";
+ else do {
+ symbol = AMgetSymbol(str);
+ if (symbol != null) {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ if (symbol.input != "}")
+ mask = mask+symbol.input;
+ }
+ } while (symbol != null && symbol.input != "" && symbol.input != "}");
+ }
+ result = AMparseExpr("{"+str,true,true);
+// if (result[0]==null) return [AMcreateMmlNode("mo",
+// document.createTextNode(symbol.input)),str];
+ node = AMcreateMmlNode("mtable",result[0]);
+ mask = mask.replace(/l/g,"left ");
+ mask = mask.replace(/r/g,"right ");
+ mask = mask.replace(/c/g,"center ");
+ node.setAttribute("columnalign",mask);
+ node.setAttribute("displaystyle","false");
+ if (isIE)
+ return [node,result[1],null];
+// trying to get a *little* bit of space around the array
+// (IE already includes it)
+ var lspace = AMcreateElementMathML("mspace");
+ lspace.setAttribute("width","0.167em");
+ var rspace = AMcreateElementMathML("mspace");
+ rspace.setAttribute("width","0.167em");
+ var node1 = AMcreateMmlNode("mrow",lspace);
+ node1.appendChild(node);
+ node1.appendChild(rspace);
+ return [node1,result[1],null];
+ } else { // eqnarray
+ result = AMparseExpr("{"+str,true,true);
+ node = AMcreateMmlNode("mtable",result[0]);
+ if (isIE)
+ node.setAttribute("columnspacing","0.25em"); // best in practice?
+ else
+ node.setAttribute("columnspacing","0.167em"); // correct (but ignored?)
+ node.setAttribute("columnalign","right center left");
+ node.setAttribute("displaystyle","true");
+ node = AMcreateMmlNode("mrow",node);
+ return [node,result[1],null];
+ }
+ case TEXT:
+ if (str.charAt(0)=="{") i=str.indexOf("}");
+ else i = 0;
+ if (i==-1)
+ i = str.length;
+ st = str.slice(1,i);
+ if (st.charAt(0) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","0.33em"); // was 1ex
+ newFrag.appendChild(node);
+ }
+ newFrag.appendChild(
+ AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
+ if (st.charAt(st.length-1) == " ") {
+ node = AMcreateElementMathML("mspace");
+ node.setAttribute("width","0.33em"); // was 1ex
+ newFrag.appendChild(node);
+ }
+ str = AMremoveCharsAndBlanks(str,i+1);
+ return [AMcreateMmlNode("mrow",newFrag),str,null];
+ case UNARY:
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str];
+ if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
+ st = str.charAt(0);
+// if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
+ if (st=="^" || st=="_" || st==",") {
+ return [AMcreateMmlNode(symbol.tag,
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ } else {
+ node = AMcreateMmlNode("mrow",
+ AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
+ if (isIE) {
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("width","0.167em");
+ node.appendChild(space);
+ }
+ node.appendChild(result[0]);
+ return [node,result[1],symbol.tag];
+ }
+ }
+ if (symbol.input == "\\sqrt") { // sqrt
+ if (isIE) { // set minsize, for \surd
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("height","1.2ex");
+ space.setAttribute("width","0em"); // probably no effect
+ node = AMcreateMmlNode(symbol.tag,result[0])
+// node.setAttribute("minsize","1"); // ignored
+// node = AMcreateMmlNode("mrow",node); // hopefully unnecessary
+ node.appendChild(space);
+ return [node,result[1],symbol.tag];
+ } else
+ return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
+ } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ var output = symbol.output;
+ if (isIE) {
+ if (symbol.input == "\\hat")
+ output = "\u0302";
+ else if (symbol.input == "\\widehat")
+ output = "\u005E";
+ else if (symbol.input == "\\bar")
+ output = "\u00AF";
+ else if (symbol.input == "\\grave")
+ output = "\u0300";
+ else if (symbol.input == "\\tilde")
+ output = "\u0303";
+ }
+ var node1 = AMcreateMmlNode("mo",document.createTextNode(output));
+ if (symbol.input == "\\vec" || symbol.input == "\\check")
+ // don't allow to stretch
+ node1.setAttribute("maxsize","1.2");
+ // why doesn't "1" work? \vec nearly disappears in firefox
+ if (isIE && symbol.input == "\\bar")
+ node1.setAttribute("maxsize","0.5");
+ if (symbol.input == "\\underbrace" || symbol.input == "\\underline")
+ node1.setAttribute("accentunder","true");
+ else
+ node1.setAttribute("accent","true");
+ node.appendChild(node1);
+ if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace")
+ node.ttype = UNDEROVER;
+ return [node,result[1],symbol.tag];
+ } else { // font change or displaystyle command
+ if (!isIE && typeof symbol.codes != "undefined") {
+ for (i=0; i<result[0].childNodes.length; i++)
+ if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
+ st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
+ result[0].childNodes[i].firstChild.nodeValue);
+ var newst = [];
+ for (var j=0; j<st.length; j++)
+ if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91) newst = newst +
+ String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]);
+ else newst = newst + st.charAt(j);
+ if (result[0].nodeName=="mi")
+ result[0]=AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst));
+ else result[0].replaceChild(AMcreateElementMathML("mo").
+ appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
+ }
+ }
+ node = AMcreateMmlNode(symbol.tag,result[0]);
+ node.setAttribute(symbol.atname,symbol.atval);
+ if (symbol.input == "\\scriptstyle" ||
+ symbol.input == "\\scriptscriptstyle")
+ node.setAttribute("displaystyle","false");
+ return [node,result[1],symbol.tag];
+ }
+ case BINARY:
+ result = AMparseSexpr(str);
+ if (result[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str,null];
+ result2 = AMparseSexpr(result[1]);
+ if (result2[0]==null) return [AMcreateMmlNode("mo",
+ document.createTextNode(symbol.input)),str,null];
+ if (symbol.input=="\\root" || symbol.input=="\\stackrel")
+ newFrag.appendChild(result2[0]);
+ newFrag.appendChild(result[0]);
+ if (symbol.input=="\\frac") newFrag.appendChild(result2[0]);
+ return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];
+ case INFIX:
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),
+ str,symbol.tag];
+ default:
+ return [AMcreateMmlNode(symbol.tag, //its a constant
+ document.createTextNode(symbol.output)),str,symbol.tag];
+ }
+}
+
+function AMparseIexpr(str) {
+ var symbol, sym1, sym2, node, result, tag, underover;
+ str = AMremoveCharsAndBlanks(str,0);
+ sym1 = AMgetSymbol(str);
+ result = AMparseSexpr(str);
+ node = result[0];
+ str = result[1];
+ tag = result[2];
+ symbol = AMgetSymbol(str);
+ if (symbol.ttype == INFIX) {
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ result = AMparseSexpr(str);
+ if (result[0] == null) // show box in place of missing argument
+ result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
+ str = result[1];
+ tag = result[2];
+ if (symbol.input == "_" || symbol.input == "^") {
+ sym2 = AMgetSymbol(str);
+ tag = null; // no space between x^2 and a following sin, cos, etc.
+// This is for \underbrace and \overbrace
+ underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER));
+// underover = (sym1.ttype == UNDEROVER);
+ if (symbol.input == "_" && sym2.input == "^") {
+ str = AMremoveCharsAndBlanks(str,sym2.input.length);
+ var res2 = AMparseSexpr(str);
+ str = res2[1];
+ tag = res2[2]; // leave space between x_1^2 and a following sin etc.
+ node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
+ node.appendChild(result[0]);
+ node.appendChild(res2[0]);
+ } else if (symbol.input == "_") {
+ node = AMcreateMmlNode((underover?"munder":"msub"),node);
+ node.appendChild(result[0]);
+ } else {
+ node = AMcreateMmlNode((underover?"mover":"msup"),node);
+ node.appendChild(result[0]);
+ }
+ node = AMcreateMmlNode("mrow",node); // so sum does not stretch
+ } else {
+ node = AMcreateMmlNode(symbol.tag,node);
+ if (symbol.input == "\\atop" || symbol.input == "\\choose")
+ node.setAttribute("linethickness","0ex");
+ node.appendChild(result[0]);
+ if (symbol.input == "\\choose")
+ node = AMcreateMmlNode("mfenced",node);
+ }
+ }
+ return [node,str,tag];
+}
+
+function AMparseExpr(str,rightbracket,matrix) {
+ var symbol, node, result, i, tag,
+ newFrag = document.createDocumentFragment();
+ do {
+ str = AMremoveCharsAndBlanks(str,0);
+ result = AMparseIexpr(str);
+ node = result[0];
+ str = result[1];
+ tag = result[2];
+ symbol = AMgetSymbol(str);
+ if (node!=undefined) {
+ if ((tag == "mn" || tag == "mi") && symbol!=null &&
+ typeof symbol.func == "boolean" && symbol.func) {
+ // Add space before \sin in 2\sin x or x\sin x
+ var space = AMcreateElementMathML("mspace");
+ space.setAttribute("width","0.167em");
+ node = AMcreateMmlNode("mrow",node);
+ node.appendChild(space);
+ }
+ newFrag.appendChild(node);
+ }
+ } while ((symbol.ttype != RIGHTBRACKET)
+ && symbol!=null && symbol.output!="");
+ tag = null;
+ if (symbol.ttype == RIGHTBRACKET) {
+ if (symbol.input == "\\right") { // right what?
+ str = AMremoveCharsAndBlanks(str,symbol.input.length);
+ symbol = AMgetSymbol(str);
+ if (symbol != null && symbol.input == ".")
+ symbol.invisible = true;
+ if (symbol != null)
+ tag = symbol.rtag;
+ }
+ if (symbol!=null)
+ str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return
+ var len = newFrag.childNodes.length;
+ if (matrix &&
+ len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
+ newFrag.childNodes[len-2].nodeName == "mo" &&
+ newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix
+ var pos = []; // positions of ampersands
+ var m = newFrag.childNodes.length;
+ for (i=0; matrix && i<m; i=i+2) {
+ pos[i] = [];
+ node = newFrag.childNodes[i];
+ for (var j=0; j<node.childNodes.length; j++)
+ if (node.childNodes[j].firstChild.nodeValue=="&")
+ pos[i][pos[i].length]=j;
+ }
+ var row, frag, n, k, table = document.createDocumentFragment();
+ for (i=0; i<m; i=i+2) {
+ row = document.createDocumentFragment();
+ frag = document.createDocumentFragment();
+ node = newFrag.firstChild; // <mrow> -&-&...&-&- </mrow>
+ n = node.childNodes.length;
+ k = 0;
+ for (j=0; j<n; j++) {
+ if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
+ node.removeChild(node.firstChild); //remove &
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ k++;
+ } else frag.appendChild(node.firstChild);
+ }
+ row.appendChild(AMcreateMmlNode("mtd",frag));
+ if (newFrag.childNodes.length>2) {
+ newFrag.removeChild(newFrag.firstChild); //remove <mrow> </mrow>
+ newFrag.removeChild(newFrag.firstChild); //remove <mo>&</mo>
+ }
+ table.appendChild(AMcreateMmlNode("mtr",row));
+ }
+ return [table,str];
+ }
+ if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
+ node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
+ newFrag.appendChild(node);
+ }
+ }
+ return [newFrag,str,tag];
+}
+
+function AMparseMath(str) {
+ var result, node = AMcreateElementMathML("mstyle");
+ if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
+ if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
+ node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]);
+ node = AMcreateMmlNode("math",node);
+ if (showasciiformulaonhover) //fixed by djhsu so newline
+ node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
+ if (mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
+ var fnode = AMcreateElementXHTML("font");
+ fnode.setAttribute("face",mathfontfamily);
+ fnode.appendChild(node);
+ return fnode;
+ }
+ return node;
+}
+
+function AMstrarr2docFrag(arr, linebreaks) {
+ var newFrag=document.createDocumentFragment();
+ var expr = false;
+ for (var i=0; i<arr.length; i++) {
+ if (expr) newFrag.appendChild(AMparseMath(arr[i]));
+ else {
+ var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[0])));
+ for (var j=1; j<arri.length; j++) {
+ newFrag.appendChild(AMcreateElementXHTML("p"));
+ newFrag.appendChild(AMcreateElementXHTML("span").
+ appendChild(document.createTextNode(arri[j])));
+ }
+ }
+ expr = !expr;
+ }
+ return newFrag;
+}
+
+function AMprocessNodeR(n, linebreaks) {
+ var mtch, str, arr, frg, i;
+ if (n.childNodes.length == 0) {
+ if ((n.nodeType!=8 || linebreaks) &&
+ n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
+ n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
+ n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
+ str = n.nodeValue;
+ if (!(str == null)) {
+ str = str.replace(/\r\n\r\n/g,"\n\n");
+ str = str.replace(/\x20+/g," ");
+ str = str.replace(/\s*\r\n/g," ");
+// DELIMITERS:
+ mtch = (str.indexOf("\$")==-1 ? false : true);
+ str = str.replace(/([^\\])\$/g,"$1 \$");
+ str = str.replace(/^\$/," \$"); // in case \$ at start of string
+ arr = str.split(" \$");
+ for (i=0; i<arr.length; i++)
+ arr[i]=arr[i].replace(/\\\$/g,"\$");
+ if (arr.length>1 || mtch) {
+ if (checkForMathML) {
+ checkForMathML = false;
+ var nd = AMisMathMLavailable();
+ AMnoMathML = nd != null;
+ if (AMnoMathML && notifyIfNoMathML)
+ if (alertIfNoMathML)
+ alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
+ or Firefox/Mozilla/Netscape");
+ else AMbody.insertBefore(nd,AMbody.childNodes[0]);
+ }
+ if (!AMnoMathML) {
+ frg = AMstrarr2docFrag(arr,n.nodeType==8);
+ var len = frg.childNodes.length;
+ n.parentNode.replaceChild(frg,n);
+ return len-1;
+ } else return 0;
+ }
+ }
+ } else return 0;
+ } else if (n.nodeName!="math") {
+ for (i=0; i<n.childNodes.length; i++)
+ i += AMprocessNodeR(n.childNodes[i], linebreaks);
+ }
+ return 0;
+}
+
+function AMprocessNode(n, linebreaks, spanclassAM) {
+ var frag,st;
+ if (spanclassAM!=null) {
+ frag = document.getElementsByTagName("span")
+ for (var i=0;i<frag.length;i++)
+ if (frag[i].className == "AM")
+ AMprocessNodeR(frag[i],linebreaks);
+ } else {
+ try {
+ st = n.innerHTML;
+ } catch(err) {}
+// DELIMITERS:
+ if (st==null || st.indexOf("\$")!=-1)
+ AMprocessNodeR(n,linebreaks);
+ }
+ if (isIE) { //needed to match size and font of formula to surrounding text
+ frag = document.getElementsByTagName('math');
+ for (var i=0;i<frag.length;i++) frag[i].update()
+ }
+}
+
+var AMbody;
+var AMnoMathML = false, AMtranslated = false;
+
+function translate(spanclassAM) {
+ if (!AMtranslated) { // run this only once
+ AMtranslated = true;
+ AMinitSymbols();
+ AMbody = document.getElementsByTagName("body")[0];
+ AMprocessNode(AMbody, false, spanclassAM);
+ }
+}
+
+if (isIE) { // avoid adding MathPlayer info explicitly to each webpage
+ document.write("<object id=\"mathplayer\"\
+ classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
+ document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
+}
+
+// GO1.1 Generic onload by Brothercake
+// http://www.brothercake.com/
+//onload function (replaces the onload="translate()" in the <body> tag)
+function generic()
+{
+ translate();
+};
+//setup onload function
+if(typeof window.addEventListener != 'undefined')
+{
+ //.. gecko, safari, konqueror and standard
+ window.addEventListener('load', generic, false);
+}
+else if(typeof document.addEventListener != 'undefined')
+{
+ //.. opera 7
+ document.addEventListener('load', generic, false);
+}
+else if(typeof window.attachEvent != 'undefined')
+{
+ //.. win/ie
+ window.attachEvent('onload', generic);
+}
+//** remove this condition to degrade older browsers
+else
+{
+ //.. mac/ie5 and anything else that gets this far
+ //if there's an existing onload function
+ if(typeof window.onload == 'function')
+ {
+ //store it
+ var existing = onload;
+ //add new onload handler
+ window.onload = function()
+ {
+ //call existing onload function
+ existing();
+ //call generic onload function
+ generic();
+ };
+ }
+ else
+ {
+ //setup onload function
+ window.onload = generic;
+ }
+}
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>LaTeXMathML Formulae</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
+capability has been added to AsciiDoc for users who are more familar
+with or prefer LaTeX math formulas to the
+<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>
+notation.</p></div>
+<div class="paragraph"><p><em>LaTeXMathML</em> is a derivative of
+<a href="https://asciidoc.org/asciimathml.html">ASCIIMathML</a>&#8201;&#8212;&#8201;in
+terms of usage the only difference it that you use the <code>latexmath</code>
+attribute instead of the <code>asciimath</code> attribute.</p></div>
+<div class="paragraph"><p><em>LaTeXMathML</em> processes LaTeX math formulas not arbitrary LaTeX (as
+<code>dblatex(1)</code> does). See the
+<a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a>
+website for details.</p></div>
+<div class="paragraph"><p>Here&#8217;s the <a href="latexmathml.txt">AsciiDoc source</a> that generated this
+page.</p></div>
+<div class="paragraph"><p>Some example <em>LaTeXMathML</em> formulas:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+$R_x = 10.0 \times \sin(R_\phi)$
+</p>
+</li>
+<li>
+<p>
+$\sum_{n=1}^\infty \frac{1}{2^n}$
+</p>
+</li>
+<li>
+<p>
+$\lim_{x\to\infty} f(x) = k \choose r + \frac ab
+ \sum_{n=1}^\infty a_n + \displaystyle{ \left\{ \frac{1}{13}
+ \sum_{n=1}^\infty b_n \right\} }$
+</p>
+</li>
+<li>
+<p>
+$\$\alpha + \$\beta = \$(\alpha + \beta)$
+</p>
+</li>
+<li>
+<p>
+$\begin{eqnarray} x &amp; = &amp; \frac{-7 \pm
+ \sqrt{49 - 24}}{6} \\ &amp; = &amp; -2 \textrm{ or } -\frac13.
+ \end{eqnarray}$
+</p>
+</li>
+<li>
+<p>
+$\displaystyle{ V_i = C_0 - C_3
+ \frac{C_1\cos(\theta_i+C_3)}{C_4+C_1\cos(\theta_i+C_2)} }$
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/newtables-docbook.xml b/tests/data/newtables-docbook.xml
index 54e469d..b2bf22c 100644
--- a/tests/data/newtables-docbook.xml
+++ b/tests/data/newtables-docbook.xml
@@ -1,1313 +1,1313 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>AsciiDoc New tables</title>
-</articleinfo>
-<simpara><emphasis role="strong">New in version 8.3.0</emphasis></simpara>
-<simpara>I&#8217;ve finally come up with a <emphasis>new tables</emphasis> syntax that I&#8217;m happy with
-and can at last remove this footnote from the <emphasis>User Guide</emphasis>: &#8220;The
-current table syntax is overly complicated and unwieldy to edit,
-hopefully a more usable syntax will appear in future versions of
-AsciiDoc.&#8221;</simpara>
-<sidebar>
-<title>Update</title>
-<simpara>The following additions were made at AsciiDoc 8.4.4:</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Cell column and row spanning.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Styles can be applied per cell.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vertical cell alignment can be applied to columns and cells.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>See the examples at the end of this document.</simpara>
-</sidebar>
-<simpara>At first glance it doesn&#8217;t look much different to the old syntax but
-it&#8217;s a lot more flexible, easier to enter and supports a lot of column
-styles (for example the <emphasis>asciidoc</emphasis> style supports AsciiDoc block and
-inline elements). The old tables syntax has been deprecated but is
-currently still processed. Here are some examples of AsciiDoc <emphasis>new
-tables</emphasis>:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Simple table</title>
-<?dbhtml table-width="15%"?>
-<?dbfo table-width="15%"?>
-<?dblatex table-width="15%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="21*"/>
-<colspec colname="col_2" colwidth="21*"/>
-<colspec colname="col_3" colwidth="21*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>A</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>B</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>C</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="15%"]
-|=======
-|1 |2 |A
-|3 |4 |B
-|5 |6 |C
-|=======</screen>
-</para></formalpara>
-<table
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>Table with title, header and footer</title>
-<?dbhtml table-width="40%"?>
-<?dbfo table-width="40%"?>
-<?dblatex table-width="40%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="85*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Column 1 </entry>
-<entry align="left" valign="top">Column 2</entry>
-</row>
-</thead>
-<tfoot>
-<row>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>Three items</simpara></entry>
-</row>
-</tfoot>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 1</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 2</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 3</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.An example table
-[width="40%",frame="topbot",options="header,footer"]
-|======================
-|Column 1 |Column 2
-|1 |Item 1
-|2 |Item 2
-|3 |Item 3
-|6 |Three items
-|======================</screen>
-</para></formalpara>
-<table
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>Columns formatted with strong, monospaced and emphasis styles</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<colspec colname="col_3" colwidth="85*"/>
-<thead>
-<row>
-<entry align="right" valign="top"> </entry>
-<entry align="center" valign="top" namest="col_2" nameend="col_3">Columns 2 and 3</entry>
-</row>
-</thead>
-<tfoot>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">footer 1</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>footer 2</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>footer 3</emphasis></simpara></entry>
-</row>
-</tfoot>
-<tbody>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">1</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 1</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 1</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 2</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 2</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">3</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 3</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 3</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 4</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 4</emphasis></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.An example table
-[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
-|==========================
-| 2+|Columns 2 and 3
-|1 |Item 1 |Item 1
-|2 |Item 2 |Item 2
-|3 |Item 3 |Item 3
-|4 |Item 4 |Item 4
-|footer 1|footer 2|footer 3
-|==========================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>A table with externally sourced CSV data</title>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="11*"/>
-<colspec colname="col_2" colwidth="22*"/>
-<colspec colname="col_3" colwidth="22*"/>
-<colspec colname="col_4" colwidth="22*"/>
-<colspec colname="col_5" colwidth="22*"/>
-<thead>
-<row>
-<entry align="center" valign="top">ID</entry>
-<entry align="left" valign="top">Customer Name</entry>
-<entry align="left" valign="top">Contact Name</entry>
-<entry align="left" valign="top">Customer Address</entry>
-<entry align="left" valign="top">Phone</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center" valign="top"><simpara>AROUT</simpara></entry>
-<entry align="left" valign="top"><simpara>Around the Horn</simpara></entry>
-<entry align="left" valign="top"><simpara>Thomas Hardy</simpara></entry>
-<entry align="left" valign="top"><simpara>120 Hanover Sq.
-London</simpara></entry>
-<entry align="left" valign="top"><simpara>(171) 555-7788</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BERGS</simpara></entry>
-<entry align="left" valign="top"><simpara>Berglunds snabbkop</simpara></entry>
-<entry align="left" valign="top"><simpara>Christina Berglund</simpara></entry>
-<entry align="left" valign="top"><simpara>Berguvsvagen 8
-Lulea</simpara></entry>
-<entry align="left" valign="top"><simpara>0921-12 34 65</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BLAUS</simpara></entry>
-<entry align="left" valign="top"><simpara>Blauer See Delikatessen</simpara></entry>
-<entry align="left" valign="top"><simpara>Hanna Moos</simpara></entry>
-<entry align="left" valign="top"><simpara>Forsterstr. 57
-Mannheim</simpara></entry>
-<entry align="left" valign="top"><simpara>0621-08460</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BLONP</simpara></entry>
-<entry align="left" valign="top"><simpara>Blondel pere et fils</simpara></entry>
-<entry align="left" valign="top"><simpara>Frederique Citeaux</simpara></entry>
-<entry align="left" valign="top"><simpara>24, place Kleber
-Strasbourg</simpara></entry>
-<entry align="left" valign="top"><simpara>88.60.15.31</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BOLID</simpara></entry>
-<entry align="left" valign="top"><simpara>Bolido Comidas preparadas</simpara></entry>
-<entry align="left" valign="top"><simpara>Martin Sommer</simpara></entry>
-<entry align="left" valign="top"><simpara>C/ Araquil, 67
-Madrid</simpara></entry>
-<entry align="left" valign="top"><simpara>(91) 555 22 82</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BONAP</simpara></entry>
-<entry align="left" valign="top"><simpara>Bon app'</simpara></entry>
-<entry align="left" valign="top"><simpara>Laurence Lebihan</simpara></entry>
-<entry align="left" valign="top"><simpara>12, rue des Bouchers
-Marseille</simpara></entry>
-<entry align="left" valign="top"><simpara>91.24.45.40</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BOTTM</simpara></entry>
-<entry align="left" valign="top"><simpara>Bottom-Dollar Markets</simpara></entry>
-<entry align="left" valign="top"><simpara>Elizabeth Lincoln</simpara></entry>
-<entry align="left" valign="top"><simpara>23 Tsawassen Blvd.
-Tsawassen</simpara></entry>
-<entry align="left" valign="top"><simpara>(604) 555-4729</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BSBEV</simpara></entry>
-<entry align="left" valign="top"><simpara>B&#8217;s Beverages</simpara></entry>
-<entry align="left" valign="top"><simpara>Victoria Ashworth</simpara></entry>
-<entry align="left" valign="top"><simpara>Fauntleroy Circus
-London</simpara></entry>
-<entry align="left" valign="top"><simpara>(171) 555-1212</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>CACTU</simpara></entry>
-<entry align="left" valign="top"><simpara>Cactus Comidas para llevar</simpara></entry>
-<entry align="left" valign="top"><simpara>Patricio Simpson</simpara></entry>
-<entry align="left" valign="top"><simpara>Cerrito 333
-Buenos Aires</simpara></entry>
-<entry align="left" valign="top"><simpara>(1) 135-5555</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen> [format="csv",cols="^1,4*2",options="header"]
- |===================================================
- ID,Customer Name,Contact Name,Customer Address,Phone
- include::customers.csv[]
- |===================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>DVS formatted table</title>
-<?dbhtml table-width="70%"?>
-<?dbfo table-width="70%"?>
-<?dblatex table-width="70%"?>
-<tgroup cols="7">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<colspec colname="col_6" colwidth="43*"/>
-<colspec colname="col_7" colwidth="43*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>root</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>0</simpara></entry>
-<entry align="left" valign="top"><simpara>0</simpara></entry>
-<entry align="left" valign="top"><simpara>root</simpara></entry>
-<entry align="left" valign="top"><simpara>/root</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/bash</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>daemon</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>daemon</simpara></entry>
-<entry align="left" valign="top"><simpara>/usr/sbin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>bin</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>sys</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>sys</simpara></entry>
-<entry align="left" valign="top"><simpara>/dev</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>sync</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>65534</simpara></entry>
-<entry align="left" valign="top"><simpara>sync</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sync</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>games</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>60</simpara></entry>
-<entry align="left" valign="top"><simpara>games</simpara></entry>
-<entry align="left" valign="top"><simpara>/usr/games</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="70%",format="dsv"]
-|====================================
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-|====================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertical source data</title>
-<?dbhtml table-width="80%"?>
-<?dbfo table-width="80%"?>
-<?dblatex table-width="80%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="60*"/>
-<colspec colname="col_2" colwidth="40*"/>
-<colspec colname="col_3" colwidth="40*"/>
-<colspec colname="col_4" colwidth="200*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Date </entry>
-<entry align="center" valign="top">Duration </entry>
-<entry align="center" valign="top">Avg HR </entry>
-<entry align="left" valign="top">Notes</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>10:24</simpara></entry>
-<entry align="center" valign="top"><simpara>157</simpara></entry>
-<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>23:03</simpara></entry>
-<entry align="center" valign="top"><simpara>152</simpara></entry>
-<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>40:00</simpara></entry>
-<entry align="center" valign="top"><simpara>145</simpara></entry>
-<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>Short cells can be entered horizontally, longer cells vertically. The
-default behavior is to strip leading and trailing blank lines within a
-cell. These characteristics aid readability and data entry.</simpara>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Windtrainer workouts
-[width="80%",cols="3,^2,^2,10",options="header"]
-|=========================================================
-|Date |Duration |Avg HR |Notes
-
-|22-Aug-08 |10:24 | 157 |
-Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.
-
-|22-Aug-08 |23:03 | 152 |
-Back-to-back with previous interval.
-
-|24-Aug-08 |40:00 | 145 |
-Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).
-
-|=========================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Default and verse styles</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="50*"/>
-<colspec colname="col_2" colwidth="50*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Default paragraphs </entry>
-<entry align="center" valign="top">Centered verses</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Per id.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara></entry>
-<entry align="center" valign="top"><literallayout>Per id.
-
-Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[cols=",^v",options="header"]
-|===================================
-|Default paragraphs |Centered verses
-2*|Per id.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-|===================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertial headings</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> </entry>
-<entry align="left" valign="top">West </entry>
-<entry align="left" valign="top">Central </entry>
-<entry align="left" valign="top">East </entry>
-<entry align="left" valign="top"> Total</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q1</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>270</simpara></entry>
-<entry align="left" valign="top"><simpara>292</simpara></entry>
-<entry align="left" valign="top"><simpara>342</simpara></entry>
-<entry align="left" valign="top"><simpara>904</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q2</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>322</simpara></entry>
-<entry align="left" valign="top"><simpara>276</simpara></entry>
-<entry align="left" valign="top"><simpara>383</simpara></entry>
-<entry align="left" valign="top"><simpara>981</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q3</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>298</simpara></entry>
-<entry align="left" valign="top"><simpara>252</simpara></entry>
-<entry align="left" valign="top"><simpara>274</simpara></entry>
-<entry align="left" valign="top"><simpara>824</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q4</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>344</simpara></entry>
-<entry align="left" valign="top"><simpara>247</simpara></entry>
-<entry align="left" valign="top"><simpara>402</simpara></entry>
-<entry align="left" valign="top"><simpara>993</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Horizontal and vertial headings
-[cols="h,4*",options="header",width="50%"]
-|==================================
-| |West |Central |East | Total
-|Q1 |270 |292 |342 | 904
-|Q2 |322 |276 |383 | 981
-|Q3 |298 |252 |274 | 824
-|Q4 |344 |247 |402 | 993
-|==================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="0" colsep="1"
->
-<title>AsciiDoc style in first column, Literal in second</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="50*"/>
-<colspec colname="col_2" colwidth="50*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Output markup </entry>
-<entry align="left" valign="top">AsciiDoc source</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<screen>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</screen>
-<formalpara><title>Code filter example</title><para>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</para></formalpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-<entry align="left" valign="top"><literallayout class="monospaced">Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[cols="asciidoc,literal",options="header",grid="cols"]
-|==================================
-|Output markup |AsciiDoc source
-2*|
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Cell containing lots of example markup elements</title>
-<tgroup cols="1">
-<colspec colname="col_1" colwidth="100*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>URLs</emphasis>:
-<ulink url="https://asciidoc.org/">The AsciiDoc home page</ulink>,
-<ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink>,
-<ulink url="mailto:joe.bloggs@example.com">email Joe Bloggs</ulink>,
-<ulink url="mailto:joe.bloggs@example.com">joe.bloggs@example.com</ulink>,
-<ulink url="callto:joe.bloggs">joe.bloggs</ulink>.</simpara>
-<simpara><emphasis>Link</emphasis>: See <link linkend="X1">AsciiDoc source</link>.</simpara>
-<simpara><emphasis>Emphasized text</emphasis>, <emphasis role="strong">Strong text</emphasis>, <literal>Monospaced text</literal>, &#8220;Quoted text&#8221;.</simpara>
-<simpara><emphasis>Subscripts and superscripts</emphasis>: e<superscript>&#960;i</superscript>+1 = 0. H<subscript>2</subscript>O and x<superscript>10</superscript>.
-Some <superscript>super text</superscript> and <subscript>some sub text</subscript></simpara>
-<simpara><emphasis>Replacements</emphasis>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
-double arrow, &#8656; left double arrow.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara id="X1"><title>AsciiDoc source</title><para>
-<screen>|====================================================================
-|'URLs':
-https://asciidoc.org/[The AsciiDoc home page],
-https://asciidoc.org/,
-mailto:joe.bloggs@example.com[email Joe Bloggs],
-joe.bloggs@example.com,
-callto:joe.bloggs[].
-
-'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
-
-'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
-
-'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
-Some ^super text^ and ~some sub text~
-
-'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
--- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
-double arrow, &lt;= left double arrow.
-|====================================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Nested table</title>
-<?dbhtml table-width="75%"?>
-<?dbfo table-width="75%"?>
-<?dblatex table-width="75%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="106*"/>
-<colspec colname="col_2" colwidth="212*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Normal cell</simpara></entry>
-<entry align="left" valign="top"><simpara>Cell with nested table</simpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="66*"/>
-<colspec colname="col_2" colwidth="33*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Nested table cell 1</simpara></entry>
-<entry align="left" valign="top"><simpara>Nested table cell 2</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="75%",cols="1,2a"]
-|==============================================
-|Normal cell
-
-|Cell with nested table
-
-[cols="2,1"]
-!==============================================
-!Nested table cell 1 !Nested table cell 2
-!==============================================
-
-|==============================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Spans, alignments and styles</title>
-<?dbhtml table-width="25%"?>
-<?dbfo table-width="25%"?>
-<?dblatex table-width="25%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="27*"/>
-<colspec colname="col_2" colwidth="27*"/>
-<colspec colname="col_3" colwidth="27*"/>
-<colspec colname="col_4" colwidth="27*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>1</emphasis></simpara></entry>
-<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara>3</simpara></entry>
-<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis>5</emphasis></simpara></entry>
-<entry align="center" valign="middle" namest="col_2" nameend="col_3" morerows="1"><simpara><literal>6</literal></simpara></entry>
-<entry align="left" valign="bottom" morerows="2"><simpara><literal>7</literal></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis>8</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>9</emphasis></simpara></entry>
-<entry align="right" valign="top" namest="col_2" nameend="col_3"><simpara><literal>10</literal></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Spans, alignments and styles
-[cols="e,m,^,&gt;s",width="25%"]
-|================
-|1 &gt;s|2 |3 |4
-^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
-^|8
-|9 2+&gt;|10
-|================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Three panes</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="33*"/>
-<colspec colname="col_2" colwidth="66*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><bridgehead id="_top_left_pane" renderas="sect2">Top Left Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara></entry>
-<entry align="left" valign="top" morerows="1"><bridgehead id="_right_pane" renderas="sect2">Right Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<screen>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</screen>
-<formalpara><title>Code filter example</title><para>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</para></formalpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-</row>
-<row>
-<entry align="left" valign="top"><bridgehead id="_bottom_left_pane" renderas="sect2">Bottom Left Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Three panes
-[cols="a,2a"]
-|==================================
-|
-[float]
-Top Left Pane
-~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-.2+|
-[float]
-Right Pane
-~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|
-[float]
-Bottom Left Pane
-~~~~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</screen>
-</para></formalpara>
-<section id="_combinations_of_emphasis_align_emphasis_emphasis_frame_emphasis_emphasis_grid_emphasis_emphasis_valign_emphasis_and_emphasis_halign_emphasis_attributes">
-<title>Combinations of <emphasis>align</emphasis>, <emphasis>frame</emphasis>, <emphasis>grid</emphasis>, <emphasis>valign</emphasis> and <emphasis>halign</emphasis> attributes</title>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="20*"/>
-<colspec colname="col_2" colwidth="20*"/>
-<colspec colname="col_3" colwidth="20*"/>
-<colspec colname="col_4" colwidth="20*"/>
-<colspec colname="col_5" colwidth="20*"/>
-<thead>
-<row>
-<entry align="left" valign="top"></entry>
-<entry align="left" valign="top">frame </entry>
-<entry align="left" valign="top"> grid </entry>
-<entry align="left" valign="top">valign </entry>
-<entry align="left" valign="top">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="left" valign="top"><simpara>all</simpara></entry>
-<entry align="left" valign="top"><simpara>all</simpara></entry>
-<entry align="left" valign="top"><simpara>top</simpara></entry>
-<entry align="left" valign="top"><simpara>left</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: all
-:grid: all
-:halign: left
-:valign: top
-
-[options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<table
-frame="sides"
-rowsep="1" colsep="0"
->
-<title>Table test</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="center" valign="middle"></entry>
-<entry align="center" valign="middle">frame </entry>
-<entry align="center" valign="middle"> grid </entry>
-<entry align="center" valign="middle">valign </entry>
-<entry align="center" valign="middle">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center" valign="middle"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="center" valign="middle"><simpara>sides</simpara></entry>
-<entry align="center" valign="middle"><simpara>rows</simpara></entry>
-<entry align="center" valign="middle"><simpara>middle</simpara></entry>
-<entry align="center" valign="middle"><simpara>center</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: sides
-:grid: rows
-:halign: center
-:valign: middle
-
-.Table test
-[width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<informaltable
-frame="topbot"
-rowsep="0" colsep="1"
->
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="right" valign="bottom"></entry>
-<entry align="right" valign="bottom">frame </entry>
-<entry align="right" valign="bottom"> grid </entry>
-<entry align="right" valign="bottom">valign </entry>
-<entry align="right" valign="bottom">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="right" valign="bottom"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="right" valign="bottom"><simpara>topbot</simpara></entry>
-<entry align="right" valign="bottom"><simpara>cols</simpara></entry>
-<entry align="right" valign="bottom"><simpara>bottom</simpara></entry>
-<entry align="right" valign="bottom"><simpara>right</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: topbot
-:grid: cols
-:halign: right
-:valign: bottom
-
-[align="right",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<informaltable
-frame="none"
-rowsep="0" colsep="0"
->
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="left" valign="top"></entry>
-<entry align="left" valign="top">frame </entry>
-<entry align="left" valign="top"> grid </entry>
-<entry align="left" valign="top">valign </entry>
-<entry align="left" valign="top">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="left" valign="top"><simpara>none</simpara></entry>
-<entry align="left" valign="top"><simpara>none</simpara></entry>
-<entry align="left" valign="top"><simpara>top</simpara></entry>
-<entry align="left" valign="top"><simpara>left</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: none
-:grid: none
-:halign: left
-:valign: top
-
-[align="center",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>AsciiDoc New tables</title>
+</articleinfo>
+<simpara><emphasis role="strong">New in version 8.3.0</emphasis></simpara>
+<simpara>I&#8217;ve finally come up with a <emphasis>new tables</emphasis> syntax that I&#8217;m happy with
+and can at last remove this footnote from the <emphasis>User Guide</emphasis>: &#8220;The
+current table syntax is overly complicated and unwieldy to edit,
+hopefully a more usable syntax will appear in future versions of
+AsciiDoc.&#8221;</simpara>
+<sidebar>
+<title>Update</title>
+<simpara>The following additions were made at AsciiDoc 8.4.4:</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Cell column and row spanning.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Styles can be applied per cell.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vertical cell alignment can be applied to columns and cells.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>See the examples at the end of this document.</simpara>
+</sidebar>
+<simpara>At first glance it doesn&#8217;t look much different to the old syntax but
+it&#8217;s a lot more flexible, easier to enter and supports a lot of column
+styles (for example the <emphasis>asciidoc</emphasis> style supports AsciiDoc block and
+inline elements). The old tables syntax has been deprecated but is
+currently still processed. Here are some examples of AsciiDoc <emphasis>new
+tables</emphasis>:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Simple table</title>
+<?dbhtml table-width="15%"?>
+<?dbfo table-width="15%"?>
+<?dblatex table-width="15%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="21*"/>
+<colspec colname="col_2" colwidth="21*"/>
+<colspec colname="col_3" colwidth="21*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>A</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>B</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>C</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="15%"]
+|=======
+|1 |2 |A
+|3 |4 |B
+|5 |6 |C
+|=======</screen>
+</para></formalpara>
+<table
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>Table with title, header and footer</title>
+<?dbhtml table-width="40%"?>
+<?dbfo table-width="40%"?>
+<?dblatex table-width="40%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="85*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Column 1 </entry>
+<entry align="left" valign="top">Column 2</entry>
+</row>
+</thead>
+<tfoot>
+<row>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>Three items</simpara></entry>
+</row>
+</tfoot>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 1</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 2</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 3</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.An example table
+[width="40%",frame="topbot",options="header,footer"]
+|======================
+|Column 1 |Column 2
+|1 |Item 1
+|2 |Item 2
+|3 |Item 3
+|6 |Three items
+|======================</screen>
+</para></formalpara>
+<table
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>Columns formatted with strong, monospaced and emphasis styles</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<colspec colname="col_3" colwidth="85*"/>
+<thead>
+<row>
+<entry align="right" valign="top"> </entry>
+<entry align="center" valign="top" namest="col_2" nameend="col_3">Columns 2 and 3</entry>
+</row>
+</thead>
+<tfoot>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">footer 1</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>footer 2</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>footer 3</emphasis></simpara></entry>
+</row>
+</tfoot>
+<tbody>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">1</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 1</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 1</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 2</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 2</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">3</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 3</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 3</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 4</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 4</emphasis></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.An example table
+[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
+|==========================
+| 2+|Columns 2 and 3
+|1 |Item 1 |Item 1
+|2 |Item 2 |Item 2
+|3 |Item 3 |Item 3
+|4 |Item 4 |Item 4
+|footer 1|footer 2|footer 3
+|==========================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>A table with externally sourced CSV data</title>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="11*"/>
+<colspec colname="col_2" colwidth="22*"/>
+<colspec colname="col_3" colwidth="22*"/>
+<colspec colname="col_4" colwidth="22*"/>
+<colspec colname="col_5" colwidth="22*"/>
+<thead>
+<row>
+<entry align="center" valign="top">ID</entry>
+<entry align="left" valign="top">Customer Name</entry>
+<entry align="left" valign="top">Contact Name</entry>
+<entry align="left" valign="top">Customer Address</entry>
+<entry align="left" valign="top">Phone</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="center" valign="top"><simpara>AROUT</simpara></entry>
+<entry align="left" valign="top"><simpara>Around the Horn</simpara></entry>
+<entry align="left" valign="top"><simpara>Thomas Hardy</simpara></entry>
+<entry align="left" valign="top"><simpara>120 Hanover Sq.
+London</simpara></entry>
+<entry align="left" valign="top"><simpara>(171) 555-7788</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BERGS</simpara></entry>
+<entry align="left" valign="top"><simpara>Berglunds snabbkop</simpara></entry>
+<entry align="left" valign="top"><simpara>Christina Berglund</simpara></entry>
+<entry align="left" valign="top"><simpara>Berguvsvagen 8
+Lulea</simpara></entry>
+<entry align="left" valign="top"><simpara>0921-12 34 65</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BLAUS</simpara></entry>
+<entry align="left" valign="top"><simpara>Blauer See Delikatessen</simpara></entry>
+<entry align="left" valign="top"><simpara>Hanna Moos</simpara></entry>
+<entry align="left" valign="top"><simpara>Forsterstr. 57
+Mannheim</simpara></entry>
+<entry align="left" valign="top"><simpara>0621-08460</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BLONP</simpara></entry>
+<entry align="left" valign="top"><simpara>Blondel pere et fils</simpara></entry>
+<entry align="left" valign="top"><simpara>Frederique Citeaux</simpara></entry>
+<entry align="left" valign="top"><simpara>24, place Kleber
+Strasbourg</simpara></entry>
+<entry align="left" valign="top"><simpara>88.60.15.31</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BOLID</simpara></entry>
+<entry align="left" valign="top"><simpara>Bolido Comidas preparadas</simpara></entry>
+<entry align="left" valign="top"><simpara>Martin Sommer</simpara></entry>
+<entry align="left" valign="top"><simpara>C/ Araquil, 67
+Madrid</simpara></entry>
+<entry align="left" valign="top"><simpara>(91) 555 22 82</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BONAP</simpara></entry>
+<entry align="left" valign="top"><simpara>Bon app'</simpara></entry>
+<entry align="left" valign="top"><simpara>Laurence Lebihan</simpara></entry>
+<entry align="left" valign="top"><simpara>12, rue des Bouchers
+Marseille</simpara></entry>
+<entry align="left" valign="top"><simpara>91.24.45.40</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BOTTM</simpara></entry>
+<entry align="left" valign="top"><simpara>Bottom-Dollar Markets</simpara></entry>
+<entry align="left" valign="top"><simpara>Elizabeth Lincoln</simpara></entry>
+<entry align="left" valign="top"><simpara>23 Tsawassen Blvd.
+Tsawassen</simpara></entry>
+<entry align="left" valign="top"><simpara>(604) 555-4729</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BSBEV</simpara></entry>
+<entry align="left" valign="top"><simpara>B&#8217;s Beverages</simpara></entry>
+<entry align="left" valign="top"><simpara>Victoria Ashworth</simpara></entry>
+<entry align="left" valign="top"><simpara>Fauntleroy Circus
+London</simpara></entry>
+<entry align="left" valign="top"><simpara>(171) 555-1212</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>CACTU</simpara></entry>
+<entry align="left" valign="top"><simpara>Cactus Comidas para llevar</simpara></entry>
+<entry align="left" valign="top"><simpara>Patricio Simpson</simpara></entry>
+<entry align="left" valign="top"><simpara>Cerrito 333
+Buenos Aires</simpara></entry>
+<entry align="left" valign="top"><simpara>(1) 135-5555</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen> [format="csv",cols="^1,4*2",options="header"]
+ |===================================================
+ ID,Customer Name,Contact Name,Customer Address,Phone
+ include::customers.csv[]
+ |===================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>DVS formatted table</title>
+<?dbhtml table-width="70%"?>
+<?dbfo table-width="70%"?>
+<?dblatex table-width="70%"?>
+<tgroup cols="7">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<colspec colname="col_6" colwidth="43*"/>
+<colspec colname="col_7" colwidth="43*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>root</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>0</simpara></entry>
+<entry align="left" valign="top"><simpara>0</simpara></entry>
+<entry align="left" valign="top"><simpara>root</simpara></entry>
+<entry align="left" valign="top"><simpara>/root</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/bash</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>daemon</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>daemon</simpara></entry>
+<entry align="left" valign="top"><simpara>/usr/sbin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>bin</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>sys</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>sys</simpara></entry>
+<entry align="left" valign="top"><simpara>/dev</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>sync</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>65534</simpara></entry>
+<entry align="left" valign="top"><simpara>sync</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sync</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>games</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>60</simpara></entry>
+<entry align="left" valign="top"><simpara>games</simpara></entry>
+<entry align="left" valign="top"><simpara>/usr/games</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="70%",format="dsv"]
+|====================================
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+|====================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertical source data</title>
+<?dbhtml table-width="80%"?>
+<?dbfo table-width="80%"?>
+<?dblatex table-width="80%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="60*"/>
+<colspec colname="col_2" colwidth="40*"/>
+<colspec colname="col_3" colwidth="40*"/>
+<colspec colname="col_4" colwidth="200*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Date </entry>
+<entry align="center" valign="top">Duration </entry>
+<entry align="center" valign="top">Avg HR </entry>
+<entry align="left" valign="top">Notes</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>10:24</simpara></entry>
+<entry align="center" valign="top"><simpara>157</simpara></entry>
+<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>23:03</simpara></entry>
+<entry align="center" valign="top"><simpara>152</simpara></entry>
+<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>40:00</simpara></entry>
+<entry align="center" valign="top"><simpara>145</simpara></entry>
+<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>Short cells can be entered horizontally, longer cells vertically. The
+default behavior is to strip leading and trailing blank lines within a
+cell. These characteristics aid readability and data entry.</simpara>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Windtrainer workouts
+[width="80%",cols="3,^2,^2,10",options="header"]
+|=========================================================
+|Date |Duration |Avg HR |Notes
+
+|22-Aug-08 |10:24 | 157 |
+Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.
+
+|22-Aug-08 |23:03 | 152 |
+Back-to-back with previous interval.
+
+|24-Aug-08 |40:00 | 145 |
+Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).
+
+|=========================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Default and verse styles</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="50*"/>
+<colspec colname="col_2" colwidth="50*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Default paragraphs </entry>
+<entry align="center" valign="top">Centered verses</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Per id.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara></entry>
+<entry align="center" valign="top"><literallayout>Per id.
+
+Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[cols=",^v",options="header"]
+|===================================
+|Default paragraphs |Centered verses
+2*|Per id.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+|===================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertial headings</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> </entry>
+<entry align="left" valign="top">West </entry>
+<entry align="left" valign="top">Central </entry>
+<entry align="left" valign="top">East </entry>
+<entry align="left" valign="top"> Total</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q1</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>270</simpara></entry>
+<entry align="left" valign="top"><simpara>292</simpara></entry>
+<entry align="left" valign="top"><simpara>342</simpara></entry>
+<entry align="left" valign="top"><simpara>904</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q2</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>322</simpara></entry>
+<entry align="left" valign="top"><simpara>276</simpara></entry>
+<entry align="left" valign="top"><simpara>383</simpara></entry>
+<entry align="left" valign="top"><simpara>981</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q3</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>298</simpara></entry>
+<entry align="left" valign="top"><simpara>252</simpara></entry>
+<entry align="left" valign="top"><simpara>274</simpara></entry>
+<entry align="left" valign="top"><simpara>824</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q4</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>344</simpara></entry>
+<entry align="left" valign="top"><simpara>247</simpara></entry>
+<entry align="left" valign="top"><simpara>402</simpara></entry>
+<entry align="left" valign="top"><simpara>993</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Horizontal and vertial headings
+[cols="h,4*",options="header",width="50%"]
+|==================================
+| |West |Central |East | Total
+|Q1 |270 |292 |342 | 904
+|Q2 |322 |276 |383 | 981
+|Q3 |298 |252 |274 | 824
+|Q4 |344 |247 |402 | 993
+|==================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="0" colsep="1"
+>
+<title>AsciiDoc style in first column, Literal in second</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="50*"/>
+<colspec colname="col_2" colwidth="50*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Output markup </entry>
+<entry align="left" valign="top">AsciiDoc source</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<screen>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</screen>
+<formalpara><title>Code filter example</title><para>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</para></formalpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+<entry align="left" valign="top"><literallayout class="monospaced">Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[cols="asciidoc,literal",options="header",grid="cols"]
+|==================================
+|Output markup |AsciiDoc source
+2*|
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Cell containing lots of example markup elements</title>
+<tgroup cols="1">
+<colspec colname="col_1" colwidth="100*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>URLs</emphasis>:
+<ulink url="https://asciidoc.org/">The AsciiDoc home page</ulink>,
+<ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink>,
+<ulink url="mailto:joe.bloggs@example.com">email Joe Bloggs</ulink>,
+<ulink url="mailto:joe.bloggs@example.com">joe.bloggs@example.com</ulink>,
+<ulink url="callto:joe.bloggs">joe.bloggs</ulink>.</simpara>
+<simpara><emphasis>Link</emphasis>: See <link linkend="X1">AsciiDoc source</link>.</simpara>
+<simpara><emphasis>Emphasized text</emphasis>, <emphasis role="strong">Strong text</emphasis>, <literal>Monospaced text</literal>, &#8220;Quoted text&#8221;.</simpara>
+<simpara><emphasis>Subscripts and superscripts</emphasis>: e<superscript>&#960;i</superscript>+1 = 0. H<subscript>2</subscript>O and x<superscript>10</superscript>.
+Some <superscript>super text</superscript> and <subscript>some sub text</subscript></simpara>
+<simpara><emphasis>Replacements</emphasis>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
+double arrow, &#8656; left double arrow.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara id="X1"><title>AsciiDoc source</title><para>
+<screen>|====================================================================
+|'URLs':
+https://asciidoc.org/[The AsciiDoc home page],
+https://asciidoc.org/,
+mailto:joe.bloggs@example.com[email Joe Bloggs],
+joe.bloggs@example.com,
+callto:joe.bloggs[].
+
+'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
+
+'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
+
+'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
+Some ^super text^ and ~some sub text~
+
+'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
+-- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
+double arrow, &lt;= left double arrow.
+|====================================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Nested table</title>
+<?dbhtml table-width="75%"?>
+<?dbfo table-width="75%"?>
+<?dblatex table-width="75%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="106*"/>
+<colspec colname="col_2" colwidth="212*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Normal cell</simpara></entry>
+<entry align="left" valign="top"><simpara>Cell with nested table</simpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="66*"/>
+<colspec colname="col_2" colwidth="33*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Nested table cell 1</simpara></entry>
+<entry align="left" valign="top"><simpara>Nested table cell 2</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="75%",cols="1,2a"]
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+[cols="2,1"]
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Spans, alignments and styles</title>
+<?dbhtml table-width="25%"?>
+<?dbfo table-width="25%"?>
+<?dblatex table-width="25%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="27*"/>
+<colspec colname="col_2" colwidth="27*"/>
+<colspec colname="col_3" colwidth="27*"/>
+<colspec colname="col_4" colwidth="27*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>1</emphasis></simpara></entry>
+<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara>3</simpara></entry>
+<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis>5</emphasis></simpara></entry>
+<entry align="center" valign="middle" namest="col_2" nameend="col_3" morerows="1"><simpara><literal>6</literal></simpara></entry>
+<entry align="left" valign="bottom" morerows="2"><simpara><literal>7</literal></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis>8</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>9</emphasis></simpara></entry>
+<entry align="right" valign="top" namest="col_2" nameend="col_3"><simpara><literal>10</literal></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Spans, alignments and styles
+[cols="e,m,^,&gt;s",width="25%"]
+|================
+|1 &gt;s|2 |3 |4
+^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
+^|8
+|9 2+&gt;|10
+|================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Three panes</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="33*"/>
+<colspec colname="col_2" colwidth="66*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><bridgehead id="_top_left_pane" renderas="sect2">Top Left Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara></entry>
+<entry align="left" valign="top" morerows="1"><bridgehead id="_right_pane" renderas="sect2">Right Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<screen>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</screen>
+<formalpara><title>Code filter example</title><para>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</para></formalpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+</row>
+<row>
+<entry align="left" valign="top"><bridgehead id="_bottom_left_pane" renderas="sect2">Bottom Left Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Three panes
+[cols="a,2a"]
+|==================================
+|
+[float]
+Top Left Pane
+~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+.2+|
+[float]
+Right Pane
+~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|
+[float]
+Bottom Left Pane
+~~~~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</screen>
+</para></formalpara>
+<section id="_combinations_of_emphasis_align_emphasis_emphasis_frame_emphasis_emphasis_grid_emphasis_emphasis_valign_emphasis_and_emphasis_halign_emphasis_attributes">
+<title>Combinations of <emphasis>align</emphasis>, <emphasis>frame</emphasis>, <emphasis>grid</emphasis>, <emphasis>valign</emphasis> and <emphasis>halign</emphasis> attributes</title>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="20*"/>
+<colspec colname="col_2" colwidth="20*"/>
+<colspec colname="col_3" colwidth="20*"/>
+<colspec colname="col_4" colwidth="20*"/>
+<colspec colname="col_5" colwidth="20*"/>
+<thead>
+<row>
+<entry align="left" valign="top"></entry>
+<entry align="left" valign="top">frame </entry>
+<entry align="left" valign="top"> grid </entry>
+<entry align="left" valign="top">valign </entry>
+<entry align="left" valign="top">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="left" valign="top"><simpara>all</simpara></entry>
+<entry align="left" valign="top"><simpara>all</simpara></entry>
+<entry align="left" valign="top"><simpara>top</simpara></entry>
+<entry align="left" valign="top"><simpara>left</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: all
+:grid: all
+:halign: left
+:valign: top
+
+[options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<table
+frame="sides"
+rowsep="1" colsep="0"
+>
+<title>Table test</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="center" valign="middle"></entry>
+<entry align="center" valign="middle">frame </entry>
+<entry align="center" valign="middle"> grid </entry>
+<entry align="center" valign="middle">valign </entry>
+<entry align="center" valign="middle">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="center" valign="middle"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="center" valign="middle"><simpara>sides</simpara></entry>
+<entry align="center" valign="middle"><simpara>rows</simpara></entry>
+<entry align="center" valign="middle"><simpara>middle</simpara></entry>
+<entry align="center" valign="middle"><simpara>center</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: sides
+:grid: rows
+:halign: center
+:valign: middle
+
+.Table test
+[width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<informaltable
+frame="topbot"
+rowsep="0" colsep="1"
+>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="right" valign="bottom"></entry>
+<entry align="right" valign="bottom">frame </entry>
+<entry align="right" valign="bottom"> grid </entry>
+<entry align="right" valign="bottom">valign </entry>
+<entry align="right" valign="bottom">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="right" valign="bottom"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="right" valign="bottom"><simpara>topbot</simpara></entry>
+<entry align="right" valign="bottom"><simpara>cols</simpara></entry>
+<entry align="right" valign="bottom"><simpara>bottom</simpara></entry>
+<entry align="right" valign="bottom"><simpara>right</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: topbot
+:grid: cols
+:halign: right
+:valign: bottom
+
+[align="right",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<informaltable
+frame="none"
+rowsep="0" colsep="0"
+>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="left" valign="top"></entry>
+<entry align="left" valign="top">frame </entry>
+<entry align="left" valign="top"> grid </entry>
+<entry align="left" valign="top">valign </entry>
+<entry align="left" valign="top">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="left" valign="top"><simpara>none</simpara></entry>
+<entry align="left" valign="top"><simpara>none</simpara></entry>
+<entry align="left" valign="top"><simpara>top</simpara></entry>
+<entry align="left" valign="top"><simpara>left</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: none
+:grid: none
+:halign: left
+:valign: top
+
+[align="center",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+</section>
+</article>
diff --git a/tests/data/newtables-docbook5.xml b/tests/data/newtables-docbook5.xml
index a25adbd..b8dff4b 100644
--- a/tests/data/newtables-docbook5.xml
+++ b/tests/data/newtables-docbook5.xml
@@ -1,1312 +1,1312 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>AsciiDoc New tables</title>
-</info>
-<simpara><emphasis role="strong">New in version 8.3.0</emphasis></simpara>
-<simpara>I&#8217;ve finally come up with a <emphasis>new tables</emphasis> syntax that I&#8217;m happy with
-and can at last remove this footnote from the <emphasis>User Guide</emphasis>: &#8220;The
-current table syntax is overly complicated and unwieldy to edit,
-hopefully a more usable syntax will appear in future versions of
-AsciiDoc.&#8221;</simpara>
-<sidebar>
-<title>Update</title>
-<simpara>The following additions were made at AsciiDoc 8.4.4:</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Cell column and row spanning.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Styles can be applied per cell.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vertical cell alignment can be applied to columns and cells.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>See the examples at the end of this document.</simpara>
-</sidebar>
-<simpara>At first glance it doesn&#8217;t look much different to the old syntax but
-it&#8217;s a lot more flexible, easier to enter and supports a lot of column
-styles (for example the <emphasis>asciidoc</emphasis> style supports AsciiDoc block and
-inline elements). The old tables syntax has been deprecated but is
-currently still processed. Here are some examples of AsciiDoc <emphasis>new
-tables</emphasis>:</simpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Simple table</title>
-<?dbhtml table-width="15%"?>
-<?dbfo table-width="15%"?>
-<?dblatex table-width="15%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="21*"/>
-<colspec colname="col_2" colwidth="21*"/>
-<colspec colname="col_3" colwidth="21*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>A</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>B</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>C</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="15%"]
-|=======
-|1 |2 |A
-|3 |4 |B
-|5 |6 |C
-|=======</screen>
-</para></formalpara>
-<table
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>Table with title, header and footer</title>
-<?dbhtml table-width="40%"?>
-<?dbfo table-width="40%"?>
-<?dblatex table-width="40%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="85*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Column 1 </entry>
-<entry align="left" valign="top">Column 2</entry>
-</row>
-</thead>
-<tfoot>
-<row>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>Three items</simpara></entry>
-</row>
-</tfoot>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 1</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 2</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>Item 3</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.An example table
-[width="40%",frame="topbot",options="header,footer"]
-|======================
-|Column 1 |Column 2
-|1 |Item 1
-|2 |Item 2
-|3 |Item 3
-|6 |Three items
-|======================</screen>
-</para></formalpara>
-<table
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>Columns formatted with strong, monospaced and emphasis styles</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<colspec colname="col_3" colwidth="85*"/>
-<thead>
-<row>
-<entry align="right" valign="top"> </entry>
-<entry align="center" valign="top" namest="col_2" nameend="col_3">Columns 2 and 3</entry>
-</row>
-</thead>
-<tfoot>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">footer 1</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>footer 2</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>footer 3</emphasis></simpara></entry>
-</row>
-</tfoot>
-<tbody>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">1</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 1</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 1</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 2</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 2</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">3</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 3</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 3</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><literal>Item 4</literal></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>Item 4</emphasis></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.An example table
-[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
-|==========================
-| 2+|Columns 2 and 3
-|1 |Item 1 |Item 1
-|2 |Item 2 |Item 2
-|3 |Item 3 |Item 3
-|4 |Item 4 |Item 4
-|footer 1|footer 2|footer 3
-|==========================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>A table with externally sourced CSV data</title>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="11*"/>
-<colspec colname="col_2" colwidth="22*"/>
-<colspec colname="col_3" colwidth="22*"/>
-<colspec colname="col_4" colwidth="22*"/>
-<colspec colname="col_5" colwidth="22*"/>
-<thead>
-<row>
-<entry align="center" valign="top">ID</entry>
-<entry align="left" valign="top">Customer Name</entry>
-<entry align="left" valign="top">Contact Name</entry>
-<entry align="left" valign="top">Customer Address</entry>
-<entry align="left" valign="top">Phone</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center" valign="top"><simpara>AROUT</simpara></entry>
-<entry align="left" valign="top"><simpara>Around the Horn</simpara></entry>
-<entry align="left" valign="top"><simpara>Thomas Hardy</simpara></entry>
-<entry align="left" valign="top"><simpara>120 Hanover Sq.
-London</simpara></entry>
-<entry align="left" valign="top"><simpara>(171) 555-7788</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BERGS</simpara></entry>
-<entry align="left" valign="top"><simpara>Berglunds snabbkop</simpara></entry>
-<entry align="left" valign="top"><simpara>Christina Berglund</simpara></entry>
-<entry align="left" valign="top"><simpara>Berguvsvagen 8
-Lulea</simpara></entry>
-<entry align="left" valign="top"><simpara>0921-12 34 65</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BLAUS</simpara></entry>
-<entry align="left" valign="top"><simpara>Blauer See Delikatessen</simpara></entry>
-<entry align="left" valign="top"><simpara>Hanna Moos</simpara></entry>
-<entry align="left" valign="top"><simpara>Forsterstr. 57
-Mannheim</simpara></entry>
-<entry align="left" valign="top"><simpara>0621-08460</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BLONP</simpara></entry>
-<entry align="left" valign="top"><simpara>Blondel pere et fils</simpara></entry>
-<entry align="left" valign="top"><simpara>Frederique Citeaux</simpara></entry>
-<entry align="left" valign="top"><simpara>24, place Kleber
-Strasbourg</simpara></entry>
-<entry align="left" valign="top"><simpara>88.60.15.31</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BOLID</simpara></entry>
-<entry align="left" valign="top"><simpara>Bolido Comidas preparadas</simpara></entry>
-<entry align="left" valign="top"><simpara>Martin Sommer</simpara></entry>
-<entry align="left" valign="top"><simpara>C/ Araquil, 67
-Madrid</simpara></entry>
-<entry align="left" valign="top"><simpara>(91) 555 22 82</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BONAP</simpara></entry>
-<entry align="left" valign="top"><simpara>Bon app'</simpara></entry>
-<entry align="left" valign="top"><simpara>Laurence Lebihan</simpara></entry>
-<entry align="left" valign="top"><simpara>12, rue des Bouchers
-Marseille</simpara></entry>
-<entry align="left" valign="top"><simpara>91.24.45.40</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BOTTM</simpara></entry>
-<entry align="left" valign="top"><simpara>Bottom-Dollar Markets</simpara></entry>
-<entry align="left" valign="top"><simpara>Elizabeth Lincoln</simpara></entry>
-<entry align="left" valign="top"><simpara>23 Tsawassen Blvd.
-Tsawassen</simpara></entry>
-<entry align="left" valign="top"><simpara>(604) 555-4729</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>BSBEV</simpara></entry>
-<entry align="left" valign="top"><simpara>B&#8217;s Beverages</simpara></entry>
-<entry align="left" valign="top"><simpara>Victoria Ashworth</simpara></entry>
-<entry align="left" valign="top"><simpara>Fauntleroy Circus
-London</simpara></entry>
-<entry align="left" valign="top"><simpara>(171) 555-1212</simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara>CACTU</simpara></entry>
-<entry align="left" valign="top"><simpara>Cactus Comidas para llevar</simpara></entry>
-<entry align="left" valign="top"><simpara>Patricio Simpson</simpara></entry>
-<entry align="left" valign="top"><simpara>Cerrito 333
-Buenos Aires</simpara></entry>
-<entry align="left" valign="top"><simpara>(1) 135-5555</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen> [format="csv",cols="^1,4*2",options="header"]
- |===================================================
- ID,Customer Name,Contact Name,Customer Address,Phone
- include::customers.csv[]
- |===================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>DVS formatted table</title>
-<?dbhtml table-width="70%"?>
-<?dbfo table-width="70%"?>
-<?dblatex table-width="70%"?>
-<tgroup cols="7">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<colspec colname="col_6" colwidth="43*"/>
-<colspec colname="col_7" colwidth="43*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>root</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>0</simpara></entry>
-<entry align="left" valign="top"><simpara>0</simpara></entry>
-<entry align="left" valign="top"><simpara>root</simpara></entry>
-<entry align="left" valign="top"><simpara>/root</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/bash</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>daemon</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>daemon</simpara></entry>
-<entry align="left" valign="top"><simpara>/usr/sbin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>bin</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>sys</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>sys</simpara></entry>
-<entry align="left" valign="top"><simpara>/dev</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>sync</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>65534</simpara></entry>
-<entry align="left" valign="top"><simpara>sync</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sync</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>games</simpara></entry>
-<entry align="left" valign="top"><simpara>x</simpara></entry>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>60</simpara></entry>
-<entry align="left" valign="top"><simpara>games</simpara></entry>
-<entry align="left" valign="top"><simpara>/usr/games</simpara></entry>
-<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="70%",format="dsv"]
-|====================================
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-|====================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertical source data</title>
-<?dbhtml table-width="80%"?>
-<?dbfo table-width="80%"?>
-<?dblatex table-width="80%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="60*"/>
-<colspec colname="col_2" colwidth="40*"/>
-<colspec colname="col_3" colwidth="40*"/>
-<colspec colname="col_4" colwidth="200*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Date </entry>
-<entry align="center" valign="top">Duration </entry>
-<entry align="center" valign="top">Avg HR </entry>
-<entry align="left" valign="top">Notes</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>10:24</simpara></entry>
-<entry align="center" valign="top"><simpara>157</simpara></entry>
-<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>23:03</simpara></entry>
-<entry align="center" valign="top"><simpara>152</simpara></entry>
-<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>40:00</simpara></entry>
-<entry align="center" valign="top"><simpara>145</simpara></entry>
-<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<simpara>Short cells can be entered horizontally, longer cells vertically. The
-default behavior is to strip leading and trailing blank lines within a
-cell. These characteristics aid readability and data entry.</simpara>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Windtrainer workouts
-[width="80%",cols="3,^2,^2,10",options="header"]
-|=========================================================
-|Date |Duration |Avg HR |Notes
-
-|22-Aug-08 |10:24 | 157 |
-Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.
-
-|22-Aug-08 |23:03 | 152 |
-Back-to-back with previous interval.
-
-|24-Aug-08 |40:00 | 145 |
-Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).
-
-|=========================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Default and verse styles</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="50*"/>
-<colspec colname="col_2" colwidth="50*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Default paragraphs </entry>
-<entry align="center" valign="top">Centered verses</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Per id.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara></entry>
-<entry align="center" valign="top"><literallayout>Per id.
-
-Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[cols=",^v",options="header"]
-|===================================
-|Default paragraphs |Centered verses
-2*|Per id.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-|===================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertial headings</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="left" valign="top"> </entry>
-<entry align="left" valign="top">West </entry>
-<entry align="left" valign="top">Central </entry>
-<entry align="left" valign="top">East </entry>
-<entry align="left" valign="top"> Total</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q1</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>270</simpara></entry>
-<entry align="left" valign="top"><simpara>292</simpara></entry>
-<entry align="left" valign="top"><simpara>342</simpara></entry>
-<entry align="left" valign="top"><simpara>904</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q2</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>322</simpara></entry>
-<entry align="left" valign="top"><simpara>276</simpara></entry>
-<entry align="left" valign="top"><simpara>383</simpara></entry>
-<entry align="left" valign="top"><simpara>981</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q3</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>298</simpara></entry>
-<entry align="left" valign="top"><simpara>252</simpara></entry>
-<entry align="left" valign="top"><simpara>274</simpara></entry>
-<entry align="left" valign="top"><simpara>824</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis role="strong">Q4</emphasis></simpara></entry>
-<entry align="left" valign="top"><simpara>344</simpara></entry>
-<entry align="left" valign="top"><simpara>247</simpara></entry>
-<entry align="left" valign="top"><simpara>402</simpara></entry>
-<entry align="left" valign="top"><simpara>993</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Horizontal and vertial headings
-[cols="h,4*",options="header",width="50%"]
-|==================================
-| |West |Central |East | Total
-|Q1 |270 |292 |342 | 904
-|Q2 |322 |276 |383 | 981
-|Q3 |298 |252 |274 | 824
-|Q4 |344 |247 |402 | 993
-|==================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="0" colsep="1"
->
-<title>AsciiDoc style in first column, Literal in second</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="50*"/>
-<colspec colname="col_2" colwidth="50*"/>
-<thead>
-<row>
-<entry align="left" valign="top">Output markup </entry>
-<entry align="left" valign="top">AsciiDoc source</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<screen>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</screen>
-<formalpara><title>Code filter example</title><para>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</para></formalpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-<entry align="left" valign="top"><literallayout class="monospaced">Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[cols="asciidoc,literal",options="header",grid="cols"]
-|==================================
-|Output markup |AsciiDoc source
-2*|
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Cell containing lots of example markup elements</title>
-<tgroup cols="1">
-<colspec colname="col_1" colwidth="100*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>URLs</emphasis>:
-<link xlink:href="https://asciidoc.org/">The AsciiDoc home page</link>,
-<link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link>,
-<link xlink:href="mailto:joe.bloggs@example.com">email Joe Bloggs</link>,
-<link xlink:href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</link>,
-<link xlink:href="callto:joe.bloggs">joe.bloggs</link>.</simpara>
-<simpara><emphasis>Link</emphasis>: See <link linkend="X1">AsciiDoc source</link>.</simpara>
-<simpara><emphasis>Emphasized text</emphasis>, <emphasis role="strong">Strong text</emphasis>, <literal>Monospaced text</literal>, &#8220;Quoted text&#8221;.</simpara>
-<simpara><emphasis>Subscripts and superscripts</emphasis>: e<superscript>&#960;i</superscript>+1 = 0. H<subscript>2</subscript>O and x<superscript>10</superscript>.
-Some <superscript>super text</superscript> and <subscript>some sub text</subscript></simpara>
-<simpara><emphasis>Replacements</emphasis>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
-double arrow, &#8656; left double arrow.</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara xml:id="X1"><title>AsciiDoc source</title><para>
-<screen>|====================================================================
-|'URLs':
-https://asciidoc.org/[The AsciiDoc home page],
-https://asciidoc.org/,
-mailto:joe.bloggs@example.com[email Joe Bloggs],
-joe.bloggs@example.com,
-callto:joe.bloggs[].
-
-'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
-
-'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
-
-'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
-Some ^super text^ and ~some sub text~
-
-'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
--- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
-double arrow, &lt;= left double arrow.
-|====================================================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Nested table</title>
-<?dbhtml table-width="75%"?>
-<?dbfo table-width="75%"?>
-<?dblatex table-width="75%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="106*"/>
-<colspec colname="col_2" colwidth="212*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Normal cell</simpara></entry>
-<entry align="left" valign="top"><simpara>Cell with nested table</simpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="66*"/>
-<colspec colname="col_2" colwidth="33*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>Nested table cell 1</simpara></entry>
-<entry align="left" valign="top"><simpara>Nested table cell 2</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>[width="75%",cols="1,2a"]
-|==============================================
-|Normal cell
-
-|Cell with nested table
-
-[cols="2,1"]
-!==============================================
-!Nested table cell 1 !Nested table cell 2
-!==============================================
-
-|==============================================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Spans, alignments and styles</title>
-<?dbhtml table-width="25%"?>
-<?dbfo table-width="25%"?>
-<?dblatex table-width="25%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="27*"/>
-<colspec colname="col_2" colwidth="27*"/>
-<colspec colname="col_3" colwidth="27*"/>
-<colspec colname="col_4" colwidth="27*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>1</emphasis></simpara></entry>
-<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara>3</simpara></entry>
-<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis>5</emphasis></simpara></entry>
-<entry align="center" valign="middle" namest="col_2" nameend="col_3" morerows="1"><simpara><literal>6</literal></simpara></entry>
-<entry align="left" valign="bottom" morerows="2"><simpara><literal>7</literal></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis>8</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><emphasis>9</emphasis></simpara></entry>
-<entry align="right" valign="top" namest="col_2" nameend="col_3"><simpara><literal>10</literal></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Spans, alignments and styles
-[cols="e,m,^,&gt;s",width="25%"]
-|================
-|1 &gt;s|2 |3 |4
-^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
-^|8
-|9 2+&gt;|10
-|================</screen>
-</para></formalpara>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Three panes</title>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="33*"/>
-<colspec colname="col_2" colwidth="66*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><bridgehead xml:id="_top_left_pane" renderas="sect2">Top Left Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara></entry>
-<entry align="left" valign="top" morerows="1"><bridgehead xml:id="_right_pane" renderas="sect2">Right Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<screen>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</screen>
-<formalpara><title>Code filter example</title><para>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</para></formalpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-</row>
-<row>
-<entry align="left" valign="top"><bridgehead xml:id="_bottom_left_pane" renderas="sect2">Bottom Left Pane</bridgehead>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-<listitem>
-<simpara>
-Nulla porttitor vulputate libero.
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-Fusce euismod commodo velit.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Vivamus fringilla mi eu lacus.
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</itemizedlist></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>.Three panes
-[cols="a,2a"]
-|==================================
-|
-[float]
-Top Left Pane
-~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-.2+|
-[float]
-Right Pane
-~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|
-[float]
-Bottom Left Pane
-~~~~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</screen>
-</para></formalpara>
-<section xml:id="_combinations_of_emphasis_align_emphasis_emphasis_frame_emphasis_emphasis_grid_emphasis_emphasis_valign_emphasis_and_emphasis_halign_emphasis_attributes">
-<title>Combinations of <emphasis>align</emphasis>, <emphasis>frame</emphasis>, <emphasis>grid</emphasis>, <emphasis>valign</emphasis> and <emphasis>halign</emphasis> attributes</title>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="20*"/>
-<colspec colname="col_2" colwidth="20*"/>
-<colspec colname="col_3" colwidth="20*"/>
-<colspec colname="col_4" colwidth="20*"/>
-<colspec colname="col_5" colwidth="20*"/>
-<thead>
-<row>
-<entry align="left" valign="top"></entry>
-<entry align="left" valign="top">frame </entry>
-<entry align="left" valign="top"> grid </entry>
-<entry align="left" valign="top">valign </entry>
-<entry align="left" valign="top">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="left" valign="top"><simpara>all</simpara></entry>
-<entry align="left" valign="top"><simpara>all</simpara></entry>
-<entry align="left" valign="top"><simpara>top</simpara></entry>
-<entry align="left" valign="top"><simpara>left</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: all
-:grid: all
-:halign: left
-:valign: top
-
-[options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<table
-frame="sides"
-rowsep="1" colsep="0"
->
-<title>Table test</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="center" valign="middle"></entry>
-<entry align="center" valign="middle">frame </entry>
-<entry align="center" valign="middle"> grid </entry>
-<entry align="center" valign="middle">valign </entry>
-<entry align="center" valign="middle">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="center" valign="middle"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="center" valign="middle"><simpara>sides</simpara></entry>
-<entry align="center" valign="middle"><simpara>rows</simpara></entry>
-<entry align="center" valign="middle"><simpara>middle</simpara></entry>
-<entry align="center" valign="middle"><simpara>center</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: sides
-:grid: rows
-:halign: center
-:valign: middle
-
-.Table test
-[width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<informaltable
-frame="topbot"
-rowsep="0" colsep="1"
->
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="right" valign="bottom"></entry>
-<entry align="right" valign="bottom">frame </entry>
-<entry align="right" valign="bottom"> grid </entry>
-<entry align="right" valign="bottom">valign </entry>
-<entry align="right" valign="bottom">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="right" valign="bottom"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="right" valign="bottom"><simpara>topbot</simpara></entry>
-<entry align="right" valign="bottom"><simpara>cols</simpara></entry>
-<entry align="right" valign="bottom"><simpara>bottom</simpara></entry>
-<entry align="right" valign="bottom"><simpara>right</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: topbot
-:grid: cols
-:halign: right
-:valign: bottom
-
-[align="right",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-<informaltable
-frame="none"
-rowsep="0" colsep="0"
->
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="5">
-<colspec colname="col_1" colwidth="43*"/>
-<colspec colname="col_2" colwidth="43*"/>
-<colspec colname="col_3" colwidth="43*"/>
-<colspec colname="col_4" colwidth="43*"/>
-<colspec colname="col_5" colwidth="43*"/>
-<thead>
-<row>
-<entry align="left" valign="top"></entry>
-<entry align="left" valign="top">frame </entry>
-<entry align="left" valign="top"> grid </entry>
-<entry align="left" valign="top">valign </entry>
-<entry align="left" valign="top">halign</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout>&nbsp;
-&nbsp;
-&nbsp;</literallayout></entry>
-<entry align="left" valign="top"><simpara>none</simpara></entry>
-<entry align="left" valign="top"><simpara>none</simpara></entry>
-<entry align="left" valign="top"><simpara>top</simpara></entry>
-<entry align="left" valign="top"><simpara>left</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-<formalpara><title>AsciiDoc source</title><para>
-<screen>:frame: none
-:grid: none
-:halign: left
-:valign: top
-
-[align="center",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</screen>
-</para></formalpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>AsciiDoc New tables</title>
+</info>
+<simpara><emphasis role="strong">New in version 8.3.0</emphasis></simpara>
+<simpara>I&#8217;ve finally come up with a <emphasis>new tables</emphasis> syntax that I&#8217;m happy with
+and can at last remove this footnote from the <emphasis>User Guide</emphasis>: &#8220;The
+current table syntax is overly complicated and unwieldy to edit,
+hopefully a more usable syntax will appear in future versions of
+AsciiDoc.&#8221;</simpara>
+<sidebar>
+<title>Update</title>
+<simpara>The following additions were made at AsciiDoc 8.4.4:</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Cell column and row spanning.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Styles can be applied per cell.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vertical cell alignment can be applied to columns and cells.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>See the examples at the end of this document.</simpara>
+</sidebar>
+<simpara>At first glance it doesn&#8217;t look much different to the old syntax but
+it&#8217;s a lot more flexible, easier to enter and supports a lot of column
+styles (for example the <emphasis>asciidoc</emphasis> style supports AsciiDoc block and
+inline elements). The old tables syntax has been deprecated but is
+currently still processed. Here are some examples of AsciiDoc <emphasis>new
+tables</emphasis>:</simpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Simple table</title>
+<?dbhtml table-width="15%"?>
+<?dbfo table-width="15%"?>
+<?dblatex table-width="15%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="21*"/>
+<colspec colname="col_2" colwidth="21*"/>
+<colspec colname="col_3" colwidth="21*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>A</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>B</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>C</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="15%"]
+|=======
+|1 |2 |A
+|3 |4 |B
+|5 |6 |C
+|=======</screen>
+</para></formalpara>
+<table
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>Table with title, header and footer</title>
+<?dbhtml table-width="40%"?>
+<?dbfo table-width="40%"?>
+<?dblatex table-width="40%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="85*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Column 1 </entry>
+<entry align="left" valign="top">Column 2</entry>
+</row>
+</thead>
+<tfoot>
+<row>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>Three items</simpara></entry>
+</row>
+</tfoot>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 1</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 2</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>Item 3</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.An example table
+[width="40%",frame="topbot",options="header,footer"]
+|======================
+|Column 1 |Column 2
+|1 |Item 1
+|2 |Item 2
+|3 |Item 3
+|6 |Three items
+|======================</screen>
+</para></formalpara>
+<table
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>Columns formatted with strong, monospaced and emphasis styles</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<colspec colname="col_3" colwidth="85*"/>
+<thead>
+<row>
+<entry align="right" valign="top"> </entry>
+<entry align="center" valign="top" namest="col_2" nameend="col_3">Columns 2 and 3</entry>
+</row>
+</thead>
+<tfoot>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">footer 1</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>footer 2</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>footer 3</emphasis></simpara></entry>
+</row>
+</tfoot>
+<tbody>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">1</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 1</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 1</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 2</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 2</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">3</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 3</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 3</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><literal>Item 4</literal></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>Item 4</emphasis></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.An example table
+[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
+|==========================
+| 2+|Columns 2 and 3
+|1 |Item 1 |Item 1
+|2 |Item 2 |Item 2
+|3 |Item 3 |Item 3
+|4 |Item 4 |Item 4
+|footer 1|footer 2|footer 3
+|==========================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>A table with externally sourced CSV data</title>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="11*"/>
+<colspec colname="col_2" colwidth="22*"/>
+<colspec colname="col_3" colwidth="22*"/>
+<colspec colname="col_4" colwidth="22*"/>
+<colspec colname="col_5" colwidth="22*"/>
+<thead>
+<row>
+<entry align="center" valign="top">ID</entry>
+<entry align="left" valign="top">Customer Name</entry>
+<entry align="left" valign="top">Contact Name</entry>
+<entry align="left" valign="top">Customer Address</entry>
+<entry align="left" valign="top">Phone</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="center" valign="top"><simpara>AROUT</simpara></entry>
+<entry align="left" valign="top"><simpara>Around the Horn</simpara></entry>
+<entry align="left" valign="top"><simpara>Thomas Hardy</simpara></entry>
+<entry align="left" valign="top"><simpara>120 Hanover Sq.
+London</simpara></entry>
+<entry align="left" valign="top"><simpara>(171) 555-7788</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BERGS</simpara></entry>
+<entry align="left" valign="top"><simpara>Berglunds snabbkop</simpara></entry>
+<entry align="left" valign="top"><simpara>Christina Berglund</simpara></entry>
+<entry align="left" valign="top"><simpara>Berguvsvagen 8
+Lulea</simpara></entry>
+<entry align="left" valign="top"><simpara>0921-12 34 65</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BLAUS</simpara></entry>
+<entry align="left" valign="top"><simpara>Blauer See Delikatessen</simpara></entry>
+<entry align="left" valign="top"><simpara>Hanna Moos</simpara></entry>
+<entry align="left" valign="top"><simpara>Forsterstr. 57
+Mannheim</simpara></entry>
+<entry align="left" valign="top"><simpara>0621-08460</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BLONP</simpara></entry>
+<entry align="left" valign="top"><simpara>Blondel pere et fils</simpara></entry>
+<entry align="left" valign="top"><simpara>Frederique Citeaux</simpara></entry>
+<entry align="left" valign="top"><simpara>24, place Kleber
+Strasbourg</simpara></entry>
+<entry align="left" valign="top"><simpara>88.60.15.31</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BOLID</simpara></entry>
+<entry align="left" valign="top"><simpara>Bolido Comidas preparadas</simpara></entry>
+<entry align="left" valign="top"><simpara>Martin Sommer</simpara></entry>
+<entry align="left" valign="top"><simpara>C/ Araquil, 67
+Madrid</simpara></entry>
+<entry align="left" valign="top"><simpara>(91) 555 22 82</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BONAP</simpara></entry>
+<entry align="left" valign="top"><simpara>Bon app'</simpara></entry>
+<entry align="left" valign="top"><simpara>Laurence Lebihan</simpara></entry>
+<entry align="left" valign="top"><simpara>12, rue des Bouchers
+Marseille</simpara></entry>
+<entry align="left" valign="top"><simpara>91.24.45.40</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BOTTM</simpara></entry>
+<entry align="left" valign="top"><simpara>Bottom-Dollar Markets</simpara></entry>
+<entry align="left" valign="top"><simpara>Elizabeth Lincoln</simpara></entry>
+<entry align="left" valign="top"><simpara>23 Tsawassen Blvd.
+Tsawassen</simpara></entry>
+<entry align="left" valign="top"><simpara>(604) 555-4729</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>BSBEV</simpara></entry>
+<entry align="left" valign="top"><simpara>B&#8217;s Beverages</simpara></entry>
+<entry align="left" valign="top"><simpara>Victoria Ashworth</simpara></entry>
+<entry align="left" valign="top"><simpara>Fauntleroy Circus
+London</simpara></entry>
+<entry align="left" valign="top"><simpara>(171) 555-1212</simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara>CACTU</simpara></entry>
+<entry align="left" valign="top"><simpara>Cactus Comidas para llevar</simpara></entry>
+<entry align="left" valign="top"><simpara>Patricio Simpson</simpara></entry>
+<entry align="left" valign="top"><simpara>Cerrito 333
+Buenos Aires</simpara></entry>
+<entry align="left" valign="top"><simpara>(1) 135-5555</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen> [format="csv",cols="^1,4*2",options="header"]
+ |===================================================
+ ID,Customer Name,Contact Name,Customer Address,Phone
+ include::customers.csv[]
+ |===================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>DVS formatted table</title>
+<?dbhtml table-width="70%"?>
+<?dbfo table-width="70%"?>
+<?dblatex table-width="70%"?>
+<tgroup cols="7">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<colspec colname="col_6" colwidth="43*"/>
+<colspec colname="col_7" colwidth="43*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>root</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>0</simpara></entry>
+<entry align="left" valign="top"><simpara>0</simpara></entry>
+<entry align="left" valign="top"><simpara>root</simpara></entry>
+<entry align="left" valign="top"><simpara>/root</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/bash</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>daemon</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>daemon</simpara></entry>
+<entry align="left" valign="top"><simpara>/usr/sbin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>bin</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>sys</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>sys</simpara></entry>
+<entry align="left" valign="top"><simpara>/dev</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>sync</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>65534</simpara></entry>
+<entry align="left" valign="top"><simpara>sync</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sync</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>games</simpara></entry>
+<entry align="left" valign="top"><simpara>x</simpara></entry>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>60</simpara></entry>
+<entry align="left" valign="top"><simpara>games</simpara></entry>
+<entry align="left" valign="top"><simpara>/usr/games</simpara></entry>
+<entry align="left" valign="top"><simpara>/bin/sh</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="70%",format="dsv"]
+|====================================
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+|====================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertical source data</title>
+<?dbhtml table-width="80%"?>
+<?dbfo table-width="80%"?>
+<?dblatex table-width="80%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="60*"/>
+<colspec colname="col_2" colwidth="40*"/>
+<colspec colname="col_3" colwidth="40*"/>
+<colspec colname="col_4" colwidth="200*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Date </entry>
+<entry align="center" valign="top">Duration </entry>
+<entry align="center" valign="top">Avg HR </entry>
+<entry align="left" valign="top">Notes</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>10:24</simpara></entry>
+<entry align="center" valign="top"><simpara>157</simpara></entry>
+<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>23:03</simpara></entry>
+<entry align="center" valign="top"><simpara>152</simpara></entry>
+<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>40:00</simpara></entry>
+<entry align="center" valign="top"><simpara>145</simpara></entry>
+<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<simpara>Short cells can be entered horizontally, longer cells vertically. The
+default behavior is to strip leading and trailing blank lines within a
+cell. These characteristics aid readability and data entry.</simpara>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Windtrainer workouts
+[width="80%",cols="3,^2,^2,10",options="header"]
+|=========================================================
+|Date |Duration |Avg HR |Notes
+
+|22-Aug-08 |10:24 | 157 |
+Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.
+
+|22-Aug-08 |23:03 | 152 |
+Back-to-back with previous interval.
+
+|24-Aug-08 |40:00 | 145 |
+Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).
+
+|=========================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Default and verse styles</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="50*"/>
+<colspec colname="col_2" colwidth="50*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Default paragraphs </entry>
+<entry align="center" valign="top">Centered verses</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Per id.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara></entry>
+<entry align="center" valign="top"><literallayout>Per id.
+
+Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[cols=",^v",options="header"]
+|===================================
+|Default paragraphs |Centered verses
+2*|Per id.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+|===================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertial headings</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="left" valign="top"> </entry>
+<entry align="left" valign="top">West </entry>
+<entry align="left" valign="top">Central </entry>
+<entry align="left" valign="top">East </entry>
+<entry align="left" valign="top"> Total</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q1</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>270</simpara></entry>
+<entry align="left" valign="top"><simpara>292</simpara></entry>
+<entry align="left" valign="top"><simpara>342</simpara></entry>
+<entry align="left" valign="top"><simpara>904</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q2</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>322</simpara></entry>
+<entry align="left" valign="top"><simpara>276</simpara></entry>
+<entry align="left" valign="top"><simpara>383</simpara></entry>
+<entry align="left" valign="top"><simpara>981</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q3</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>298</simpara></entry>
+<entry align="left" valign="top"><simpara>252</simpara></entry>
+<entry align="left" valign="top"><simpara>274</simpara></entry>
+<entry align="left" valign="top"><simpara>824</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis role="strong">Q4</emphasis></simpara></entry>
+<entry align="left" valign="top"><simpara>344</simpara></entry>
+<entry align="left" valign="top"><simpara>247</simpara></entry>
+<entry align="left" valign="top"><simpara>402</simpara></entry>
+<entry align="left" valign="top"><simpara>993</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Horizontal and vertial headings
+[cols="h,4*",options="header",width="50%"]
+|==================================
+| |West |Central |East | Total
+|Q1 |270 |292 |342 | 904
+|Q2 |322 |276 |383 | 981
+|Q3 |298 |252 |274 | 824
+|Q4 |344 |247 |402 | 993
+|==================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="0" colsep="1"
+>
+<title>AsciiDoc style in first column, Literal in second</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="50*"/>
+<colspec colname="col_2" colwidth="50*"/>
+<thead>
+<row>
+<entry align="left" valign="top">Output markup </entry>
+<entry align="left" valign="top">AsciiDoc source</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<screen>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</screen>
+<formalpara><title>Code filter example</title><para>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</para></formalpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+<entry align="left" valign="top"><literallayout class="monospaced">Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[cols="asciidoc,literal",options="header",grid="cols"]
+|==================================
+|Output markup |AsciiDoc source
+2*|
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Cell containing lots of example markup elements</title>
+<tgroup cols="1">
+<colspec colname="col_1" colwidth="100*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>URLs</emphasis>:
+<link xlink:href="https://asciidoc.org/">The AsciiDoc home page</link>,
+<link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link>,
+<link xlink:href="mailto:joe.bloggs@example.com">email Joe Bloggs</link>,
+<link xlink:href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</link>,
+<link xlink:href="callto:joe.bloggs">joe.bloggs</link>.</simpara>
+<simpara><emphasis>Link</emphasis>: See <link linkend="X1">AsciiDoc source</link>.</simpara>
+<simpara><emphasis>Emphasized text</emphasis>, <emphasis role="strong">Strong text</emphasis>, <literal>Monospaced text</literal>, &#8220;Quoted text&#8221;.</simpara>
+<simpara><emphasis>Subscripts and superscripts</emphasis>: e<superscript>&#960;i</superscript>+1 = 0. H<subscript>2</subscript>O and x<superscript>10</superscript>.
+Some <superscript>super text</superscript> and <subscript>some sub text</subscript></simpara>
+<simpara><emphasis>Replacements</emphasis>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
+double arrow, &#8656; left double arrow.</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara xml:id="X1"><title>AsciiDoc source</title><para>
+<screen>|====================================================================
+|'URLs':
+https://asciidoc.org/[The AsciiDoc home page],
+https://asciidoc.org/,
+mailto:joe.bloggs@example.com[email Joe Bloggs],
+joe.bloggs@example.com,
+callto:joe.bloggs[].
+
+'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
+
+'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
+
+'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
+Some ^super text^ and ~some sub text~
+
+'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
+-- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
+double arrow, &lt;= left double arrow.
+|====================================================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Nested table</title>
+<?dbhtml table-width="75%"?>
+<?dbfo table-width="75%"?>
+<?dblatex table-width="75%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="106*"/>
+<colspec colname="col_2" colwidth="212*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Normal cell</simpara></entry>
+<entry align="left" valign="top"><simpara>Cell with nested table</simpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="66*"/>
+<colspec colname="col_2" colwidth="33*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>Nested table cell 1</simpara></entry>
+<entry align="left" valign="top"><simpara>Nested table cell 2</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>[width="75%",cols="1,2a"]
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+[cols="2,1"]
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Spans, alignments and styles</title>
+<?dbhtml table-width="25%"?>
+<?dbfo table-width="25%"?>
+<?dblatex table-width="25%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="27*"/>
+<colspec colname="col_2" colwidth="27*"/>
+<colspec colname="col_3" colwidth="27*"/>
+<colspec colname="col_4" colwidth="27*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>1</emphasis></simpara></entry>
+<entry align="right" valign="top"><simpara><emphasis role="strong">2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara>3</simpara></entry>
+<entry align="right" valign="top"><simpara><emphasis role="strong">4</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis>5</emphasis></simpara></entry>
+<entry align="center" valign="middle" namest="col_2" nameend="col_3" morerows="1"><simpara><literal>6</literal></simpara></entry>
+<entry align="left" valign="bottom" morerows="2"><simpara><literal>7</literal></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis>8</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><emphasis>9</emphasis></simpara></entry>
+<entry align="right" valign="top" namest="col_2" nameend="col_3"><simpara><literal>10</literal></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Spans, alignments and styles
+[cols="e,m,^,&gt;s",width="25%"]
+|================
+|1 &gt;s|2 |3 |4
+^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
+^|8
+|9 2+&gt;|10
+|================</screen>
+</para></formalpara>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Three panes</title>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="33*"/>
+<colspec colname="col_2" colwidth="66*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><bridgehead xml:id="_top_left_pane" renderas="sect2">Top Left Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara></entry>
+<entry align="left" valign="top" morerows="1"><bridgehead xml:id="_right_pane" renderas="sect2">Right Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<screen>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</screen>
+<formalpara><title>Code filter example</title><para>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</para></formalpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+</row>
+<row>
+<entry align="left" valign="top"><bridgehead xml:id="_bottom_left_pane" renderas="sect2">Bottom Left Pane</bridgehead>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<simpara>Consul <emphasis role="strong">necessitatibus</emphasis> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+<listitem>
+<simpara>
+Nulla porttitor vulputate libero.
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+Fusce euismod commodo velit.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Vivamus fringilla mi eu lacus.
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</itemizedlist></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>.Three panes
+[cols="a,2a"]
+|==================================
+|
+[float]
+Top Left Pane
+~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+.2+|
+[float]
+Right Pane
+~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|
+[float]
+Bottom Left Pane
+~~~~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</screen>
+</para></formalpara>
+<section xml:id="_combinations_of_emphasis_align_emphasis_emphasis_frame_emphasis_emphasis_grid_emphasis_emphasis_valign_emphasis_and_emphasis_halign_emphasis_attributes">
+<title>Combinations of <emphasis>align</emphasis>, <emphasis>frame</emphasis>, <emphasis>grid</emphasis>, <emphasis>valign</emphasis> and <emphasis>halign</emphasis> attributes</title>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="20*"/>
+<colspec colname="col_2" colwidth="20*"/>
+<colspec colname="col_3" colwidth="20*"/>
+<colspec colname="col_4" colwidth="20*"/>
+<colspec colname="col_5" colwidth="20*"/>
+<thead>
+<row>
+<entry align="left" valign="top"></entry>
+<entry align="left" valign="top">frame </entry>
+<entry align="left" valign="top"> grid </entry>
+<entry align="left" valign="top">valign </entry>
+<entry align="left" valign="top">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="left" valign="top"><simpara>all</simpara></entry>
+<entry align="left" valign="top"><simpara>all</simpara></entry>
+<entry align="left" valign="top"><simpara>top</simpara></entry>
+<entry align="left" valign="top"><simpara>left</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: all
+:grid: all
+:halign: left
+:valign: top
+
+[options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<table
+frame="sides"
+rowsep="1" colsep="0"
+>
+<title>Table test</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="center" valign="middle"></entry>
+<entry align="center" valign="middle">frame </entry>
+<entry align="center" valign="middle"> grid </entry>
+<entry align="center" valign="middle">valign </entry>
+<entry align="center" valign="middle">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="center" valign="middle"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="center" valign="middle"><simpara>sides</simpara></entry>
+<entry align="center" valign="middle"><simpara>rows</simpara></entry>
+<entry align="center" valign="middle"><simpara>middle</simpara></entry>
+<entry align="center" valign="middle"><simpara>center</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: sides
+:grid: rows
+:halign: center
+:valign: middle
+
+.Table test
+[width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<informaltable
+frame="topbot"
+rowsep="0" colsep="1"
+>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="right" valign="bottom"></entry>
+<entry align="right" valign="bottom">frame </entry>
+<entry align="right" valign="bottom"> grid </entry>
+<entry align="right" valign="bottom">valign </entry>
+<entry align="right" valign="bottom">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="right" valign="bottom"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="right" valign="bottom"><simpara>topbot</simpara></entry>
+<entry align="right" valign="bottom"><simpara>cols</simpara></entry>
+<entry align="right" valign="bottom"><simpara>bottom</simpara></entry>
+<entry align="right" valign="bottom"><simpara>right</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: topbot
+:grid: cols
+:halign: right
+:valign: bottom
+
+[align="right",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+<informaltable
+frame="none"
+rowsep="0" colsep="0"
+>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="5">
+<colspec colname="col_1" colwidth="43*"/>
+<colspec colname="col_2" colwidth="43*"/>
+<colspec colname="col_3" colwidth="43*"/>
+<colspec colname="col_4" colwidth="43*"/>
+<colspec colname="col_5" colwidth="43*"/>
+<thead>
+<row>
+<entry align="left" valign="top"></entry>
+<entry align="left" valign="top">frame </entry>
+<entry align="left" valign="top"> grid </entry>
+<entry align="left" valign="top">valign </entry>
+<entry align="left" valign="top">halign</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout>&nbsp;
+&nbsp;
+&nbsp;</literallayout></entry>
+<entry align="left" valign="top"><simpara>none</simpara></entry>
+<entry align="left" valign="top"><simpara>none</simpara></entry>
+<entry align="left" valign="top"><simpara>top</simpara></entry>
+<entry align="left" valign="top"><simpara>left</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<formalpara><title>AsciiDoc source</title><para>
+<screen>:frame: none
+:grid: none
+:halign: left
+:valign: top
+
+[align="center",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</screen>
+</para></formalpara>
+</section>
+</article>
diff --git a/tests/data/newtables-html4.html b/tests/data/newtables-html4.html
index 41faa4f..d56af3a 100644
--- a/tests/data/newtables-html4.html
+++ b/tests/data/newtables-html4.html
@@ -1,1254 +1,1254 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>AsciiDoc New tables</title>
-</head>
-<body>
-<h1>AsciiDoc New tables</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p><strong>New in version 8.3.0</strong></p>
-<p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
-and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
-current table syntax is overly complicated and unwieldy to edit,
-hopefully a more usable syntax will appear in future versions of
-AsciiDoc.&#8221;</p>
-<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
-<tr><td>
-<p><em>Update</em></p>
-<p>The following additions were made at AsciiDoc 8.4.4:</p>
-<ul>
-<li>
-<p>
-Cell column and row spanning.
-</p>
-</li>
-<li>
-<p>
-Styles can be applied per cell.
-</p>
-</li>
-<li>
-<p>
-Vertical cell alignment can be applied to columns and cells.
-</p>
-</li>
-</ul>
-<p>See the examples at the end of this document.</p>
-</td></tr></table>
-<p>At first glance it doesn&#8217;t look much different to the old syntax but
-it&#8217;s a lot more flexible, easier to enter and supports a lot of column
-styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
-inline elements). The old tables syntax has been deprecated but is
-currently still processed. Here are some examples of AsciiDoc <em>new
-tables</em>:</p>
-<div>
-<table rules="all"
-width="15%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="33%" valign="top"><p>1</p></td>
-<td align="left" width="33%" valign="top"><p>2</p></td>
-<td align="left" width="33%" valign="top"><p>A</p></td>
-</tr>
-<tr>
-<td align="left" width="33%" valign="top"><p>3</p></td>
-<td align="left" width="33%" valign="top"><p>4</p></td>
-<td align="left" width="33%" valign="top"><p>B</p></td>
-</tr>
-<tr>
-<td align="left" width="33%" valign="top"><p>5</p></td>
-<td align="left" width="33%" valign="top"><p>6</p></td>
-<td align="left" width="33%" valign="top"><p>C</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Simple table</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[width="15%"]
-|=======
-|1 |2 |A
-|3 |4 |B
-|5 |6 |C
-|=======</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="40%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top">Column 1 </th>
-<th align="left" width="50%" valign="top">Column 2</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td align="left" width="50%" style="font-weight:bold" valign="top"><p>6</p></td>
-<td align="left" width="50%" style="font-weight:bold" valign="top"><p>Three items</p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>1</p></td>
-<td align="left" width="50%" valign="top"><p>Item 1</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>2</p></td>
-<td align="left" width="50%" valign="top"><p>Item 2</p></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><p>3</p></td>
-<td align="left" width="50%" valign="top"><p>Item 3</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 2. </b>Table with title, header and footer</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.An example table
-[width="40%",frame="topbot",options="header,footer"]
-|======================
-|Column 1 |Column 2
-|1 |Item 1
-|2 |Item 2
-|3 |Item 3
-|6 |Three items
-|======================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="50%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="right" width="20%" valign="top"> </th>
-<th colspan="2" align="center" width="40%" valign="top">Columns 2 and 3</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td align="right" width="20%" style="font-weight:bold" valign="top"><p><strong>footer 1</strong></p></td>
-<td align="center" width="40%" style="font-weight:bold" valign="top"><p><code>footer 2</code></p></td>
-<td align="center" width="40%" style="font-weight:bold" valign="top"><p><em>footer 3</em></p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td align="right" width="20%" valign="top"><p><strong>1</strong></p></td>
-<td align="center" width="40%" valign="top"><p><code>Item 1</code></p></td>
-<td align="center" width="40%" valign="top"><p><em>Item 1</em></p></td>
-</tr>
-<tr>
-<td align="right" width="20%" valign="top"><p><strong>2</strong></p></td>
-<td align="center" width="40%" valign="top"><p><code>Item 2</code></p></td>
-<td align="center" width="40%" valign="top"><p><em>Item 2</em></p></td>
-</tr>
-<tr>
-<td align="right" width="20%" valign="top"><p><strong>3</strong></p></td>
-<td align="center" width="40%" valign="top"><p><code>Item 3</code></p></td>
-<td align="center" width="40%" valign="top"><p><em>Item 3</em></p></td>
-</tr>
-<tr>
-<td align="right" width="20%" valign="top"><p><strong>4</strong></p></td>
-<td align="center" width="40%" valign="top"><p><code>Item 4</code></p></td>
-<td align="center" width="40%" valign="top"><p><em>Item 4</em></p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 3. </b>Columns formatted with strong, monospaced and emphasis styles</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.An example table
-[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
-|==========================
-| 2+|Columns 2 and 3
-|1 |Item 1 |Item 1
-|2 |Item 2 |Item 2
-|3 |Item 3 |Item 3
-|4 |Item 4 |Item 4
-|footer 1|footer 2|footer 3
-|==========================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="center" width="11%" valign="top">ID</th>
-<th align="left" width="22%" valign="top">Customer Name</th>
-<th align="left" width="22%" valign="top">Contact Name</th>
-<th align="left" width="22%" valign="top">Customer Address</th>
-<th align="left" width="22%" valign="top">Phone</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="center" width="11%" valign="top"><p>AROUT</p></td>
-<td align="left" width="22%" valign="top"><p>Around the Horn</p></td>
-<td align="left" width="22%" valign="top"><p>Thomas Hardy</p></td>
-<td align="left" width="22%" valign="top"><p>120 Hanover Sq.
-London</p></td>
-<td align="left" width="22%" valign="top"><p>(171) 555-7788</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BERGS</p></td>
-<td align="left" width="22%" valign="top"><p>Berglunds snabbkop</p></td>
-<td align="left" width="22%" valign="top"><p>Christina Berglund</p></td>
-<td align="left" width="22%" valign="top"><p>Berguvsvagen 8
-Lulea</p></td>
-<td align="left" width="22%" valign="top"><p>0921-12 34 65</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BLAUS</p></td>
-<td align="left" width="22%" valign="top"><p>Blauer See Delikatessen</p></td>
-<td align="left" width="22%" valign="top"><p>Hanna Moos</p></td>
-<td align="left" width="22%" valign="top"><p>Forsterstr. 57
-Mannheim</p></td>
-<td align="left" width="22%" valign="top"><p>0621-08460</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BLONP</p></td>
-<td align="left" width="22%" valign="top"><p>Blondel pere et fils</p></td>
-<td align="left" width="22%" valign="top"><p>Frederique Citeaux</p></td>
-<td align="left" width="22%" valign="top"><p>24, place Kleber
-Strasbourg</p></td>
-<td align="left" width="22%" valign="top"><p>88.60.15.31</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BOLID</p></td>
-<td align="left" width="22%" valign="top"><p>Bolido Comidas preparadas</p></td>
-<td align="left" width="22%" valign="top"><p>Martin Sommer</p></td>
-<td align="left" width="22%" valign="top"><p>C/ Araquil, 67
-Madrid</p></td>
-<td align="left" width="22%" valign="top"><p>(91) 555 22 82</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BONAP</p></td>
-<td align="left" width="22%" valign="top"><p>Bon app'</p></td>
-<td align="left" width="22%" valign="top"><p>Laurence Lebihan</p></td>
-<td align="left" width="22%" valign="top"><p>12, rue des Bouchers
-Marseille</p></td>
-<td align="left" width="22%" valign="top"><p>91.24.45.40</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BOTTM</p></td>
-<td align="left" width="22%" valign="top"><p>Bottom-Dollar Markets</p></td>
-<td align="left" width="22%" valign="top"><p>Elizabeth Lincoln</p></td>
-<td align="left" width="22%" valign="top"><p>23 Tsawassen Blvd.
-Tsawassen</p></td>
-<td align="left" width="22%" valign="top"><p>(604) 555-4729</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>BSBEV</p></td>
-<td align="left" width="22%" valign="top"><p>B&#8217;s Beverages</p></td>
-<td align="left" width="22%" valign="top"><p>Victoria Ashworth</p></td>
-<td align="left" width="22%" valign="top"><p>Fauntleroy Circus
-London</p></td>
-<td align="left" width="22%" valign="top"><p>(171) 555-1212</p></td>
-</tr>
-<tr>
-<td align="center" width="11%" valign="top"><p>CACTU</p></td>
-<td align="left" width="22%" valign="top"><p>Cactus Comidas para llevar</p></td>
-<td align="left" width="22%" valign="top"><p>Patricio Simpson</p></td>
-<td align="left" width="22%" valign="top"><p>Cerrito 333
-Buenos Aires</p></td>
-<td align="left" width="22%" valign="top"><p>(1) 135-5555</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 4. </b>A table with externally sourced CSV data</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code> [format="csv",cols="^1,4*2",options="header"]
- |===================================================
- ID,Customer Name,Contact Name,Customer Address,Phone
- include::customers.csv[]
- |===================================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="70%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="14%" valign="top"><p>root</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>0</p></td>
-<td align="left" width="14%" valign="top"><p>0</p></td>
-<td align="left" width="14%" valign="top"><p>root</p></td>
-<td align="left" width="14%" valign="top"><p>/root</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/bash</p></td>
-</tr>
-<tr>
-<td align="left" width="14%" valign="top"><p>daemon</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>1</p></td>
-<td align="left" width="14%" valign="top"><p>1</p></td>
-<td align="left" width="14%" valign="top"><p>daemon</p></td>
-<td align="left" width="14%" valign="top"><p>/usr/sbin</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" width="14%" valign="top"><p>bin</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>2</p></td>
-<td align="left" width="14%" valign="top"><p>2</p></td>
-<td align="left" width="14%" valign="top"><p>bin</p></td>
-<td align="left" width="14%" valign="top"><p>/bin</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" width="14%" valign="top"><p>sys</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>3</p></td>
-<td align="left" width="14%" valign="top"><p>3</p></td>
-<td align="left" width="14%" valign="top"><p>sys</p></td>
-<td align="left" width="14%" valign="top"><p>/dev</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" width="14%" valign="top"><p>sync</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>4</p></td>
-<td align="left" width="14%" valign="top"><p>65534</p></td>
-<td align="left" width="14%" valign="top"><p>sync</p></td>
-<td align="left" width="14%" valign="top"><p>/bin</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/sync</p></td>
-</tr>
-<tr>
-<td align="left" width="14%" valign="top"><p>games</p></td>
-<td align="left" width="14%" valign="top"><p>x</p></td>
-<td align="left" width="14%" valign="top"><p>5</p></td>
-<td align="left" width="14%" valign="top"><p>60</p></td>
-<td align="left" width="14%" valign="top"><p>games</p></td>
-<td align="left" width="14%" valign="top"><p>/usr/games</p></td>
-<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 5. </b>DVS formatted table</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[width="70%",format="dsv"]
-|====================================
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-|====================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="80%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="17%" valign="top">Date </th>
-<th align="center" width="11%" valign="top">Duration </th>
-<th align="center" width="11%" valign="top">Avg HR </th>
-<th align="left" width="58%" valign="top">Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>10:24</p></td>
-<td align="center" width="11%" valign="top"><p>157</p></td>
-<td align="left" width="58%" valign="top"><p>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>23:03</p></td>
-<td align="center" width="11%" valign="top"><p>152</p></td>
-<td align="left" width="58%" valign="top"><p>Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td align="left" width="17%" valign="top"><p>24-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>40:00</p></td>
-<td align="center" width="11%" valign="top"><p>145</p></td>
-<td align="left" width="58%" valign="top"><p>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 6. </b>Horizontal and vertical source data</p>
-</div>
-<p>Short cells can be entered horizontally, longer cells vertically. The
-default behavior is to strip leading and trailing blank lines within a
-cell. These characteristics aid readability and data entry.</p>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.Windtrainer workouts
-[width="80%",cols="3,^2,^2,10",options="header"]
-|=========================================================
-|Date |Duration |Avg HR |Notes
-
-|22-Aug-08 |10:24 | 157 |
-Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.
-
-|22-Aug-08 |23:03 | 152 |
-Back-to-back with previous interval.
-
-|24-Aug-08 |40:00 | 145 |
-Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).
-
-|=========================================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top">Default paragraphs </th>
-<th align="center" width="50%" valign="top">Centered verses</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><p>Per id.</p>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></td>
-<td align="center" width="50%" valign="top"><pre style="font-family: inherit;">Per id.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</pre></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 7. </b>Default and verse styles</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[cols=",^v",options="header"]
-|===================================
-|Default paragraphs |Centered verses
-2*|Per id.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-|===================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="50%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="20%" valign="top"> </th>
-<th align="left" width="20%" valign="top">West </th>
-<th align="left" width="20%" valign="top">Central </th>
-<th align="left" width="20%" valign="top">East </th>
-<th align="left" width="20%" valign="top"> Total</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="20%" valign="top"><p><strong>Q1</strong></p></td>
-<td align="left" width="20%" valign="top"><p>270</p></td>
-<td align="left" width="20%" valign="top"><p>292</p></td>
-<td align="left" width="20%" valign="top"><p>342</p></td>
-<td align="left" width="20%" valign="top"><p>904</p></td>
-</tr>
-<tr>
-<td align="left" width="20%" valign="top"><p><strong>Q2</strong></p></td>
-<td align="left" width="20%" valign="top"><p>322</p></td>
-<td align="left" width="20%" valign="top"><p>276</p></td>
-<td align="left" width="20%" valign="top"><p>383</p></td>
-<td align="left" width="20%" valign="top"><p>981</p></td>
-</tr>
-<tr>
-<td align="left" width="20%" valign="top"><p><strong>Q3</strong></p></td>
-<td align="left" width="20%" valign="top"><p>298</p></td>
-<td align="left" width="20%" valign="top"><p>252</p></td>
-<td align="left" width="20%" valign="top"><p>274</p></td>
-<td align="left" width="20%" valign="top"><p>824</p></td>
-</tr>
-<tr>
-<td align="left" width="20%" valign="top"><p><strong>Q4</strong></p></td>
-<td align="left" width="20%" valign="top"><p>344</p></td>
-<td align="left" width="20%" valign="top"><p>247</p></td>
-<td align="left" width="20%" valign="top"><p>402</p></td>
-<td align="left" width="20%" valign="top"><p>993</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 8. </b>Horizontal and vertial headings</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.Horizontal and vertial headings
-[cols="h,4*",options="header",width="50%"]
-|==================================
-| |West |Central |East | Total
-|Q1 |270 |292 |342 | 904
-|Q2 |322 |276 |383 | 981
-|Q3 |298 |252 |274 | 824
-|Q4 |344 |247 |402 | 993
-|==================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="cols"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top">Output markup </th>
-<th align="left" width="50%" valign="top">AsciiDoc source</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><div><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</code></pre>
-</td></tr></table>
-<p><b>Code filter example</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
-<i><font color="#9A1900"> comment.'''</font></i>
-<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
-<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
- word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font>
- <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
- <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
- <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
- <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
-<ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<ol type="1">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol>
-</li>
-</ul></div></td>
-<td align="left" width="50%" valign="top"><pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.</code></pre></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 9. </b>AsciiDoc style in first column, Literal in second</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[cols="asciidoc,literal",options="header",grid="cols"]
-|==================================
-|Output markup |AsciiDoc source
-2*|
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="100%" valign="top"><p><em>URLs</em>:
-<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
-<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
-<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
-<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
-<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
-<p><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
-<p><em>Emphasized text</em>, <strong>Strong text</strong>, <code>Monospaced text</code>, &#8220;Quoted text&#8221;.</p>
-<p><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
-Some <sup>super text</sup> and <sub>some sub text</sub></p>
-<p><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
-double arrow, &#8656; left double arrow.</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 10. </b>Cell containing lots of example markup elements</p>
-</div>
-<a name="X1"></a>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>|====================================================================
-|'URLs':
-https://asciidoc.org/[The AsciiDoc home page],
-https://asciidoc.org/,
-mailto:joe.bloggs@example.com[email Joe Bloggs],
-joe.bloggs@example.com,
-callto:joe.bloggs[].
-
-'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
-
-'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
-
-'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
-Some ^super text^ and ~some sub text~
-
-'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
--- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
-double arrow, &lt;= left double arrow.
-|====================================================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="75%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="33%" valign="top"><p>Normal cell</p></td>
-<td align="left" width="66%" valign="top"><div><p>Cell with nested table</p>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="66%" valign="top"><p>Nested table cell 1</p></td>
-<td align="left" width="33%" valign="top"><p>Nested table cell 2</p></td>
-</tr>
-</tbody>
-</table>
-</div></div></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 11. </b>Nested table</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[width="75%",cols="1,2a"]
-|==============================================
-|Normal cell
-
-|Cell with nested table
-
-[cols="2,1"]
-!==============================================
-!Nested table cell 1 !Nested table cell 2
-!==============================================
-
-|==============================================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="25%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="25%" valign="top"><p><em>1</em></p></td>
-<td align="right" width="25%" valign="top"><p><strong>2</strong></p></td>
-<td align="center" width="25%" valign="top"><p>3</p></td>
-<td align="right" width="25%" valign="top"><p><strong>4</strong></p></td>
-</tr>
-<tr>
-<td align="center" width="25%" valign="top"><p><em>5</em></p></td>
-<td colspan="2" rowspan="2" align="center" width="25%" valign="middle"><p><code>6</code></p></td>
-<td rowspan="3" align="left" width="25%" valign="bottom"><p><code>7</code></p></td>
-</tr>
-<tr>
-<td align="center" width="25%" valign="top"><p><em>8</em></p></td>
-</tr>
-<tr>
-<td align="left" width="25%" valign="top"><p><em>9</em></p></td>
-<td colspan="2" align="right" width="25%" valign="top"><p><code>10</code></p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 12. </b>Spans, alignments and styles</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.Spans, alignments and styles
-[cols="e,m,^,&gt;s",width="25%"]
-|================
-|1 &gt;s|2 |3 |4
-^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
-^|8
-|9 2+&gt;|10
-|================</code></pre>
-</td></tr></table>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="33%" valign="top"><div><h3><a name="_top_left_pane"></a>Top Left Pane</h3>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div></td>
-<td rowspan="2" align="left" width="66%" valign="top"><div><h3><a name="_right_pane"></a>Right Pane</h3>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</code></pre>
-</td></tr></table>
-<p><b>Code filter example</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
-<i><font color="#9A1900"> comment.'''</font></i>
-<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
-<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
- word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font>
- <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
- <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
- <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
- <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
-<ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<ol type="1">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol>
-</li>
-</ul></div></td>
-</tr>
-<tr>
-<td align="left" width="33%" valign="top"><div><h3><a name="_bottom_left_pane"></a>Bottom Left Pane</h3>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<ol type="1">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol>
-</li>
-</ul></div></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 13. </b>Three panes</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>.Three panes
-[cols="a,2a"]
-|==================================
-|
-[float]
-Top Left Pane
-~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-.2+|
-[float]
-Right Pane
-~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|
-[float]
-Bottom Left Pane
-~~~~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</code></pre>
-</td></tr></table>
-<hr>
-<h2><a name="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes"></a>Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="20%" valign="top"></th>
-<th align="left" width="20%" valign="top">frame </th>
-<th align="left" width="20%" valign="top"> grid </th>
-<th align="left" width="20%" valign="top">valign </th>
-<th align="left" width="20%" valign="top">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="20%" valign="top"><pre style="font-family: inherit;">&nbsp;
-&nbsp;
-&nbsp;</pre></td>
-<td align="left" width="20%" valign="top"><p>all</p></td>
-<td align="left" width="20%" valign="top"><p>all</p></td>
-<td align="left" width="20%" valign="top"><p>top</p></td>
-<td align="left" width="20%" valign="top"><p>left</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>:frame: all
-:grid: all
-:halign: left
-:valign: top
-
-[options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</td></tr></table>
-<div>
-<table rules="rows"
-width="50%"
-frame="vsides"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="center" width="20%" valign="middle"></th>
-<th align="center" width="20%" valign="middle">frame </th>
-<th align="center" width="20%" valign="middle"> grid </th>
-<th align="center" width="20%" valign="middle">valign </th>
-<th align="center" width="20%" valign="middle">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="center" width="20%" valign="middle"><pre style="font-family: inherit;">&nbsp;
-&nbsp;
-&nbsp;</pre></td>
-<td align="center" width="20%" valign="middle"><p>sides</p></td>
-<td align="center" width="20%" valign="middle"><p>rows</p></td>
-<td align="center" width="20%" valign="middle"><p>middle</p></td>
-<td align="center" width="20%" valign="middle"><p>center</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 14. </b>Table test</p>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>:frame: sides
-:grid: rows
-:halign: center
-:valign: middle
-
-.Table test
-[width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</td></tr></table>
-<div align="right">
-<table rules="cols"
-width="50%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="right" width="20%" valign="bottom"></th>
-<th align="right" width="20%" valign="bottom">frame </th>
-<th align="right" width="20%" valign="bottom"> grid </th>
-<th align="right" width="20%" valign="bottom">valign </th>
-<th align="right" width="20%" valign="bottom">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="right" width="20%" valign="bottom"><pre style="font-family: inherit;">&nbsp;
-&nbsp;
-&nbsp;</pre></td>
-<td align="right" width="20%" valign="bottom"><p>topbot</p></td>
-<td align="right" width="20%" valign="bottom"><p>cols</p></td>
-<td align="right" width="20%" valign="bottom"><p>bottom</p></td>
-<td align="right" width="20%" valign="bottom"><p>right</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>:frame: topbot
-:grid: cols
-:halign: right
-:valign: bottom
-
-[align="right",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</td></tr></table>
-<div align="center">
-<table rules="none"
-width="50%"
-frame="void"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="20%" valign="top"></th>
-<th align="left" width="20%" valign="top">frame </th>
-<th align="left" width="20%" valign="top"> grid </th>
-<th align="left" width="20%" valign="top">valign </th>
-<th align="left" width="20%" valign="top">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="20%" valign="top"><pre style="font-family: inherit;">&nbsp;
-&nbsp;
-&nbsp;</pre></td>
-<td align="left" width="20%" valign="top"><p>none</p></td>
-<td align="left" width="20%" valign="top"><p>none</p></td>
-<td align="left" width="20%" valign="top"><p>top</p></td>
-<td align="left" width="20%" valign="top"><p>left</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<p><b>AsciiDoc source</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>:frame: none
-:grid: none
-:halign: left
-:valign: top
-
-[align="center",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</td></tr></table>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>AsciiDoc New tables</title>
+</head>
+<body>
+<h1>AsciiDoc New tables</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p><strong>New in version 8.3.0</strong></p>
+<p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
+and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
+current table syntax is overly complicated and unwieldy to edit,
+hopefully a more usable syntax will appear in future versions of
+AsciiDoc.&#8221;</p>
+<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
+<tr><td>
+<p><em>Update</em></p>
+<p>The following additions were made at AsciiDoc 8.4.4:</p>
+<ul>
+<li>
+<p>
+Cell column and row spanning.
+</p>
+</li>
+<li>
+<p>
+Styles can be applied per cell.
+</p>
+</li>
+<li>
+<p>
+Vertical cell alignment can be applied to columns and cells.
+</p>
+</li>
+</ul>
+<p>See the examples at the end of this document.</p>
+</td></tr></table>
+<p>At first glance it doesn&#8217;t look much different to the old syntax but
+it&#8217;s a lot more flexible, easier to enter and supports a lot of column
+styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
+inline elements). The old tables syntax has been deprecated but is
+currently still processed. Here are some examples of AsciiDoc <em>new
+tables</em>:</p>
+<div>
+<table rules="all"
+width="15%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="33%" valign="top"><p>1</p></td>
+<td align="left" width="33%" valign="top"><p>2</p></td>
+<td align="left" width="33%" valign="top"><p>A</p></td>
+</tr>
+<tr>
+<td align="left" width="33%" valign="top"><p>3</p></td>
+<td align="left" width="33%" valign="top"><p>4</p></td>
+<td align="left" width="33%" valign="top"><p>B</p></td>
+</tr>
+<tr>
+<td align="left" width="33%" valign="top"><p>5</p></td>
+<td align="left" width="33%" valign="top"><p>6</p></td>
+<td align="left" width="33%" valign="top"><p>C</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Simple table</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[width="15%"]
+|=======
+|1 |2 |A
+|3 |4 |B
+|5 |6 |C
+|=======</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="40%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top">Column 1 </th>
+<th align="left" width="50%" valign="top">Column 2</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td align="left" width="50%" style="font-weight:bold" valign="top"><p>6</p></td>
+<td align="left" width="50%" style="font-weight:bold" valign="top"><p>Three items</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>1</p></td>
+<td align="left" width="50%" valign="top"><p>Item 1</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>2</p></td>
+<td align="left" width="50%" valign="top"><p>Item 2</p></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><p>3</p></td>
+<td align="left" width="50%" valign="top"><p>Item 3</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 2. </b>Table with title, header and footer</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.An example table
+[width="40%",frame="topbot",options="header,footer"]
+|======================
+|Column 1 |Column 2
+|1 |Item 1
+|2 |Item 2
+|3 |Item 3
+|6 |Three items
+|======================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="50%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="right" width="20%" valign="top"> </th>
+<th colspan="2" align="center" width="40%" valign="top">Columns 2 and 3</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td align="right" width="20%" style="font-weight:bold" valign="top"><p><strong>footer 1</strong></p></td>
+<td align="center" width="40%" style="font-weight:bold" valign="top"><p><code>footer 2</code></p></td>
+<td align="center" width="40%" style="font-weight:bold" valign="top"><p><em>footer 3</em></p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td align="right" width="20%" valign="top"><p><strong>1</strong></p></td>
+<td align="center" width="40%" valign="top"><p><code>Item 1</code></p></td>
+<td align="center" width="40%" valign="top"><p><em>Item 1</em></p></td>
+</tr>
+<tr>
+<td align="right" width="20%" valign="top"><p><strong>2</strong></p></td>
+<td align="center" width="40%" valign="top"><p><code>Item 2</code></p></td>
+<td align="center" width="40%" valign="top"><p><em>Item 2</em></p></td>
+</tr>
+<tr>
+<td align="right" width="20%" valign="top"><p><strong>3</strong></p></td>
+<td align="center" width="40%" valign="top"><p><code>Item 3</code></p></td>
+<td align="center" width="40%" valign="top"><p><em>Item 3</em></p></td>
+</tr>
+<tr>
+<td align="right" width="20%" valign="top"><p><strong>4</strong></p></td>
+<td align="center" width="40%" valign="top"><p><code>Item 4</code></p></td>
+<td align="center" width="40%" valign="top"><p><em>Item 4</em></p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 3. </b>Columns formatted with strong, monospaced and emphasis styles</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.An example table
+[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
+|==========================
+| 2+|Columns 2 and 3
+|1 |Item 1 |Item 1
+|2 |Item 2 |Item 2
+|3 |Item 3 |Item 3
+|4 |Item 4 |Item 4
+|footer 1|footer 2|footer 3
+|==========================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="center" width="11%" valign="top">ID</th>
+<th align="left" width="22%" valign="top">Customer Name</th>
+<th align="left" width="22%" valign="top">Contact Name</th>
+<th align="left" width="22%" valign="top">Customer Address</th>
+<th align="left" width="22%" valign="top">Phone</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center" width="11%" valign="top"><p>AROUT</p></td>
+<td align="left" width="22%" valign="top"><p>Around the Horn</p></td>
+<td align="left" width="22%" valign="top"><p>Thomas Hardy</p></td>
+<td align="left" width="22%" valign="top"><p>120 Hanover Sq.
+London</p></td>
+<td align="left" width="22%" valign="top"><p>(171) 555-7788</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BERGS</p></td>
+<td align="left" width="22%" valign="top"><p>Berglunds snabbkop</p></td>
+<td align="left" width="22%" valign="top"><p>Christina Berglund</p></td>
+<td align="left" width="22%" valign="top"><p>Berguvsvagen 8
+Lulea</p></td>
+<td align="left" width="22%" valign="top"><p>0921-12 34 65</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BLAUS</p></td>
+<td align="left" width="22%" valign="top"><p>Blauer See Delikatessen</p></td>
+<td align="left" width="22%" valign="top"><p>Hanna Moos</p></td>
+<td align="left" width="22%" valign="top"><p>Forsterstr. 57
+Mannheim</p></td>
+<td align="left" width="22%" valign="top"><p>0621-08460</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BLONP</p></td>
+<td align="left" width="22%" valign="top"><p>Blondel pere et fils</p></td>
+<td align="left" width="22%" valign="top"><p>Frederique Citeaux</p></td>
+<td align="left" width="22%" valign="top"><p>24, place Kleber
+Strasbourg</p></td>
+<td align="left" width="22%" valign="top"><p>88.60.15.31</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BOLID</p></td>
+<td align="left" width="22%" valign="top"><p>Bolido Comidas preparadas</p></td>
+<td align="left" width="22%" valign="top"><p>Martin Sommer</p></td>
+<td align="left" width="22%" valign="top"><p>C/ Araquil, 67
+Madrid</p></td>
+<td align="left" width="22%" valign="top"><p>(91) 555 22 82</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BONAP</p></td>
+<td align="left" width="22%" valign="top"><p>Bon app'</p></td>
+<td align="left" width="22%" valign="top"><p>Laurence Lebihan</p></td>
+<td align="left" width="22%" valign="top"><p>12, rue des Bouchers
+Marseille</p></td>
+<td align="left" width="22%" valign="top"><p>91.24.45.40</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BOTTM</p></td>
+<td align="left" width="22%" valign="top"><p>Bottom-Dollar Markets</p></td>
+<td align="left" width="22%" valign="top"><p>Elizabeth Lincoln</p></td>
+<td align="left" width="22%" valign="top"><p>23 Tsawassen Blvd.
+Tsawassen</p></td>
+<td align="left" width="22%" valign="top"><p>(604) 555-4729</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>BSBEV</p></td>
+<td align="left" width="22%" valign="top"><p>B&#8217;s Beverages</p></td>
+<td align="left" width="22%" valign="top"><p>Victoria Ashworth</p></td>
+<td align="left" width="22%" valign="top"><p>Fauntleroy Circus
+London</p></td>
+<td align="left" width="22%" valign="top"><p>(171) 555-1212</p></td>
+</tr>
+<tr>
+<td align="center" width="11%" valign="top"><p>CACTU</p></td>
+<td align="left" width="22%" valign="top"><p>Cactus Comidas para llevar</p></td>
+<td align="left" width="22%" valign="top"><p>Patricio Simpson</p></td>
+<td align="left" width="22%" valign="top"><p>Cerrito 333
+Buenos Aires</p></td>
+<td align="left" width="22%" valign="top"><p>(1) 135-5555</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 4. </b>A table with externally sourced CSV data</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code> [format="csv",cols="^1,4*2",options="header"]
+ |===================================================
+ ID,Customer Name,Contact Name,Customer Address,Phone
+ include::customers.csv[]
+ |===================================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="70%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="14%" valign="top"><p>root</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>0</p></td>
+<td align="left" width="14%" valign="top"><p>0</p></td>
+<td align="left" width="14%" valign="top"><p>root</p></td>
+<td align="left" width="14%" valign="top"><p>/root</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/bash</p></td>
+</tr>
+<tr>
+<td align="left" width="14%" valign="top"><p>daemon</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>1</p></td>
+<td align="left" width="14%" valign="top"><p>1</p></td>
+<td align="left" width="14%" valign="top"><p>daemon</p></td>
+<td align="left" width="14%" valign="top"><p>/usr/sbin</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" width="14%" valign="top"><p>bin</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>2</p></td>
+<td align="left" width="14%" valign="top"><p>2</p></td>
+<td align="left" width="14%" valign="top"><p>bin</p></td>
+<td align="left" width="14%" valign="top"><p>/bin</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" width="14%" valign="top"><p>sys</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>3</p></td>
+<td align="left" width="14%" valign="top"><p>3</p></td>
+<td align="left" width="14%" valign="top"><p>sys</p></td>
+<td align="left" width="14%" valign="top"><p>/dev</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" width="14%" valign="top"><p>sync</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>4</p></td>
+<td align="left" width="14%" valign="top"><p>65534</p></td>
+<td align="left" width="14%" valign="top"><p>sync</p></td>
+<td align="left" width="14%" valign="top"><p>/bin</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/sync</p></td>
+</tr>
+<tr>
+<td align="left" width="14%" valign="top"><p>games</p></td>
+<td align="left" width="14%" valign="top"><p>x</p></td>
+<td align="left" width="14%" valign="top"><p>5</p></td>
+<td align="left" width="14%" valign="top"><p>60</p></td>
+<td align="left" width="14%" valign="top"><p>games</p></td>
+<td align="left" width="14%" valign="top"><p>/usr/games</p></td>
+<td align="left" width="14%" valign="top"><p>/bin/sh</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 5. </b>DVS formatted table</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[width="70%",format="dsv"]
+|====================================
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+|====================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="80%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="17%" valign="top">Date </th>
+<th align="center" width="11%" valign="top">Duration </th>
+<th align="center" width="11%" valign="top">Avg HR </th>
+<th align="left" width="58%" valign="top">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>10:24</p></td>
+<td align="center" width="11%" valign="top"><p>157</p></td>
+<td align="left" width="58%" valign="top"><p>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>23:03</p></td>
+<td align="center" width="11%" valign="top"><p>152</p></td>
+<td align="left" width="58%" valign="top"><p>Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td align="left" width="17%" valign="top"><p>24-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>40:00</p></td>
+<td align="center" width="11%" valign="top"><p>145</p></td>
+<td align="left" width="58%" valign="top"><p>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 6. </b>Horizontal and vertical source data</p>
+</div>
+<p>Short cells can be entered horizontally, longer cells vertically. The
+default behavior is to strip leading and trailing blank lines within a
+cell. These characteristics aid readability and data entry.</p>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.Windtrainer workouts
+[width="80%",cols="3,^2,^2,10",options="header"]
+|=========================================================
+|Date |Duration |Avg HR |Notes
+
+|22-Aug-08 |10:24 | 157 |
+Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.
+
+|22-Aug-08 |23:03 | 152 |
+Back-to-back with previous interval.
+
+|24-Aug-08 |40:00 | 145 |
+Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).
+
+|=========================================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top">Default paragraphs </th>
+<th align="center" width="50%" valign="top">Centered verses</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><p>Per id.</p>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></td>
+<td align="center" width="50%" valign="top"><pre style="font-family: inherit;">Per id.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</pre></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 7. </b>Default and verse styles</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[cols=",^v",options="header"]
+|===================================
+|Default paragraphs |Centered verses
+2*|Per id.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+|===================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="50%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="20%" valign="top"> </th>
+<th align="left" width="20%" valign="top">West </th>
+<th align="left" width="20%" valign="top">Central </th>
+<th align="left" width="20%" valign="top">East </th>
+<th align="left" width="20%" valign="top"> Total</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="20%" valign="top"><p><strong>Q1</strong></p></td>
+<td align="left" width="20%" valign="top"><p>270</p></td>
+<td align="left" width="20%" valign="top"><p>292</p></td>
+<td align="left" width="20%" valign="top"><p>342</p></td>
+<td align="left" width="20%" valign="top"><p>904</p></td>
+</tr>
+<tr>
+<td align="left" width="20%" valign="top"><p><strong>Q2</strong></p></td>
+<td align="left" width="20%" valign="top"><p>322</p></td>
+<td align="left" width="20%" valign="top"><p>276</p></td>
+<td align="left" width="20%" valign="top"><p>383</p></td>
+<td align="left" width="20%" valign="top"><p>981</p></td>
+</tr>
+<tr>
+<td align="left" width="20%" valign="top"><p><strong>Q3</strong></p></td>
+<td align="left" width="20%" valign="top"><p>298</p></td>
+<td align="left" width="20%" valign="top"><p>252</p></td>
+<td align="left" width="20%" valign="top"><p>274</p></td>
+<td align="left" width="20%" valign="top"><p>824</p></td>
+</tr>
+<tr>
+<td align="left" width="20%" valign="top"><p><strong>Q4</strong></p></td>
+<td align="left" width="20%" valign="top"><p>344</p></td>
+<td align="left" width="20%" valign="top"><p>247</p></td>
+<td align="left" width="20%" valign="top"><p>402</p></td>
+<td align="left" width="20%" valign="top"><p>993</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 8. </b>Horizontal and vertial headings</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.Horizontal and vertial headings
+[cols="h,4*",options="header",width="50%"]
+|==================================
+| |West |Central |East | Total
+|Q1 |270 |292 |342 | 904
+|Q2 |322 |276 |383 | 981
+|Q3 |298 |252 |274 | 824
+|Q4 |344 |247 |402 | 993
+|==================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="cols"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top">Output markup </th>
+<th align="left" width="50%" valign="top">AsciiDoc source</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><div><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</code></pre>
+</td></tr></table>
+<p><b>Code filter example</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
+<i><font color="#9A1900"> comment.'''</font></i>
+<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
+<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
+ word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font>
+ <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
+ <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
+ <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
+ <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
+<ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<ol type="1">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol>
+</li>
+</ul></div></td>
+<td align="left" width="50%" valign="top"><pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.</code></pre></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 9. </b>AsciiDoc style in first column, Literal in second</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[cols="asciidoc,literal",options="header",grid="cols"]
+|==================================
+|Output markup |AsciiDoc source
+2*|
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="100%" valign="top"><p><em>URLs</em>:
+<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
+<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
+<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
+<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
+<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
+<p><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
+<p><em>Emphasized text</em>, <strong>Strong text</strong>, <code>Monospaced text</code>, &#8220;Quoted text&#8221;.</p>
+<p><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
+Some <sup>super text</sup> and <sub>some sub text</sub></p>
+<p><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
+double arrow, &#8656; left double arrow.</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 10. </b>Cell containing lots of example markup elements</p>
+</div>
+<a name="X1"></a>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>|====================================================================
+|'URLs':
+https://asciidoc.org/[The AsciiDoc home page],
+https://asciidoc.org/,
+mailto:joe.bloggs@example.com[email Joe Bloggs],
+joe.bloggs@example.com,
+callto:joe.bloggs[].
+
+'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
+
+'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
+
+'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
+Some ^super text^ and ~some sub text~
+
+'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
+-- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
+double arrow, &lt;= left double arrow.
+|====================================================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="75%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="33%" valign="top"><p>Normal cell</p></td>
+<td align="left" width="66%" valign="top"><div><p>Cell with nested table</p>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="66%" valign="top"><p>Nested table cell 1</p></td>
+<td align="left" width="33%" valign="top"><p>Nested table cell 2</p></td>
+</tr>
+</tbody>
+</table>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 11. </b>Nested table</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[width="75%",cols="1,2a"]
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+[cols="2,1"]
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="25%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="25%" valign="top"><p><em>1</em></p></td>
+<td align="right" width="25%" valign="top"><p><strong>2</strong></p></td>
+<td align="center" width="25%" valign="top"><p>3</p></td>
+<td align="right" width="25%" valign="top"><p><strong>4</strong></p></td>
+</tr>
+<tr>
+<td align="center" width="25%" valign="top"><p><em>5</em></p></td>
+<td colspan="2" rowspan="2" align="center" width="25%" valign="middle"><p><code>6</code></p></td>
+<td rowspan="3" align="left" width="25%" valign="bottom"><p><code>7</code></p></td>
+</tr>
+<tr>
+<td align="center" width="25%" valign="top"><p><em>8</em></p></td>
+</tr>
+<tr>
+<td align="left" width="25%" valign="top"><p><em>9</em></p></td>
+<td colspan="2" align="right" width="25%" valign="top"><p><code>10</code></p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 12. </b>Spans, alignments and styles</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.Spans, alignments and styles
+[cols="e,m,^,&gt;s",width="25%"]
+|================
+|1 &gt;s|2 |3 |4
+^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
+^|8
+|9 2+&gt;|10
+|================</code></pre>
+</td></tr></table>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="33%" valign="top"><div><h3><a name="_top_left_pane"></a>Top Left Pane</h3>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div></td>
+<td rowspan="2" align="left" width="66%" valign="top"><div><h3><a name="_right_pane"></a>Right Pane</h3>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</code></pre>
+</td></tr></table>
+<p><b>Code filter example</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
+<i><font color="#9A1900"> comment.'''</font></i>
+<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
+<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
+ word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font>
+ <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
+ <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
+ <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
+ <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
+<ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<ol type="1">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol>
+</li>
+</ul></div></td>
+</tr>
+<tr>
+<td align="left" width="33%" valign="top"><div><h3><a name="_bottom_left_pane"></a>Bottom Left Pane</h3>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<ol type="1">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol>
+</li>
+</ul></div></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 13. </b>Three panes</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>.Three panes
+[cols="a,2a"]
+|==================================
+|
+[float]
+Top Left Pane
+~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+.2+|
+[float]
+Right Pane
+~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|
+[float]
+Bottom Left Pane
+~~~~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</code></pre>
+</td></tr></table>
+<hr>
+<h2><a name="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes"></a>Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="20%" valign="top"></th>
+<th align="left" width="20%" valign="top">frame </th>
+<th align="left" width="20%" valign="top"> grid </th>
+<th align="left" width="20%" valign="top">valign </th>
+<th align="left" width="20%" valign="top">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="20%" valign="top"><pre style="font-family: inherit;">&nbsp;
+&nbsp;
+&nbsp;</pre></td>
+<td align="left" width="20%" valign="top"><p>all</p></td>
+<td align="left" width="20%" valign="top"><p>all</p></td>
+<td align="left" width="20%" valign="top"><p>top</p></td>
+<td align="left" width="20%" valign="top"><p>left</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>:frame: all
+:grid: all
+:halign: left
+:valign: top
+
+[options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</td></tr></table>
+<div>
+<table rules="rows"
+width="50%"
+frame="vsides"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="center" width="20%" valign="middle"></th>
+<th align="center" width="20%" valign="middle">frame </th>
+<th align="center" width="20%" valign="middle"> grid </th>
+<th align="center" width="20%" valign="middle">valign </th>
+<th align="center" width="20%" valign="middle">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center" width="20%" valign="middle"><pre style="font-family: inherit;">&nbsp;
+&nbsp;
+&nbsp;</pre></td>
+<td align="center" width="20%" valign="middle"><p>sides</p></td>
+<td align="center" width="20%" valign="middle"><p>rows</p></td>
+<td align="center" width="20%" valign="middle"><p>middle</p></td>
+<td align="center" width="20%" valign="middle"><p>center</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 14. </b>Table test</p>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>:frame: sides
+:grid: rows
+:halign: center
+:valign: middle
+
+.Table test
+[width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</td></tr></table>
+<div align="right">
+<table rules="cols"
+width="50%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="right" width="20%" valign="bottom"></th>
+<th align="right" width="20%" valign="bottom">frame </th>
+<th align="right" width="20%" valign="bottom"> grid </th>
+<th align="right" width="20%" valign="bottom">valign </th>
+<th align="right" width="20%" valign="bottom">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="right" width="20%" valign="bottom"><pre style="font-family: inherit;">&nbsp;
+&nbsp;
+&nbsp;</pre></td>
+<td align="right" width="20%" valign="bottom"><p>topbot</p></td>
+<td align="right" width="20%" valign="bottom"><p>cols</p></td>
+<td align="right" width="20%" valign="bottom"><p>bottom</p></td>
+<td align="right" width="20%" valign="bottom"><p>right</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>:frame: topbot
+:grid: cols
+:halign: right
+:valign: bottom
+
+[align="right",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</td></tr></table>
+<div align="center">
+<table rules="none"
+width="50%"
+frame="void"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="20%" valign="top"></th>
+<th align="left" width="20%" valign="top">frame </th>
+<th align="left" width="20%" valign="top"> grid </th>
+<th align="left" width="20%" valign="top">valign </th>
+<th align="left" width="20%" valign="top">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="20%" valign="top"><pre style="font-family: inherit;">&nbsp;
+&nbsp;
+&nbsp;</pre></td>
+<td align="left" width="20%" valign="top"><p>none</p></td>
+<td align="left" width="20%" valign="top"><p>none</p></td>
+<td align="left" width="20%" valign="top"><p>top</p></td>
+<td align="left" width="20%" valign="top"><p>left</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<p><b>AsciiDoc source</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>:frame: none
+:grid: none
+:halign: left
+:valign: top
+
+[align="center",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</td></tr></table>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/newtables-html5.html b/tests/data/newtables-html5.html
index 885dcc8..aaffb1e 100644
--- a/tests/data/newtables-html5.html
+++ b/tests/data/newtables-html5.html
@@ -1,2038 +1,2038 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>AsciiDoc New tables</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>AsciiDoc New tables</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><strong>New in version 8.3.0</strong></p></div>
-<div class="paragraph"><p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
-and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
-current table syntax is overly complicated and unwieldy to edit,
-hopefully a more usable syntax will appear in future versions of
-AsciiDoc.&#8221;</p></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">Update</div>
-<div class="paragraph"><p>The following additions were made at AsciiDoc 8.4.4:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Cell column and row spanning.
-</p>
-</li>
-<li>
-<p>
-Styles can be applied per cell.
-</p>
-</li>
-<li>
-<p>
-Vertical cell alignment can be applied to columns and cells.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>See the examples at the end of this document.</p></div>
-</div></div>
-<div class="paragraph"><p>At first glance it doesn&#8217;t look much different to the old syntax but
-it&#8217;s a lot more flexible, easier to enter and supports a lot of column
-styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
-inline elements). The old tables syntax has been deprecated but is
-currently still processed. Here are some examples of AsciiDoc <em>new
-tables</em>:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:15%;
-">
-<caption class="title">Table 1. Simple table</caption>
-<col style="width:33%;">
-<col style="width:33%;">
-<col style="width:33%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">A</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">B</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">C</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>[width="15%"]
-|=======
-|1 |2 |A
-|3 |4 |B
-|5 |6 |C
-|=======</pre>
-</div></div>
-<table class="tableblock frame-topbot grid-all"
-style="
-width:40%;
-">
-<caption class="title">Table 2. Table with title, header and footer</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >Column 1 </th>
-<th class="tableblock halign-left valign-top" >Column 2</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Three items</p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 1</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 2</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 3</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.An example table
-[width="40%",frame="topbot",options="header,footer"]
-|======================
-|Column 1 |Column 2
-|1 |Item 1
-|2 |Item 2
-|3 |Item 3
-|6 |Three items
-|======================</pre>
-</div></div>
-<table class="tableblock frame-topbot grid-all"
-style="
-width:50%;
-">
-<caption class="title">Table 3. Columns formatted with strong, monospaced and emphasis styles</caption>
-<col style="width:20%;">
-<col style="width:40%;">
-<col style="width:40%;">
-<thead>
-<tr>
-<th class="tableblock halign-right valign-top" > </th>
-<th class="tableblock halign-center valign-top" colspan="2" >Columns 2 and 3</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>footer 1</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">footer 2</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>footer 3</em></p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>1</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 1</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 1</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>2</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 2</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 2</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>3</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 3</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 3</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>4</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 4</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 4</em></p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.An example table
-[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
-|==========================
-| 2+|Columns 2 and 3
-|1 |Item 1 |Item 1
-|2 |Item 2 |Item 2
-|3 |Item 3 |Item 3
-|4 |Item 4 |Item 4
-|footer 1|footer 2|footer 3
-|==========================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<caption class="title">Table 4. A table with externally sourced CSV data</caption>
-<col style="width:11%;">
-<col style="width:22%;">
-<col style="width:22%;">
-<col style="width:22%;">
-<col style="width:22%;">
-<thead>
-<tr>
-<th class="tableblock halign-center valign-top" >ID</th>
-<th class="tableblock halign-left valign-top" >Customer Name</th>
-<th class="tableblock halign-left valign-top" >Contact Name</th>
-<th class="tableblock halign-left valign-top" >Customer Address</th>
-<th class="tableblock halign-left valign-top" >Phone</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">AROUT</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Around the Horn</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Thomas Hardy</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">120 Hanover Sq.
-London</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">(171) 555-7788</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BERGS</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Berglunds snabbkop</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Christina Berglund</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Berguvsvagen 8
-Lulea</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">0921-12 34 65</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BLAUS</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Blauer See Delikatessen</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Hanna Moos</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Forsterstr. 57
-Mannheim</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">0621-08460</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BLONP</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Blondel pere et fils</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Frederique Citeaux</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">24, place Kleber
-Strasbourg</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">88.60.15.31</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BOLID</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Bolido Comidas preparadas</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Martin Sommer</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">C/ Araquil, 67
-Madrid</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">(91) 555 22 82</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BONAP</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Bon app'</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Laurence Lebihan</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">12, rue des Bouchers
-Marseille</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">91.24.45.40</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BOTTM</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Bottom-Dollar Markets</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Elizabeth Lincoln</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">23 Tsawassen Blvd.
-Tsawassen</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">(604) 555-4729</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">BSBEV</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">B&#8217;s Beverages</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Victoria Ashworth</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Fauntleroy Circus
-London</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">(171) 555-1212</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">CACTU</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Cactus Comidas para llevar</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Patricio Simpson</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Cerrito 333
-Buenos Aires</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">(1) 135-5555</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre> [format="csv",cols="^1,4*2",options="header"]
- |===================================================
- ID,Customer Name,Contact Name,Customer Address,Phone
- include::customers.csv[]
- |===================================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:70%;
-">
-<caption class="title">Table 5. DVS formatted table</caption>
-<col style="width:14%;">
-<col style="width:14%;">
-<col style="width:14%;">
-<col style="width:14%;">
-<col style="width:14%;">
-<col style="width:14%;">
-<col style="width:14%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">root</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">0</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">0</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">root</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/root</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/bash</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">daemon</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">daemon</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/usr/sbin</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">bin</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">bin</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">sys</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">sys</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/dev</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">sync</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">65534</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">sync</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sync</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">games</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">60</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">games</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/usr/games</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>[width="70%",format="dsv"]
-|====================================
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-|====================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:80%;
-">
-<caption class="title">Table 6. Horizontal and vertical source data</caption>
-<col style="width:17%;">
-<col style="width:11%;">
-<col style="width:11%;">
-<col style="width:58%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >Date </th>
-<th class="tableblock halign-center valign-top" >Duration </th>
-<th class="tableblock halign-center valign-top" >Avg HR </th>
-<th class="tableblock halign-left valign-top" >Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">10:24</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">157</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">23:03</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">152</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">24-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">40:00</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">145</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-<div class="paragraph"><p>Short cells can be entered horizontally, longer cells vertically. The
-default behavior is to strip leading and trailing blank lines within a
-cell. These characteristics aid readability and data entry.</p></div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.Windtrainer workouts
-[width="80%",cols="3,^2,^2,10",options="header"]
-|=========================================================
-|Date |Duration |Avg HR |Notes
-
-|22-Aug-08 |10:24 | 157 |
-Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.
-
-|22-Aug-08 |23:03 | 152 |
-Back-to-back with previous interval.
-
-|24-Aug-08 |40:00 | 145 |
-Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).
-
-|=========================================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<caption class="title">Table 7. Default and verse styles</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >Default paragraphs </th>
-<th class="tableblock halign-center valign-top" >Centered verses</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Per id.</p>
-<p class="tableblock">Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<p class="tableblock">Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></td>
-<td class="tableblock halign-center valign-top" ><div class="verse">Per id.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</div></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>[cols=",^v",options="header"]
-|===================================
-|Default paragraphs |Centered verses
-2*|Per id.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-|===================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:50%;
-">
-<caption class="title">Table 8. Horizontal and vertial headings</caption>
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" > </th>
-<th class="tableblock halign-left valign-top" >West </th>
-<th class="tableblock halign-left valign-top" >Central </th>
-<th class="tableblock halign-left valign-top" >East </th>
-<th class="tableblock halign-left valign-top" > Total</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">270</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">292</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">342</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">904</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">322</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">276</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">383</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">981</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">298</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">252</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">274</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">824</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q4</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">344</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">247</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">402</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">993</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.Horizontal and vertial headings
-[cols="h,4*",options="header",width="50%"]
-|==================================
-| |West |Central |East | Total
-|Q1 |270 |292 |342 | 904
-|Q2 |322 |276 |383 | 981
-|Q3 |298 |252 |274 | 824
-|Q4 |344 |247 |402 | 993
-|==================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-cols"
-style="
-width:100%;
-">
-<caption class="title">Table 9. AsciiDoc style in first column, Literal in second</caption>
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >Output markup </th>
-<th class="tableblock halign-left valign-top" >AsciiDoc source</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Code filter example</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.</pre></div></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>[cols="asciidoc,literal",options="header",grid="cols"]
-|==================================
-|Output markup |AsciiDoc source
-2*|
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<caption class="title">Table 10. Cell containing lots of example markup elements</caption>
-<col style="width:100%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>URLs</em>:
-<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
-<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
-<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
-<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
-<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
-<p class="tableblock"><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
-<p class="tableblock"><em>Emphasized text</em>, <strong>Strong text</strong>, <span class="monospaced">Monospaced text</span>, &#8220;Quoted text&#8221;.</p>
-<p class="tableblock"><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
-Some <sup>super text</sup> and <sub>some sub text</sub></p>
-<p class="tableblock"><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
-double arrow, &#8656; left double arrow.</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock" id="X1">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>|====================================================================
-|'URLs':
-https://asciidoc.org/[The AsciiDoc home page],
-https://asciidoc.org/,
-mailto:joe.bloggs@example.com[email Joe Bloggs],
-joe.bloggs@example.com,
-callto:joe.bloggs[].
-
-'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
-
-'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
-
-'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
-Some ^super text^ and ~some sub text~
-
-'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
--- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
-double arrow, &lt;= left double arrow.
-|====================================================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:75%;
-">
-<caption class="title">Table 11. Nested table</caption>
-<col style="width:33%;">
-<col style="width:66%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Normal cell</p></td>
-<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>Cell with nested table</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<col style="width:66%;">
-<col style="width:33%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Nested table cell 1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Nested table cell 2</p></td>
-</tr>
-</tbody>
-</table></div></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>[width="75%",cols="1,2a"]
-|==============================================
-|Normal cell
-
-|Cell with nested table
-
-[cols="2,1"]
-!==============================================
-!Nested table cell 1 !Nested table cell 2
-!==============================================
-
-|==============================================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:25%;
-">
-<caption class="title">Table 12. Spans, alignments and styles</caption>
-<col style="width:25%;">
-<col style="width:25%;">
-<col style="width:25%;">
-<col style="width:25%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>1</em></p></td>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>2</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>4</strong></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>5</em></p></td>
-<td class="tableblock halign-center valign-middle" colspan="2" rowspan="2" ><p class="tableblock monospaced">6</p></td>
-<td class="tableblock halign-left valign-bottom" rowspan="3" ><p class="tableblock monospaced">7</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>8</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>9</em></p></td>
-<td class="tableblock halign-right valign-top" colspan="2" ><p class="tableblock monospaced">10</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.Spans, alignments and styles
-[cols="e,m,^,&gt;s",width="25%"]
-|================
-|1 &gt;s|2 |3 |4
-^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
-^|8
-|9 2+&gt;|10
-|================</pre>
-</div></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<caption class="title">Table 13. Three panes</caption>
-<col style="width:33%;">
-<col style="width:66%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div><h3 id="_top_left_pane" class="float">Top Left Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div></div></td>
-<td class="tableblock halign-left valign-top" rowspan="2" ><div><h3 id="_right_pane" class="float">Right Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Code filter example</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><div><h3 id="_bottom_left_pane" class="float">Bottom Left Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>.Three panes
-[cols="a,2a"]
-|==================================
-|
-[float]
-Top Left Pane
-~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-.2+|
-[float]
-Right Pane
-~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|
-[float]
-Bottom Left Pane
-~~~~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes">Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
-<div class="sectionbody">
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" ></th>
-<th class="tableblock halign-left valign-top" >frame </th>
-<th class="tableblock halign-left valign-top" > grid </th>
-<th class="tableblock halign-left valign-top" >valign </th>
-<th class="tableblock halign-left valign-top" >halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">all</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">all</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">top</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">left</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>:frame: all
-:grid: all
-:halign: left
-:valign: top
-
-[options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</pre>
-</div></div>
-<table class="tableblock frame-sides grid-rows"
-style="
-width:50%;
-">
-<caption class="title">Table 14. Table test</caption>
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<thead>
-<tr>
-<th class="tableblock halign-center valign-middle" ></th>
-<th class="tableblock halign-center valign-middle" >frame </th>
-<th class="tableblock halign-center valign-middle" > grid </th>
-<th class="tableblock halign-center valign-middle" >valign </th>
-<th class="tableblock halign-center valign-middle" >halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-center valign-middle" ><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td class="tableblock halign-center valign-middle" ><p class="tableblock">sides</p></td>
-<td class="tableblock halign-center valign-middle" ><p class="tableblock">rows</p></td>
-<td class="tableblock halign-center valign-middle" ><p class="tableblock">middle</p></td>
-<td class="tableblock halign-center valign-middle" ><p class="tableblock">center</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>:frame: sides
-:grid: rows
-:halign: center
-:valign: middle
-
-.Table test
-[width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</pre>
-</div></div>
-<table class="tableblock frame-topbot grid-cols"
-style="
-margin-left:auto; margin-right:0;
-width:50%;
-">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<thead>
-<tr>
-<th class="tableblock halign-right valign-bottom" ></th>
-<th class="tableblock halign-right valign-bottom" >frame </th>
-<th class="tableblock halign-right valign-bottom" > grid </th>
-<th class="tableblock halign-right valign-bottom" >valign </th>
-<th class="tableblock halign-right valign-bottom" >halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-right valign-bottom" ><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td class="tableblock halign-right valign-bottom" ><p class="tableblock">topbot</p></td>
-<td class="tableblock halign-right valign-bottom" ><p class="tableblock">cols</p></td>
-<td class="tableblock halign-right valign-bottom" ><p class="tableblock">bottom</p></td>
-<td class="tableblock halign-right valign-bottom" ><p class="tableblock">right</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>:frame: topbot
-:grid: cols
-:halign: right
-:valign: bottom
-
-[align="right",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</pre>
-</div></div>
-<table class="tableblock frame-none grid-none"
-style="
-margin-left:auto; margin-right:auto;
-width:50%;
-">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<col style="width:20%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" ></th>
-<th class="tableblock halign-left valign-top" >frame </th>
-<th class="tableblock halign-left valign-top" > grid </th>
-<th class="tableblock halign-left valign-top" >valign </th>
-<th class="tableblock halign-left valign-top" >halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">none</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">none</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">top</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">left</p></td>
-</tr>
-</tbody>
-</table>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content monospaced">
-<pre>:frame: none
-:grid: none
-:halign: left
-:valign: top
-
-[align="center",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</pre>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>AsciiDoc New tables</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>AsciiDoc New tables</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><strong>New in version 8.3.0</strong></p></div>
+<div class="paragraph"><p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
+and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
+current table syntax is overly complicated and unwieldy to edit,
+hopefully a more usable syntax will appear in future versions of
+AsciiDoc.&#8221;</p></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">Update</div>
+<div class="paragraph"><p>The following additions were made at AsciiDoc 8.4.4:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Cell column and row spanning.
+</p>
+</li>
+<li>
+<p>
+Styles can be applied per cell.
+</p>
+</li>
+<li>
+<p>
+Vertical cell alignment can be applied to columns and cells.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>See the examples at the end of this document.</p></div>
+</div></div>
+<div class="paragraph"><p>At first glance it doesn&#8217;t look much different to the old syntax but
+it&#8217;s a lot more flexible, easier to enter and supports a lot of column
+styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
+inline elements). The old tables syntax has been deprecated but is
+currently still processed. Here are some examples of AsciiDoc <em>new
+tables</em>:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:15%;
+">
+<caption class="title">Table 1. Simple table</caption>
+<col style="width:33%;">
+<col style="width:33%;">
+<col style="width:33%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">A</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">B</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">C</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>[width="15%"]
+|=======
+|1 |2 |A
+|3 |4 |B
+|5 |6 |C
+|=======</pre>
+</div></div>
+<table class="tableblock frame-topbot grid-all"
+style="
+width:40%;
+">
+<caption class="title">Table 2. Table with title, header and footer</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >Column 1 </th>
+<th class="tableblock halign-left valign-top" >Column 2</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Three items</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 2</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Item 3</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.An example table
+[width="40%",frame="topbot",options="header,footer"]
+|======================
+|Column 1 |Column 2
+|1 |Item 1
+|2 |Item 2
+|3 |Item 3
+|6 |Three items
+|======================</pre>
+</div></div>
+<table class="tableblock frame-topbot grid-all"
+style="
+width:50%;
+">
+<caption class="title">Table 3. Columns formatted with strong, monospaced and emphasis styles</caption>
+<col style="width:20%;">
+<col style="width:40%;">
+<col style="width:40%;">
+<thead>
+<tr>
+<th class="tableblock halign-right valign-top" > </th>
+<th class="tableblock halign-center valign-top" colspan="2" >Columns 2 and 3</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>footer 1</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">footer 2</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>footer 3</em></p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>1</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 1</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 1</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>2</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 2</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 2</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>3</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 3</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 3</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>4</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock monospaced">Item 4</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Item 4</em></p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.An example table
+[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
+|==========================
+| 2+|Columns 2 and 3
+|1 |Item 1 |Item 1
+|2 |Item 2 |Item 2
+|3 |Item 3 |Item 3
+|4 |Item 4 |Item 4
+|footer 1|footer 2|footer 3
+|==========================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<caption class="title">Table 4. A table with externally sourced CSV data</caption>
+<col style="width:11%;">
+<col style="width:22%;">
+<col style="width:22%;">
+<col style="width:22%;">
+<col style="width:22%;">
+<thead>
+<tr>
+<th class="tableblock halign-center valign-top" >ID</th>
+<th class="tableblock halign-left valign-top" >Customer Name</th>
+<th class="tableblock halign-left valign-top" >Contact Name</th>
+<th class="tableblock halign-left valign-top" >Customer Address</th>
+<th class="tableblock halign-left valign-top" >Phone</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">AROUT</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Around the Horn</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Thomas Hardy</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">120 Hanover Sq.
+London</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">(171) 555-7788</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BERGS</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Berglunds snabbkop</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Christina Berglund</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Berguvsvagen 8
+Lulea</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">0921-12 34 65</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BLAUS</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Blauer See Delikatessen</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Hanna Moos</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Forsterstr. 57
+Mannheim</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">0621-08460</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BLONP</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Blondel pere et fils</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Frederique Citeaux</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">24, place Kleber
+Strasbourg</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">88.60.15.31</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BOLID</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Bolido Comidas preparadas</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Martin Sommer</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">C/ Araquil, 67
+Madrid</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">(91) 555 22 82</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BONAP</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Bon app'</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Laurence Lebihan</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">12, rue des Bouchers
+Marseille</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">91.24.45.40</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BOTTM</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Bottom-Dollar Markets</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Elizabeth Lincoln</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">23 Tsawassen Blvd.
+Tsawassen</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">(604) 555-4729</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">BSBEV</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">B&#8217;s Beverages</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Victoria Ashworth</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Fauntleroy Circus
+London</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">(171) 555-1212</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">CACTU</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Cactus Comidas para llevar</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Patricio Simpson</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Cerrito 333
+Buenos Aires</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">(1) 135-5555</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre> [format="csv",cols="^1,4*2",options="header"]
+ |===================================================
+ ID,Customer Name,Contact Name,Customer Address,Phone
+ include::customers.csv[]
+ |===================================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:70%;
+">
+<caption class="title">Table 5. DVS formatted table</caption>
+<col style="width:14%;">
+<col style="width:14%;">
+<col style="width:14%;">
+<col style="width:14%;">
+<col style="width:14%;">
+<col style="width:14%;">
+<col style="width:14%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">0</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">0</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">root</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/root</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/bash</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">daemon</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">daemon</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/usr/sbin</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">bin</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">bin</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">sys</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">sys</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/dev</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">65534</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">sync</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sync</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">games</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">x</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">60</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">games</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/usr/games</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">/bin/sh</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>[width="70%",format="dsv"]
+|====================================
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+|====================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:80%;
+">
+<caption class="title">Table 6. Horizontal and vertical source data</caption>
+<col style="width:17%;">
+<col style="width:11%;">
+<col style="width:11%;">
+<col style="width:58%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >Date </th>
+<th class="tableblock halign-center valign-top" >Duration </th>
+<th class="tableblock halign-center valign-top" >Avg HR </th>
+<th class="tableblock halign-left valign-top" >Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">10:24</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">157</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">23:03</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">152</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">24-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">40:00</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">145</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph"><p>Short cells can be entered horizontally, longer cells vertically. The
+default behavior is to strip leading and trailing blank lines within a
+cell. These characteristics aid readability and data entry.</p></div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.Windtrainer workouts
+[width="80%",cols="3,^2,^2,10",options="header"]
+|=========================================================
+|Date |Duration |Avg HR |Notes
+
+|22-Aug-08 |10:24 | 157 |
+Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.
+
+|22-Aug-08 |23:03 | 152 |
+Back-to-back with previous interval.
+
+|24-Aug-08 |40:00 | 145 |
+Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).
+
+|=========================================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<caption class="title">Table 7. Default and verse styles</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >Default paragraphs </th>
+<th class="tableblock halign-center valign-top" >Centered verses</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Per id.</p>
+<p class="tableblock">Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<p class="tableblock">Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></td>
+<td class="tableblock halign-center valign-top" ><div class="verse">Per id.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</div></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>[cols=",^v",options="header"]
+|===================================
+|Default paragraphs |Centered verses
+2*|Per id.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+|===================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:50%;
+">
+<caption class="title">Table 8. Horizontal and vertial headings</caption>
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" > </th>
+<th class="tableblock halign-left valign-top" >West </th>
+<th class="tableblock halign-left valign-top" >Central </th>
+<th class="tableblock halign-left valign-top" >East </th>
+<th class="tableblock halign-left valign-top" > Total</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">270</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">292</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">342</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">904</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">322</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">276</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">383</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">981</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">298</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">252</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">274</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">824</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock header">Q4</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">344</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">247</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">402</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">993</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.Horizontal and vertial headings
+[cols="h,4*",options="header",width="50%"]
+|==================================
+| |West |Central |East | Total
+|Q1 |270 |292 |342 | 904
+|Q2 |322 |276 |383 | 981
+|Q3 |298 |252 |274 | 824
+|Q4 |344 |247 |402 | 993
+|==================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-cols"
+style="
+width:100%;
+">
+<caption class="title">Table 9. AsciiDoc style in first column, Literal in second</caption>
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >Output markup </th>
+<th class="tableblock halign-left valign-top" >AsciiDoc source</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Code filter example</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.</pre></div></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>[cols="asciidoc,literal",options="header",grid="cols"]
+|==================================
+|Output markup |AsciiDoc source
+2*|
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<caption class="title">Table 10. Cell containing lots of example markup elements</caption>
+<col style="width:100%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>URLs</em>:
+<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
+<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
+<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
+<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
+<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
+<p class="tableblock"><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
+<p class="tableblock"><em>Emphasized text</em>, <strong>Strong text</strong>, <span class="monospaced">Monospaced text</span>, &#8220;Quoted text&#8221;.</p>
+<p class="tableblock"><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
+Some <sup>super text</sup> and <sub>some sub text</sub></p>
+<p class="tableblock"><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
+double arrow, &#8656; left double arrow.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock" id="X1">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>|====================================================================
+|'URLs':
+https://asciidoc.org/[The AsciiDoc home page],
+https://asciidoc.org/,
+mailto:joe.bloggs@example.com[email Joe Bloggs],
+joe.bloggs@example.com,
+callto:joe.bloggs[].
+
+'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
+
+'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
+
+'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
+Some ^super text^ and ~some sub text~
+
+'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
+-- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
+double arrow, &lt;= left double arrow.
+|====================================================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:75%;
+">
+<caption class="title">Table 11. Nested table</caption>
+<col style="width:33%;">
+<col style="width:66%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Normal cell</p></td>
+<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>Cell with nested table</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<col style="width:66%;">
+<col style="width:33%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Nested table cell 1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Nested table cell 2</p></td>
+</tr>
+</tbody>
+</table></div></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>[width="75%",cols="1,2a"]
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+[cols="2,1"]
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:25%;
+">
+<caption class="title">Table 12. Spans, alignments and styles</caption>
+<col style="width:25%;">
+<col style="width:25%;">
+<col style="width:25%;">
+<col style="width:25%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>1</em></p></td>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>2</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-right valign-top" ><p class="tableblock"><strong>4</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>5</em></p></td>
+<td class="tableblock halign-center valign-middle" colspan="2" rowspan="2" ><p class="tableblock monospaced">6</p></td>
+<td class="tableblock halign-left valign-bottom" rowspan="3" ><p class="tableblock monospaced">7</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>8</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock"><em>9</em></p></td>
+<td class="tableblock halign-right valign-top" colspan="2" ><p class="tableblock monospaced">10</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.Spans, alignments and styles
+[cols="e,m,^,&gt;s",width="25%"]
+|================
+|1 &gt;s|2 |3 |4
+^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
+^|8
+|9 2+&gt;|10
+|================</pre>
+</div></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<caption class="title">Table 13. Three panes</caption>
+<col style="width:33%;">
+<col style="width:66%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div><h3 id="_top_left_pane" class="float">Top Left Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div></div></td>
+<td class="tableblock halign-left valign-top" rowspan="2" ><div><h3 id="_right_pane" class="float">Right Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Code filter example</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><div><h3 id="_bottom_left_pane" class="float">Bottom Left Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>.Three panes
+[cols="a,2a"]
+|==================================
+|
+[float]
+Top Left Pane
+~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+.2+|
+[float]
+Right Pane
+~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|
+[float]
+Bottom Left Pane
+~~~~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes">Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" ></th>
+<th class="tableblock halign-left valign-top" >frame </th>
+<th class="tableblock halign-left valign-top" > grid </th>
+<th class="tableblock halign-left valign-top" >valign </th>
+<th class="tableblock halign-left valign-top" >halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">all</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">all</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">top</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">left</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>:frame: all
+:grid: all
+:halign: left
+:valign: top
+
+[options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</pre>
+</div></div>
+<table class="tableblock frame-sides grid-rows"
+style="
+width:50%;
+">
+<caption class="title">Table 14. Table test</caption>
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<thead>
+<tr>
+<th class="tableblock halign-center valign-middle" ></th>
+<th class="tableblock halign-center valign-middle" >frame </th>
+<th class="tableblock halign-center valign-middle" > grid </th>
+<th class="tableblock halign-center valign-middle" >valign </th>
+<th class="tableblock halign-center valign-middle" >halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-center valign-middle" ><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td class="tableblock halign-center valign-middle" ><p class="tableblock">sides</p></td>
+<td class="tableblock halign-center valign-middle" ><p class="tableblock">rows</p></td>
+<td class="tableblock halign-center valign-middle" ><p class="tableblock">middle</p></td>
+<td class="tableblock halign-center valign-middle" ><p class="tableblock">center</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>:frame: sides
+:grid: rows
+:halign: center
+:valign: middle
+
+.Table test
+[width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</pre>
+</div></div>
+<table class="tableblock frame-topbot grid-cols"
+style="
+margin-left:auto; margin-right:0;
+width:50%;
+">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<thead>
+<tr>
+<th class="tableblock halign-right valign-bottom" ></th>
+<th class="tableblock halign-right valign-bottom" >frame </th>
+<th class="tableblock halign-right valign-bottom" > grid </th>
+<th class="tableblock halign-right valign-bottom" >valign </th>
+<th class="tableblock halign-right valign-bottom" >halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-right valign-bottom" ><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td class="tableblock halign-right valign-bottom" ><p class="tableblock">topbot</p></td>
+<td class="tableblock halign-right valign-bottom" ><p class="tableblock">cols</p></td>
+<td class="tableblock halign-right valign-bottom" ><p class="tableblock">bottom</p></td>
+<td class="tableblock halign-right valign-bottom" ><p class="tableblock">right</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>:frame: topbot
+:grid: cols
+:halign: right
+:valign: bottom
+
+[align="right",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</pre>
+</div></div>
+<table class="tableblock frame-none grid-none"
+style="
+margin-left:auto; margin-right:auto;
+width:50%;
+">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<col style="width:20%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" ></th>
+<th class="tableblock halign-left valign-top" >frame </th>
+<th class="tableblock halign-left valign-top" > grid </th>
+<th class="tableblock halign-left valign-top" >valign </th>
+<th class="tableblock halign-left valign-top" >halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">none</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">top</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">left</p></td>
+</tr>
+</tbody>
+</table>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content monospaced">
+<pre>:frame: none
+:grid: none
+:halign: left
+:valign: top
+
+[align="center",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</pre>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/newtables-xhtml11.html b/tests/data/newtables-xhtml11.html
index 077d245..9ecf040 100644
--- a/tests/data/newtables-xhtml11.html
+++ b/tests/data/newtables-xhtml11.html
@@ -1,2076 +1,2076 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>AsciiDoc New tables</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>AsciiDoc New tables</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p><strong>New in version 8.3.0</strong></p></div>
-<div class="paragraph"><p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
-and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
-current table syntax is overly complicated and unwieldy to edit,
-hopefully a more usable syntax will appear in future versions of
-AsciiDoc.&#8221;</p></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">Update</div>
-<div class="paragraph"><p>The following additions were made at AsciiDoc 8.4.4:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Cell column and row spanning.
-</p>
-</li>
-<li>
-<p>
-Styles can be applied per cell.
-</p>
-</li>
-<li>
-<p>
-Vertical cell alignment can be applied to columns and cells.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>See the examples at the end of this document.</p></div>
-</div></div>
-<div class="paragraph"><p>At first glance it doesn&#8217;t look much different to the old syntax but
-it&#8217;s a lot more flexible, easier to enter and supports a lot of column
-styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
-inline elements). The old tables syntax has been deprecated but is
-currently still processed. Here are some examples of AsciiDoc <em>new
-tables</em>:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="15%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Simple table</caption>
-<col width="33%" />
-<col width="33%" />
-<col width="33%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">1</p></td>
-<td align="left" valign="top"><p class="table">2</p></td>
-<td align="left" valign="top"><p class="table">A</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">3</p></td>
-<td align="left" valign="top"><p class="table">4</p></td>
-<td align="left" valign="top"><p class="table">B</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">5</p></td>
-<td align="left" valign="top"><p class="table">6</p></td>
-<td align="left" valign="top"><p class="table">C</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>[width="15%"]
-|=======
-|1 |2 |A
-|3 |4 |B
-|5 |6 |C
-|=======</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="40%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 2. Table with title, header and footer</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top">Column 1 </th>
-<th align="left" valign="top">Column 2</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td align="left" valign="top"><p class="table">6</p></td>
-<td align="left" valign="top"><p class="table">Three items</p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">1</p></td>
-<td align="left" valign="top"><p class="table">Item 1</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">2</p></td>
-<td align="left" valign="top"><p class="table">Item 2</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">3</p></td>
-<td align="left" valign="top"><p class="table">Item 3</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.An example table
-[width="40%",frame="topbot",options="header,footer"]
-|======================
-|Column 1 |Column 2
-|1 |Item 1
-|2 |Item 2
-|3 |Item 3
-|6 |Three items
-|======================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="50%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 3. Columns formatted with strong, monospaced and emphasis styles</caption>
-<col width="20%" />
-<col width="40%" />
-<col width="40%" />
-<thead>
-<tr>
-<th align="right" valign="top"> </th>
-<th colspan="2" align="center" valign="top">Columns 2 and 3</th>
-</tr>
-</thead>
-<tfoot>
-<tr>
-<td align="right" valign="top"><p class="table"><strong>footer 1</strong></p></td>
-<td align="center" valign="top"><p class="table"><code>footer 2</code></p></td>
-<td align="center" valign="top"><p class="table"><em>footer 3</em></p></td>
-</tr>
-</tfoot>
-<tbody>
-<tr>
-<td align="right" valign="top"><p class="table"><strong>1</strong></p></td>
-<td align="center" valign="top"><p class="table"><code>Item 1</code></p></td>
-<td align="center" valign="top"><p class="table"><em>Item 1</em></p></td>
-</tr>
-<tr>
-<td align="right" valign="top"><p class="table"><strong>2</strong></p></td>
-<td align="center" valign="top"><p class="table"><code>Item 2</code></p></td>
-<td align="center" valign="top"><p class="table"><em>Item 2</em></p></td>
-</tr>
-<tr>
-<td align="right" valign="top"><p class="table"><strong>3</strong></p></td>
-<td align="center" valign="top"><p class="table"><code>Item 3</code></p></td>
-<td align="center" valign="top"><p class="table"><em>Item 3</em></p></td>
-</tr>
-<tr>
-<td align="right" valign="top"><p class="table"><strong>4</strong></p></td>
-<td align="center" valign="top"><p class="table"><code>Item 4</code></p></td>
-<td align="center" valign="top"><p class="table"><em>Item 4</em></p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.An example table
-[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
-|==========================
-| 2+|Columns 2 and 3
-|1 |Item 1 |Item 1
-|2 |Item 2 |Item 2
-|3 |Item 3 |Item 3
-|4 |Item 4 |Item 4
-|footer 1|footer 2|footer 3
-|==========================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 4. A table with externally sourced CSV data</caption>
-<col width="11%" />
-<col width="22%" />
-<col width="22%" />
-<col width="22%" />
-<col width="22%" />
-<thead>
-<tr>
-<th align="center" valign="top">ID</th>
-<th align="left" valign="top">Customer Name</th>
-<th align="left" valign="top">Contact Name</th>
-<th align="left" valign="top">Customer Address</th>
-<th align="left" valign="top">Phone</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="center" valign="top"><p class="table">AROUT</p></td>
-<td align="left" valign="top"><p class="table">Around the Horn</p></td>
-<td align="left" valign="top"><p class="table">Thomas Hardy</p></td>
-<td align="left" valign="top"><p class="table">120 Hanover Sq.
-London</p></td>
-<td align="left" valign="top"><p class="table">(171) 555-7788</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BERGS</p></td>
-<td align="left" valign="top"><p class="table">Berglunds snabbkop</p></td>
-<td align="left" valign="top"><p class="table">Christina Berglund</p></td>
-<td align="left" valign="top"><p class="table">Berguvsvagen 8
-Lulea</p></td>
-<td align="left" valign="top"><p class="table">0921-12 34 65</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BLAUS</p></td>
-<td align="left" valign="top"><p class="table">Blauer See Delikatessen</p></td>
-<td align="left" valign="top"><p class="table">Hanna Moos</p></td>
-<td align="left" valign="top"><p class="table">Forsterstr. 57
-Mannheim</p></td>
-<td align="left" valign="top"><p class="table">0621-08460</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BLONP</p></td>
-<td align="left" valign="top"><p class="table">Blondel pere et fils</p></td>
-<td align="left" valign="top"><p class="table">Frederique Citeaux</p></td>
-<td align="left" valign="top"><p class="table">24, place Kleber
-Strasbourg</p></td>
-<td align="left" valign="top"><p class="table">88.60.15.31</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BOLID</p></td>
-<td align="left" valign="top"><p class="table">Bolido Comidas preparadas</p></td>
-<td align="left" valign="top"><p class="table">Martin Sommer</p></td>
-<td align="left" valign="top"><p class="table">C/ Araquil, 67
-Madrid</p></td>
-<td align="left" valign="top"><p class="table">(91) 555 22 82</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BONAP</p></td>
-<td align="left" valign="top"><p class="table">Bon app'</p></td>
-<td align="left" valign="top"><p class="table">Laurence Lebihan</p></td>
-<td align="left" valign="top"><p class="table">12, rue des Bouchers
-Marseille</p></td>
-<td align="left" valign="top"><p class="table">91.24.45.40</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BOTTM</p></td>
-<td align="left" valign="top"><p class="table">Bottom-Dollar Markets</p></td>
-<td align="left" valign="top"><p class="table">Elizabeth Lincoln</p></td>
-<td align="left" valign="top"><p class="table">23 Tsawassen Blvd.
-Tsawassen</p></td>
-<td align="left" valign="top"><p class="table">(604) 555-4729</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">BSBEV</p></td>
-<td align="left" valign="top"><p class="table">B&#8217;s Beverages</p></td>
-<td align="left" valign="top"><p class="table">Victoria Ashworth</p></td>
-<td align="left" valign="top"><p class="table">Fauntleroy Circus
-London</p></td>
-<td align="left" valign="top"><p class="table">(171) 555-1212</p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table">CACTU</p></td>
-<td align="left" valign="top"><p class="table">Cactus Comidas para llevar</p></td>
-<td align="left" valign="top"><p class="table">Patricio Simpson</p></td>
-<td align="left" valign="top"><p class="table">Cerrito 333
-Buenos Aires</p></td>
-<td align="left" valign="top"><p class="table">(1) 135-5555</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code> [format="csv",cols="^1,4*2",options="header"]
- |===================================================
- ID,Customer Name,Contact Name,Customer Address,Phone
- include::customers.csv[]
- |===================================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="70%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 5. DVS formatted table</caption>
-<col width="14%" />
-<col width="14%" />
-<col width="14%" />
-<col width="14%" />
-<col width="14%" />
-<col width="14%" />
-<col width="14%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">root</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">0</p></td>
-<td align="left" valign="top"><p class="table">0</p></td>
-<td align="left" valign="top"><p class="table">root</p></td>
-<td align="left" valign="top"><p class="table">/root</p></td>
-<td align="left" valign="top"><p class="table">/bin/bash</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">daemon</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">1</p></td>
-<td align="left" valign="top"><p class="table">1</p></td>
-<td align="left" valign="top"><p class="table">daemon</p></td>
-<td align="left" valign="top"><p class="table">/usr/sbin</p></td>
-<td align="left" valign="top"><p class="table">/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">bin</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">2</p></td>
-<td align="left" valign="top"><p class="table">2</p></td>
-<td align="left" valign="top"><p class="table">bin</p></td>
-<td align="left" valign="top"><p class="table">/bin</p></td>
-<td align="left" valign="top"><p class="table">/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">sys</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">3</p></td>
-<td align="left" valign="top"><p class="table">3</p></td>
-<td align="left" valign="top"><p class="table">sys</p></td>
-<td align="left" valign="top"><p class="table">/dev</p></td>
-<td align="left" valign="top"><p class="table">/bin/sh</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">sync</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">4</p></td>
-<td align="left" valign="top"><p class="table">65534</p></td>
-<td align="left" valign="top"><p class="table">sync</p></td>
-<td align="left" valign="top"><p class="table">/bin</p></td>
-<td align="left" valign="top"><p class="table">/bin/sync</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">games</p></td>
-<td align="left" valign="top"><p class="table">x</p></td>
-<td align="left" valign="top"><p class="table">5</p></td>
-<td align="left" valign="top"><p class="table">60</p></td>
-<td align="left" valign="top"><p class="table">games</p></td>
-<td align="left" valign="top"><p class="table">/usr/games</p></td>
-<td align="left" valign="top"><p class="table">/bin/sh</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>[width="70%",format="dsv"]
-|====================================
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-|====================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="80%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 6. Horizontal and vertical source data</caption>
-<col width="17%" />
-<col width="11%" />
-<col width="11%" />
-<col width="58%" />
-<thead>
-<tr>
-<th align="left" valign="top">Date </th>
-<th align="center" valign="top">Duration </th>
-<th align="center" valign="top">Avg HR </th>
-<th align="left" valign="top">Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">10:24</p></td>
-<td align="center" valign="top"><p class="table">157</p></td>
-<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">23:03</p></td>
-<td align="center" valign="top"><p class="table">152</p></td>
-<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">40:00</p></td>
-<td align="center" valign="top"><p class="table">145</p></td>
-<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>Short cells can be entered horizontally, longer cells vertically. The
-default behavior is to strip leading and trailing blank lines within a
-cell. These characteristics aid readability and data entry.</p></div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.Windtrainer workouts
-[width="80%",cols="3,^2,^2,10",options="header"]
-|=========================================================
-|Date |Duration |Avg HR |Notes
-
-|22-Aug-08 |10:24 | 157 |
-Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.
-
-|22-Aug-08 |23:03 | 152 |
-Back-to-back with previous interval.
-
-|24-Aug-08 |40:00 | 145 |
-Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).
-
-|=========================================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 7. Default and verse styles</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top">Default paragraphs </th>
-<th align="center" valign="top">Centered verses</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">Per id.</p>
-<p class="table">Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p>
-<p class="table">Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></td>
-<td align="center" valign="top"><div class="verse">Per id.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</div></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>[cols=",^v",options="header"]
-|===================================
-|Default paragraphs |Centered verses
-2*|Per id.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-|===================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="50%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 8. Horizontal and vertial headings</caption>
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<thead>
-<tr>
-<th align="left" valign="top"> </th>
-<th align="left" valign="top">West </th>
-<th align="left" valign="top">Central </th>
-<th align="left" valign="top">East </th>
-<th align="left" valign="top"> Total</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table header">Q1</p></td>
-<td align="left" valign="top"><p class="table">270</p></td>
-<td align="left" valign="top"><p class="table">292</p></td>
-<td align="left" valign="top"><p class="table">342</p></td>
-<td align="left" valign="top"><p class="table">904</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table header">Q2</p></td>
-<td align="left" valign="top"><p class="table">322</p></td>
-<td align="left" valign="top"><p class="table">276</p></td>
-<td align="left" valign="top"><p class="table">383</p></td>
-<td align="left" valign="top"><p class="table">981</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table header">Q3</p></td>
-<td align="left" valign="top"><p class="table">298</p></td>
-<td align="left" valign="top"><p class="table">252</p></td>
-<td align="left" valign="top"><p class="table">274</p></td>
-<td align="left" valign="top"><p class="table">824</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table header">Q4</p></td>
-<td align="left" valign="top"><p class="table">344</p></td>
-<td align="left" valign="top"><p class="table">247</p></td>
-<td align="left" valign="top"><p class="table">402</p></td>
-<td align="left" valign="top"><p class="table">993</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.Horizontal and vertial headings
-[cols="h,4*",options="header",width="50%"]
-|==================================
-| |West |Central |East | Total
-|Q1 |270 |292 |342 | 904
-|Q2 |322 |276 |383 | 981
-|Q3 |298 |252 |274 | 824
-|Q4 |344 |247 |402 | 993
-|==================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="cols"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 9. AsciiDoc style in first column, Literal in second</caption>
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top">Output markup </th>
-<th align="left" valign="top">AsciiDoc source</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><div><div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</code></pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Code filter example</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-<td align="left" valign="top"><div class="literal"><pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.</code></pre></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>[cols="asciidoc,literal",options="header",grid="cols"]
-|==================================
-|Output markup |AsciiDoc source
-2*|
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 10. Cell containing lots of example markup elements</caption>
-<col width="100%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table"><em>URLs</em>:
-<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
-<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
-<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
-<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
-<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
-<p class="table"><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
-<p class="table"><em>Emphasized text</em>, <strong>Strong text</strong>, <code>Monospaced text</code>, &#8220;Quoted text&#8221;.</p>
-<p class="table"><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
-Some <sup>super text</sup> and <sub>some sub text</sub></p>
-<p class="table"><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
-double arrow, &#8656; left double arrow.</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock" id="X1">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>|====================================================================
-|'URLs':
-https://asciidoc.org/[The AsciiDoc home page],
-https://asciidoc.org/,
-mailto:joe.bloggs@example.com[email Joe Bloggs],
-joe.bloggs@example.com,
-callto:joe.bloggs[].
-
-'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
-
-'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
-
-'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
-Some ^super text^ and ~some sub text~
-
-'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
--- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
-double arrow, &lt;= left double arrow.
-|====================================================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="75%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 11. Nested table</caption>
-<col width="33%" />
-<col width="66%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">Normal cell</p></td>
-<td align="left" valign="top"><div><div class="paragraph"><p>Cell with nested table</p></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="66%" />
-<col width="33%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">Nested table cell 1</p></td>
-<td align="left" valign="top"><p class="table">Nested table cell 2</p></td>
-</tr>
-</tbody>
-</table>
-</div></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>[width="75%",cols="1,2a"]
-|==============================================
-|Normal cell
-
-|Cell with nested table
-
-[cols="2,1"]
-!==============================================
-!Nested table cell 1 !Nested table cell 2
-!==============================================
-
-|==============================================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="25%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 12. Spans, alignments and styles</caption>
-<col width="25%" />
-<col width="25%" />
-<col width="25%" />
-<col width="25%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table"><em>1</em></p></td>
-<td align="right" valign="top"><p class="table"><strong>2</strong></p></td>
-<td align="center" valign="top"><p class="table">3</p></td>
-<td align="right" valign="top"><p class="table"><strong>4</strong></p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table"><em>5</em></p></td>
-<td colspan="2" rowspan="2" align="center" valign="middle"><p class="table"><code>6</code></p></td>
-<td rowspan="3" align="left" valign="bottom"><p class="table"><code>7</code></p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table"><em>8</em></p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table"><em>9</em></p></td>
-<td colspan="2" align="right" valign="top"><p class="table"><code>10</code></p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.Spans, alignments and styles
-[cols="e,m,^,&gt;s",width="25%"]
-|================
-|1 &gt;s|2 |3 |4
-^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
-^|8
-|9 2+&gt;|10
-|================</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 13. Three panes</caption>
-<col width="33%" />
-<col width="66%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><div><h3 id="_top_left_pane" class="float">Top Left Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div></div></td>
-<td rowspan="2" align="left" valign="top"><div><h3 id="_right_pane" class="float">Right Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</code></pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Code filter example</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-</tr>
-<tr>
-<td align="left" valign="top"><div><h3 id="_bottom_left_pane" class="float">Bottom Left Pane</h3>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-<li>
-<p>
-Donec eget arcu bibendum nunc
- consequat lobortis.
-</p>
-</li>
-</ul></div>
-</li>
-<li>
-<p>
-Nulla porttitor vulputate libero.
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-Fusce euismod commodo velit.
-</p>
-</li>
-<li>
-<p>
-Vivamus fringilla mi eu lacus.
-</p>
-</li>
-</ol></div>
-</li>
-</ul></div></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>.Three panes
-[cols="a,2a"]
-|==================================
-|
-[float]
-Top Left Pane
-~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-.2+|
-[float]
-Right Pane
-~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
------------------------------------
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
------------------------------------
-
-.Code filter example
-[source,python]
------------------------------------
-''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word')
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
------------------------------------
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|
-[float]
-Bottom Left Pane
-~~~~~~~~~~~~~~~~
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-Consul *necessitatibus* per id,
-consetetur, eu pro everti postulant
-homero verear ea mea, qui.
-
-- Lorem ipsum dolor sit amet,
- consectetuer adipiscing elit.
- * Fusce euismod commodo velit.
- * Qui in magna commodo, est labitur
- dolorum an. Est ne magna primis
- adolescens. Sit munere ponderum
- dignissim et. Minim luptatum et vel.
- * Vivamus fringilla mi eu lacus.
- * Donec eget arcu bibendum nunc
- consequat lobortis.
-- Nulla porttitor vulputate libero.
- . Fusce euismod commodo velit.
- . Vivamus fringilla mi eu lacus.
-
-|==================================</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes">Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
-<div class="sectionbody">
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<thead>
-<tr>
-<th align="left" valign="top"></th>
-<th align="left" valign="top">frame </th>
-<th align="left" valign="top"> grid </th>
-<th align="left" valign="top">valign </th>
-<th align="left" valign="top">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td align="left" valign="top"><p class="table">all</p></td>
-<td align="left" valign="top"><p class="table">all</p></td>
-<td align="left" valign="top"><p class="table">top</p></td>
-<td align="left" valign="top"><p class="table">left</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>:frame: all
-:grid: all
-:halign: left
-:valign: top
-
-[options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="rows"
-width="50%"
-frame="vsides"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 14. Table test</caption>
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<thead>
-<tr>
-<th align="center" valign="middle"></th>
-<th align="center" valign="middle">frame </th>
-<th align="center" valign="middle"> grid </th>
-<th align="center" valign="middle">valign </th>
-<th align="center" valign="middle">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="center" valign="middle"><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td align="center" valign="middle"><p class="table">sides</p></td>
-<td align="center" valign="middle"><p class="table">rows</p></td>
-<td align="center" valign="middle"><p class="table">middle</p></td>
-<td align="center" valign="middle"><p class="table">center</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>:frame: sides
-:grid: rows
-:halign: center
-:valign: middle
-
-.Table test
-[width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="cols"
-style="margin-left:auto; margin-right:0;"
-width="50%"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<thead>
-<tr>
-<th align="right" valign="bottom"></th>
-<th align="right" valign="bottom">frame </th>
-<th align="right" valign="bottom"> grid </th>
-<th align="right" valign="bottom">valign </th>
-<th align="right" valign="bottom">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="right" valign="bottom"><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td align="right" valign="bottom"><p class="table">topbot</p></td>
-<td align="right" valign="bottom"><p class="table">cols</p></td>
-<td align="right" valign="bottom"><p class="table">bottom</p></td>
-<td align="right" valign="bottom"><p class="table">right</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>:frame: topbot
-:grid: cols
-:halign: right
-:valign: bottom
-
-[align="right",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</div></div>
-<div class="tableblock">
-<table rules="none"
-style="margin-left:auto; margin-right:auto;"
-width="50%"
-frame="void"
-cellspacing="0" cellpadding="4">
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<col width="20%" />
-<thead>
-<tr>
-<th align="left" valign="top"></th>
-<th align="left" valign="top">frame </th>
-<th align="left" valign="top"> grid </th>
-<th align="left" valign="top">valign </th>
-<th align="left" valign="top">halign</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><div class="verse">&nbsp;
-&nbsp;
-&nbsp;</div></td>
-<td align="left" valign="top"><p class="table">none</p></td>
-<td align="left" valign="top"><p class="table">none</p></td>
-<td align="left" valign="top"><p class="table">top</p></td>
-<td align="left" valign="top"><p class="table">left</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="listingblock">
-<div class="title">AsciiDoc source</div>
-<div class="content">
-<pre><code>:frame: none
-:grid: none
-:halign: left
-:valign: top
-
-[align="center",width="50%",options="header"]
-|====
-||frame | grid |valign |halign
-v|&amp;nbsp;
-&amp;nbsp;
-&amp;nbsp;
-|{frame} | {grid} |{valign} |{halign}
-|====</code></pre>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>AsciiDoc New tables</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>AsciiDoc New tables</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p><strong>New in version 8.3.0</strong></p></div>
+<div class="paragraph"><p>I&#8217;ve finally come up with a <em>new tables</em> syntax that I&#8217;m happy with
+and can at last remove this footnote from the <em>User Guide</em>: &#8220;The
+current table syntax is overly complicated and unwieldy to edit,
+hopefully a more usable syntax will appear in future versions of
+AsciiDoc.&#8221;</p></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">Update</div>
+<div class="paragraph"><p>The following additions were made at AsciiDoc 8.4.4:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Cell column and row spanning.
+</p>
+</li>
+<li>
+<p>
+Styles can be applied per cell.
+</p>
+</li>
+<li>
+<p>
+Vertical cell alignment can be applied to columns and cells.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>See the examples at the end of this document.</p></div>
+</div></div>
+<div class="paragraph"><p>At first glance it doesn&#8217;t look much different to the old syntax but
+it&#8217;s a lot more flexible, easier to enter and supports a lot of column
+styles (for example the <em>asciidoc</em> style supports AsciiDoc block and
+inline elements). The old tables syntax has been deprecated but is
+currently still processed. Here are some examples of AsciiDoc <em>new
+tables</em>:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="15%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Simple table</caption>
+<col width="33%" />
+<col width="33%" />
+<col width="33%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">A</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">4</p></td>
+<td align="left" valign="top"><p class="table">B</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">5</p></td>
+<td align="left" valign="top"><p class="table">6</p></td>
+<td align="left" valign="top"><p class="table">C</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>[width="15%"]
+|=======
+|1 |2 |A
+|3 |4 |B
+|5 |6 |C
+|=======</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="40%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 2. Table with title, header and footer</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top">Column 1 </th>
+<th align="left" valign="top">Column 2</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td align="left" valign="top"><p class="table">6</p></td>
+<td align="left" valign="top"><p class="table">Three items</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">Item 1</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">Item 2</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">Item 3</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.An example table
+[width="40%",frame="topbot",options="header,footer"]
+|======================
+|Column 1 |Column 2
+|1 |Item 1
+|2 |Item 2
+|3 |Item 3
+|6 |Three items
+|======================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="50%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 3. Columns formatted with strong, monospaced and emphasis styles</caption>
+<col width="20%" />
+<col width="40%" />
+<col width="40%" />
+<thead>
+<tr>
+<th align="right" valign="top"> </th>
+<th colspan="2" align="center" valign="top">Columns 2 and 3</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td align="right" valign="top"><p class="table"><strong>footer 1</strong></p></td>
+<td align="center" valign="top"><p class="table"><code>footer 2</code></p></td>
+<td align="center" valign="top"><p class="table"><em>footer 3</em></p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td align="right" valign="top"><p class="table"><strong>1</strong></p></td>
+<td align="center" valign="top"><p class="table"><code>Item 1</code></p></td>
+<td align="center" valign="top"><p class="table"><em>Item 1</em></p></td>
+</tr>
+<tr>
+<td align="right" valign="top"><p class="table"><strong>2</strong></p></td>
+<td align="center" valign="top"><p class="table"><code>Item 2</code></p></td>
+<td align="center" valign="top"><p class="table"><em>Item 2</em></p></td>
+</tr>
+<tr>
+<td align="right" valign="top"><p class="table"><strong>3</strong></p></td>
+<td align="center" valign="top"><p class="table"><code>Item 3</code></p></td>
+<td align="center" valign="top"><p class="table"><em>Item 3</em></p></td>
+</tr>
+<tr>
+<td align="right" valign="top"><p class="table"><strong>4</strong></p></td>
+<td align="center" valign="top"><p class="table"><code>Item 4</code></p></td>
+<td align="center" valign="top"><p class="table"><em>Item 4</em></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.An example table
+[width="50%",cols="&gt;s,^2m,^2e",frame="topbot",options="header,footer"]
+|==========================
+| 2+|Columns 2 and 3
+|1 |Item 1 |Item 1
+|2 |Item 2 |Item 2
+|3 |Item 3 |Item 3
+|4 |Item 4 |Item 4
+|footer 1|footer 2|footer 3
+|==========================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 4. A table with externally sourced CSV data</caption>
+<col width="11%" />
+<col width="22%" />
+<col width="22%" />
+<col width="22%" />
+<col width="22%" />
+<thead>
+<tr>
+<th align="center" valign="top">ID</th>
+<th align="left" valign="top">Customer Name</th>
+<th align="left" valign="top">Contact Name</th>
+<th align="left" valign="top">Customer Address</th>
+<th align="left" valign="top">Phone</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center" valign="top"><p class="table">AROUT</p></td>
+<td align="left" valign="top"><p class="table">Around the Horn</p></td>
+<td align="left" valign="top"><p class="table">Thomas Hardy</p></td>
+<td align="left" valign="top"><p class="table">120 Hanover Sq.
+London</p></td>
+<td align="left" valign="top"><p class="table">(171) 555-7788</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BERGS</p></td>
+<td align="left" valign="top"><p class="table">Berglunds snabbkop</p></td>
+<td align="left" valign="top"><p class="table">Christina Berglund</p></td>
+<td align="left" valign="top"><p class="table">Berguvsvagen 8
+Lulea</p></td>
+<td align="left" valign="top"><p class="table">0921-12 34 65</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BLAUS</p></td>
+<td align="left" valign="top"><p class="table">Blauer See Delikatessen</p></td>
+<td align="left" valign="top"><p class="table">Hanna Moos</p></td>
+<td align="left" valign="top"><p class="table">Forsterstr. 57
+Mannheim</p></td>
+<td align="left" valign="top"><p class="table">0621-08460</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BLONP</p></td>
+<td align="left" valign="top"><p class="table">Blondel pere et fils</p></td>
+<td align="left" valign="top"><p class="table">Frederique Citeaux</p></td>
+<td align="left" valign="top"><p class="table">24, place Kleber
+Strasbourg</p></td>
+<td align="left" valign="top"><p class="table">88.60.15.31</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BOLID</p></td>
+<td align="left" valign="top"><p class="table">Bolido Comidas preparadas</p></td>
+<td align="left" valign="top"><p class="table">Martin Sommer</p></td>
+<td align="left" valign="top"><p class="table">C/ Araquil, 67
+Madrid</p></td>
+<td align="left" valign="top"><p class="table">(91) 555 22 82</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BONAP</p></td>
+<td align="left" valign="top"><p class="table">Bon app'</p></td>
+<td align="left" valign="top"><p class="table">Laurence Lebihan</p></td>
+<td align="left" valign="top"><p class="table">12, rue des Bouchers
+Marseille</p></td>
+<td align="left" valign="top"><p class="table">91.24.45.40</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BOTTM</p></td>
+<td align="left" valign="top"><p class="table">Bottom-Dollar Markets</p></td>
+<td align="left" valign="top"><p class="table">Elizabeth Lincoln</p></td>
+<td align="left" valign="top"><p class="table">23 Tsawassen Blvd.
+Tsawassen</p></td>
+<td align="left" valign="top"><p class="table">(604) 555-4729</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">BSBEV</p></td>
+<td align="left" valign="top"><p class="table">B&#8217;s Beverages</p></td>
+<td align="left" valign="top"><p class="table">Victoria Ashworth</p></td>
+<td align="left" valign="top"><p class="table">Fauntleroy Circus
+London</p></td>
+<td align="left" valign="top"><p class="table">(171) 555-1212</p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table">CACTU</p></td>
+<td align="left" valign="top"><p class="table">Cactus Comidas para llevar</p></td>
+<td align="left" valign="top"><p class="table">Patricio Simpson</p></td>
+<td align="left" valign="top"><p class="table">Cerrito 333
+Buenos Aires</p></td>
+<td align="left" valign="top"><p class="table">(1) 135-5555</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code> [format="csv",cols="^1,4*2",options="header"]
+ |===================================================
+ ID,Customer Name,Contact Name,Customer Address,Phone
+ include::customers.csv[]
+ |===================================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="70%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 5. DVS formatted table</caption>
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<col width="14%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">root</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">0</p></td>
+<td align="left" valign="top"><p class="table">0</p></td>
+<td align="left" valign="top"><p class="table">root</p></td>
+<td align="left" valign="top"><p class="table">/root</p></td>
+<td align="left" valign="top"><p class="table">/bin/bash</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">daemon</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">daemon</p></td>
+<td align="left" valign="top"><p class="table">/usr/sbin</p></td>
+<td align="left" valign="top"><p class="table">/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">bin</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">bin</p></td>
+<td align="left" valign="top"><p class="table">/bin</p></td>
+<td align="left" valign="top"><p class="table">/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sys</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">sys</p></td>
+<td align="left" valign="top"><p class="table">/dev</p></td>
+<td align="left" valign="top"><p class="table">/bin/sh</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">sync</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">4</p></td>
+<td align="left" valign="top"><p class="table">65534</p></td>
+<td align="left" valign="top"><p class="table">sync</p></td>
+<td align="left" valign="top"><p class="table">/bin</p></td>
+<td align="left" valign="top"><p class="table">/bin/sync</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">games</p></td>
+<td align="left" valign="top"><p class="table">x</p></td>
+<td align="left" valign="top"><p class="table">5</p></td>
+<td align="left" valign="top"><p class="table">60</p></td>
+<td align="left" valign="top"><p class="table">games</p></td>
+<td align="left" valign="top"><p class="table">/usr/games</p></td>
+<td align="left" valign="top"><p class="table">/bin/sh</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>[width="70%",format="dsv"]
+|====================================
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+|====================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="80%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 6. Horizontal and vertical source data</caption>
+<col width="17%" />
+<col width="11%" />
+<col width="11%" />
+<col width="58%" />
+<thead>
+<tr>
+<th align="left" valign="top">Date </th>
+<th align="center" valign="top">Duration </th>
+<th align="center" valign="top">Avg HR </th>
+<th align="left" valign="top">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">10:24</p></td>
+<td align="center" valign="top"><p class="table">157</p></td>
+<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">23:03</p></td>
+<td align="center" valign="top"><p class="table">152</p></td>
+<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">40:00</p></td>
+<td align="center" valign="top"><p class="table">145</p></td>
+<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>Short cells can be entered horizontally, longer cells vertically. The
+default behavior is to strip leading and trailing blank lines within a
+cell. These characteristics aid readability and data entry.</p></div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.Windtrainer workouts
+[width="80%",cols="3,^2,^2,10",options="header"]
+|=========================================================
+|Date |Duration |Avg HR |Notes
+
+|22-Aug-08 |10:24 | 157 |
+Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.
+
+|22-Aug-08 |23:03 | 152 |
+Back-to-back with previous interval.
+
+|24-Aug-08 |40:00 | 145 |
+Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).
+
+|=========================================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 7. Default and verse styles</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top">Default paragraphs </th>
+<th align="center" valign="top">Centered verses</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">Per id.</p>
+<p class="table">Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p>
+<p class="table">Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></td>
+<td align="center" valign="top"><div class="verse">Per id.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>[cols=",^v",options="header"]
+|===================================
+|Default paragraphs |Centered verses
+2*|Per id.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+|===================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="50%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 8. Horizontal and vertial headings</caption>
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<thead>
+<tr>
+<th align="left" valign="top"> </th>
+<th align="left" valign="top">West </th>
+<th align="left" valign="top">Central </th>
+<th align="left" valign="top">East </th>
+<th align="left" valign="top"> Total</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table header">Q1</p></td>
+<td align="left" valign="top"><p class="table">270</p></td>
+<td align="left" valign="top"><p class="table">292</p></td>
+<td align="left" valign="top"><p class="table">342</p></td>
+<td align="left" valign="top"><p class="table">904</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table header">Q2</p></td>
+<td align="left" valign="top"><p class="table">322</p></td>
+<td align="left" valign="top"><p class="table">276</p></td>
+<td align="left" valign="top"><p class="table">383</p></td>
+<td align="left" valign="top"><p class="table">981</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table header">Q3</p></td>
+<td align="left" valign="top"><p class="table">298</p></td>
+<td align="left" valign="top"><p class="table">252</p></td>
+<td align="left" valign="top"><p class="table">274</p></td>
+<td align="left" valign="top"><p class="table">824</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table header">Q4</p></td>
+<td align="left" valign="top"><p class="table">344</p></td>
+<td align="left" valign="top"><p class="table">247</p></td>
+<td align="left" valign="top"><p class="table">402</p></td>
+<td align="left" valign="top"><p class="table">993</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.Horizontal and vertial headings
+[cols="h,4*",options="header",width="50%"]
+|==================================
+| |West |Central |East | Total
+|Q1 |270 |292 |342 | 904
+|Q2 |322 |276 |383 | 981
+|Q3 |298 |252 |274 | 824
+|Q4 |344 |247 |402 | 993
+|==================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="cols"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 9. AsciiDoc style in first column, Literal in second</caption>
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top">Output markup </th>
+<th align="left" valign="top">AsciiDoc source</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><div><div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Code filter example</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+<td align="left" valign="top"><div class="literal"><pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.</code></pre></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>[cols="asciidoc,literal",options="header",grid="cols"]
+|==================================
+|Output markup |AsciiDoc source
+2*|
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 10. Cell containing lots of example markup elements</caption>
+<col width="100%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table"><em>URLs</em>:
+<a href="https://asciidoc.org/">The AsciiDoc home page</a>,
+<a href="https://asciidoc.org/">https://asciidoc.org/</a>,
+<a href="mailto:joe.bloggs@example.com">email Joe Bloggs</a>,
+<a href="mailto:joe.bloggs@example.com">joe.bloggs@example.com</a>,
+<a href="callto:joe.bloggs">joe.bloggs</a>.</p>
+<p class="table"><em>Link</em>: See <a href="#X1">AsciiDoc source</a>.</p>
+<p class="table"><em>Emphasized text</em>, <strong>Strong text</strong>, <code>Monospaced text</code>, &#8220;Quoted text&#8221;.</p>
+<p class="table"><em>Subscripts and superscripts</em>: e<sup>&#960;i</sup>+1 = 0. H<sub>2</sub>O and x<sup>10</sup>.
+Some <sup>super text</sup> and <sub>some sub text</sub></p>
+<p class="table"><em>Replacements</em>: &#169; copyright, &#8482; trademark, &#174; registered trademark,&#8201;&#8212;&#8201;em dash, &#8230; ellipsis, &#8594; right arrow, &#8592; left arrow, &#8658; right
+double arrow, &#8656; left double arrow.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock" id="X1">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>|====================================================================
+|'URLs':
+https://asciidoc.org/[The AsciiDoc home page],
+https://asciidoc.org/,
+mailto:joe.bloggs@example.com[email Joe Bloggs],
+joe.bloggs@example.com,
+callto:joe.bloggs[].
+
+'Link': See &lt;&lt;X1,AsciiDoc source&gt;&gt;.
+
+'Emphasized text', *Strong text*, +Monospaced text+, ``Quoted text''.
+
+'Subscripts and superscripts': e^{amp}#960;i^+1 = 0. H~2~O and x^10^.
+Some ^super text^ and ~some sub text~
+
+'Replacements': (C) copyright, (TM) trademark, (R) registered trademark,
+-- em dash, ... ellipsis, -&gt; right arrow, &lt;- left arrow, =&gt; right
+double arrow, &lt;= left double arrow.
+|====================================================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="75%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 11. Nested table</caption>
+<col width="33%" />
+<col width="66%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">Normal cell</p></td>
+<td align="left" valign="top"><div><div class="paragraph"><p>Cell with nested table</p></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="66%" />
+<col width="33%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">Nested table cell 1</p></td>
+<td align="left" valign="top"><p class="table">Nested table cell 2</p></td>
+</tr>
+</tbody>
+</table>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>[width="75%",cols="1,2a"]
+|==============================================
+|Normal cell
+
+|Cell with nested table
+
+[cols="2,1"]
+!==============================================
+!Nested table cell 1 !Nested table cell 2
+!==============================================
+
+|==============================================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="25%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 12. Spans, alignments and styles</caption>
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table"><em>1</em></p></td>
+<td align="right" valign="top"><p class="table"><strong>2</strong></p></td>
+<td align="center" valign="top"><p class="table">3</p></td>
+<td align="right" valign="top"><p class="table"><strong>4</strong></p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table"><em>5</em></p></td>
+<td colspan="2" rowspan="2" align="center" valign="middle"><p class="table"><code>6</code></p></td>
+<td rowspan="3" align="left" valign="bottom"><p class="table"><code>7</code></p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table"><em>8</em></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><em>9</em></p></td>
+<td colspan="2" align="right" valign="top"><p class="table"><code>10</code></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.Spans, alignments and styles
+[cols="e,m,^,&gt;s",width="25%"]
+|================
+|1 &gt;s|2 |3 |4
+^|5 2.2+^.^|6 .3+&lt;.&gt;m|7
+^|8
+|9 2+&gt;|10
+|================</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 13. Three panes</caption>
+<col width="33%" />
+<col width="66%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><div><h3 id="_top_left_pane" class="float">Top Left Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div></div></td>
+<td rowspan="2" align="left" valign="top"><div><h3 id="_right_pane" class="float">Right Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Code filter example</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+</tr>
+<tr>
+<td align="left" valign="top"><div><h3 id="_bottom_left_pane" class="float">Bottom Left Pane</h3>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="paragraph"><p>Consul <strong>necessitatibus</strong> per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+<li>
+<p>
+Donec eget arcu bibendum nunc
+ consequat lobortis.
+</p>
+</li>
+</ul></div>
+</li>
+<li>
+<p>
+Nulla porttitor vulputate libero.
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+Fusce euismod commodo velit.
+</p>
+</li>
+<li>
+<p>
+Vivamus fringilla mi eu lacus.
+</p>
+</li>
+</ol></div>
+</li>
+</ul></div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>.Three panes
+[cols="a,2a"]
+|==================================
+|
+[float]
+Top Left Pane
+~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+.2+|
+[float]
+Right Pane
+~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+-----------------------------------
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+-----------------------------------
+
+.Code filter example
+[source,python]
+-----------------------------------
+''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word')
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+-----------------------------------
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|
+[float]
+Bottom Left Pane
+~~~~~~~~~~~~~~~~
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+Consul *necessitatibus* per id,
+consetetur, eu pro everti postulant
+homero verear ea mea, qui.
+
+- Lorem ipsum dolor sit amet,
+ consectetuer adipiscing elit.
+ * Fusce euismod commodo velit.
+ * Qui in magna commodo, est labitur
+ dolorum an. Est ne magna primis
+ adolescens. Sit munere ponderum
+ dignissim et. Minim luptatum et vel.
+ * Vivamus fringilla mi eu lacus.
+ * Donec eget arcu bibendum nunc
+ consequat lobortis.
+- Nulla porttitor vulputate libero.
+ . Fusce euismod commodo velit.
+ . Vivamus fringilla mi eu lacus.
+
+|==================================</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_combinations_of_em_align_em_em_frame_em_em_grid_em_em_valign_em_and_em_halign_em_attributes">Combinations of <em>align</em>, <em>frame</em>, <em>grid</em>, <em>valign</em> and <em>halign</em> attributes</h2>
+<div class="sectionbody">
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<thead>
+<tr>
+<th align="left" valign="top"></th>
+<th align="left" valign="top">frame </th>
+<th align="left" valign="top"> grid </th>
+<th align="left" valign="top">valign </th>
+<th align="left" valign="top">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td align="left" valign="top"><p class="table">all</p></td>
+<td align="left" valign="top"><p class="table">all</p></td>
+<td align="left" valign="top"><p class="table">top</p></td>
+<td align="left" valign="top"><p class="table">left</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>:frame: all
+:grid: all
+:halign: left
+:valign: top
+
+[options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="rows"
+width="50%"
+frame="vsides"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 14. Table test</caption>
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<thead>
+<tr>
+<th align="center" valign="middle"></th>
+<th align="center" valign="middle">frame </th>
+<th align="center" valign="middle"> grid </th>
+<th align="center" valign="middle">valign </th>
+<th align="center" valign="middle">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="center" valign="middle"><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td align="center" valign="middle"><p class="table">sides</p></td>
+<td align="center" valign="middle"><p class="table">rows</p></td>
+<td align="center" valign="middle"><p class="table">middle</p></td>
+<td align="center" valign="middle"><p class="table">center</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>:frame: sides
+:grid: rows
+:halign: center
+:valign: middle
+
+.Table test
+[width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="cols"
+style="margin-left:auto; margin-right:0;"
+width="50%"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<thead>
+<tr>
+<th align="right" valign="bottom"></th>
+<th align="right" valign="bottom">frame </th>
+<th align="right" valign="bottom"> grid </th>
+<th align="right" valign="bottom">valign </th>
+<th align="right" valign="bottom">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="right" valign="bottom"><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td align="right" valign="bottom"><p class="table">topbot</p></td>
+<td align="right" valign="bottom"><p class="table">cols</p></td>
+<td align="right" valign="bottom"><p class="table">bottom</p></td>
+<td align="right" valign="bottom"><p class="table">right</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>:frame: topbot
+:grid: cols
+:halign: right
+:valign: bottom
+
+[align="right",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</div></div>
+<div class="tableblock">
+<table rules="none"
+style="margin-left:auto; margin-right:auto;"
+width="50%"
+frame="void"
+cellspacing="0" cellpadding="4">
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<col width="20%" />
+<thead>
+<tr>
+<th align="left" valign="top"></th>
+<th align="left" valign="top">frame </th>
+<th align="left" valign="top"> grid </th>
+<th align="left" valign="top">valign </th>
+<th align="left" valign="top">halign</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><div class="verse">&nbsp;
+&nbsp;
+&nbsp;</div></td>
+<td align="left" valign="top"><p class="table">none</p></td>
+<td align="left" valign="top"><p class="table">none</p></td>
+<td align="left" valign="top"><p class="table">top</p></td>
+<td align="left" valign="top"><p class="table">left</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="listingblock">
+<div class="title">AsciiDoc source</div>
+<div class="content">
+<pre><code>:frame: none
+:grid: none
+:halign: left
+:valign: top
+
+[align="center",width="50%",options="header"]
+|====
+||frame | grid |valign |halign
+v|&amp;nbsp;
+&amp;nbsp;
+&amp;nbsp;
+|{frame} | {grid} |{valign} |{halign}
+|====</code></pre>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/oldtables-docbook.xml b/tests/data/oldtables-docbook.xml
index 9b7bf55..972fa3c 100644
--- a/tests/data/oldtables-docbook.xml
+++ b/tests/data/oldtables-docbook.xml
@@ -1,367 +1,367 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>AsciiDoc Old Tables</title>
-</articleinfo>
-<simpara>Examples of the AsciiDoc <emphasis>old tables</emphasis> syntax. This syntax was used in
-AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
-of the <emphasis>new tables</emphasis> syntax.</simpara>
-<simpara>Simple table:</simpara>
-<informaltable pgwide="0"
-frame="topbot"
-rowsep="0" colsep="0"
->
-<tgroup cols="2">
-<colspec colwidth="24*" align="left"/>
-<colspec colwidth="24*" align="left"/>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 2
- </entry>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- 4
- </entry>
- </row>
- <row>
- <entry>
- 5
- </entry>
- <entry>
- 6
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-<simpara>Table with title, header and footer:</simpara>
-<table pgwide="0"
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<tgroup cols="2">
-<colspec colwidth="72*" align="left"/>
-<colspec colwidth="91*" align="center"/>
-<thead>
- <row>
- <entry>
- Column 1
- </entry>
- <entry>
- Column 2
- </entry>
- </row>
-</thead>
-<tfoot>
- <row>
- <entry>
- 6
- </entry>
- <entry>
- Three items
- </entry>
- </row>
-</tfoot>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- Item 1
- </entry>
- </row>
- <row>
- <entry>
- 2
- </entry>
- <entry>
- Item 2
- </entry>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- Item 3
- </entry>
- </row>
-</tbody>
-</tgroup>
-</table>
-<simpara>Four columns totaling 15% of the <emphasis>pagewidth</emphasis>, CSV data:</simpara>
-<informaltable pgwide="0"
-frame="all"
-rowsep="0" colsep="0"
->
-<tgroup cols="4">
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 2
- </entry>
- <entry>
- 3
- </entry>
- <entry>
- 4
- </entry>
- </row>
- <row>
- <entry>
- a
- </entry>
- <entry>
- b
- </entry>
- <entry>
- c
- </entry>
- <entry>
- d
- </entry>
- </row>
- <row>
- <entry>
- A
- </entry>
- <entry>
- B
- </entry>
- <entry>
- C
- </entry>
- <entry>
- D
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-<simpara>A table with a numeric ruler and externally sourced CSV data:</simpara>
-<informaltable pgwide="0"
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="5">
-<colspec colwidth="63*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<colspec colwidth="106*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<thead>
- <row>
- <entry>
- ID
- </entry>
- <entry>
- Customer Name
- </entry>
- <entry>
- Contact Name
- </entry>
- <entry>
- Customer Address
- </entry>
- <entry>
- Phone
- </entry>
- </row>
-</thead>
-<tbody>
- <row>
- <entry>
- AROUT
- </entry>
- <entry>
- Around the Horn
- </entry>
- <entry>
- Thomas Hardy
- </entry>
- <entry>
- 120 Hanover Sq.
- <?asciidoc-br?>
- London
- </entry>
- <entry>
- (171) 555-7788
- </entry>
- </row>
- <row>
- <entry>
- BERGS
- </entry>
- <entry>
- Berglunds snabbkop
- </entry>
- <entry>
- Christina Berglund
- </entry>
- <entry>
- Berguvsvagen 8
- <?asciidoc-br?>
- Lulea
- </entry>
- <entry>
- 0921-12 34 65
- </entry>
- </row>
- <row>
- <entry>
- BLAUS
- </entry>
- <entry>
- Blauer See Delikatessen
- </entry>
- <entry>
- Hanna Moos
- </entry>
- <entry>
- Forsterstr. 57
- <?asciidoc-br?>
- Mannheim
- </entry>
- <entry>
- 0621-08460
- </entry>
- </row>
- <row>
- <entry>
- BLONP
- </entry>
- <entry>
- Blondel pere et fils
- </entry>
- <entry>
- Frederique Citeaux
- </entry>
- <entry>
- 24, place Kleber
- <?asciidoc-br?>
- Strasbourg
- </entry>
- <entry>
- 88.60.15.31
- </entry>
- </row>
- <row>
- <entry>
- BOLID
- </entry>
- <entry>
- Bolido Comidas preparadas
- </entry>
- <entry>
- Martin Sommer
- </entry>
- <entry>
- C/ Araquil, 67
- <?asciidoc-br?>
- Madrid
- </entry>
- <entry>
- (91) 555 22 82
- </entry>
- </row>
- <row>
- <entry>
- BONAP
- </entry>
- <entry>
- Bon app'
- </entry>
- <entry>
- Laurence Lebihan
- </entry>
- <entry>
- 12, rue des Bouchers
- <?asciidoc-br?>
- Marseille
- </entry>
- <entry>
- 91.24.45.40
- </entry>
- </row>
- <row>
- <entry>
- BOTTM
- </entry>
- <entry>
- Bottom-Dollar Markets
- </entry>
- <entry>
- Elizabeth Lincoln
- </entry>
- <entry>
- 23 Tsawassen Blvd.
- <?asciidoc-br?>
- Tsawassen
- </entry>
- <entry>
- (604) 555-4729
- </entry>
- </row>
- <row>
- <entry>
- BSBEV
- </entry>
- <entry>
- B&#8217;s Beverages
- </entry>
- <entry>
- Victoria Ashworth
- </entry>
- <entry>
- Fauntleroy Circus
- <?asciidoc-br?>
- London
- </entry>
- <entry>
- (171) 555-1212
- </entry>
- </row>
- <row>
- <entry>
- CACTU
- </entry>
- <entry>
- Cactus Comidas para llevar
- </entry>
- <entry>
- Patricio Simpson
- </entry>
- <entry>
- Cerrito 333
- <?asciidoc-br?>
- Buenos Aires
- </entry>
- <entry>
- (1) 135-5555
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>AsciiDoc Old Tables</title>
+</articleinfo>
+<simpara>Examples of the AsciiDoc <emphasis>old tables</emphasis> syntax. This syntax was used in
+AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
+of the <emphasis>new tables</emphasis> syntax.</simpara>
+<simpara>Simple table:</simpara>
+<informaltable pgwide="0"
+frame="topbot"
+rowsep="0" colsep="0"
+>
+<tgroup cols="2">
+<colspec colwidth="24*" align="left"/>
+<colspec colwidth="24*" align="left"/>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 2
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 4
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 5
+ </entry>
+ <entry>
+ 6
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+<simpara>Table with title, header and footer:</simpara>
+<table pgwide="0"
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<tgroup cols="2">
+<colspec colwidth="72*" align="left"/>
+<colspec colwidth="91*" align="center"/>
+<thead>
+ <row>
+ <entry>
+ Column 1
+ </entry>
+ <entry>
+ Column 2
+ </entry>
+ </row>
+</thead>
+<tfoot>
+ <row>
+ <entry>
+ 6
+ </entry>
+ <entry>
+ Three items
+ </entry>
+ </row>
+</tfoot>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ Item 1
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ Item 2
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ Item 3
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</table>
+<simpara>Four columns totaling 15% of the <emphasis>pagewidth</emphasis>, CSV data:</simpara>
+<informaltable pgwide="0"
+frame="all"
+rowsep="0" colsep="0"
+>
+<tgroup cols="4">
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 4
+ </entry>
+ </row>
+ <row>
+ <entry>
+ a
+ </entry>
+ <entry>
+ b
+ </entry>
+ <entry>
+ c
+ </entry>
+ <entry>
+ d
+ </entry>
+ </row>
+ <row>
+ <entry>
+ A
+ </entry>
+ <entry>
+ B
+ </entry>
+ <entry>
+ C
+ </entry>
+ <entry>
+ D
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+<simpara>A table with a numeric ruler and externally sourced CSV data:</simpara>
+<informaltable pgwide="0"
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="5">
+<colspec colwidth="63*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<colspec colwidth="106*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<thead>
+ <row>
+ <entry>
+ ID
+ </entry>
+ <entry>
+ Customer Name
+ </entry>
+ <entry>
+ Contact Name
+ </entry>
+ <entry>
+ Customer Address
+ </entry>
+ <entry>
+ Phone
+ </entry>
+ </row>
+</thead>
+<tbody>
+ <row>
+ <entry>
+ AROUT
+ </entry>
+ <entry>
+ Around the Horn
+ </entry>
+ <entry>
+ Thomas Hardy
+ </entry>
+ <entry>
+ 120 Hanover Sq.
+ <?asciidoc-br?>
+ London
+ </entry>
+ <entry>
+ (171) 555-7788
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BERGS
+ </entry>
+ <entry>
+ Berglunds snabbkop
+ </entry>
+ <entry>
+ Christina Berglund
+ </entry>
+ <entry>
+ Berguvsvagen 8
+ <?asciidoc-br?>
+ Lulea
+ </entry>
+ <entry>
+ 0921-12 34 65
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BLAUS
+ </entry>
+ <entry>
+ Blauer See Delikatessen
+ </entry>
+ <entry>
+ Hanna Moos
+ </entry>
+ <entry>
+ Forsterstr. 57
+ <?asciidoc-br?>
+ Mannheim
+ </entry>
+ <entry>
+ 0621-08460
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BLONP
+ </entry>
+ <entry>
+ Blondel pere et fils
+ </entry>
+ <entry>
+ Frederique Citeaux
+ </entry>
+ <entry>
+ 24, place Kleber
+ <?asciidoc-br?>
+ Strasbourg
+ </entry>
+ <entry>
+ 88.60.15.31
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BOLID
+ </entry>
+ <entry>
+ Bolido Comidas preparadas
+ </entry>
+ <entry>
+ Martin Sommer
+ </entry>
+ <entry>
+ C/ Araquil, 67
+ <?asciidoc-br?>
+ Madrid
+ </entry>
+ <entry>
+ (91) 555 22 82
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BONAP
+ </entry>
+ <entry>
+ Bon app'
+ </entry>
+ <entry>
+ Laurence Lebihan
+ </entry>
+ <entry>
+ 12, rue des Bouchers
+ <?asciidoc-br?>
+ Marseille
+ </entry>
+ <entry>
+ 91.24.45.40
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BOTTM
+ </entry>
+ <entry>
+ Bottom-Dollar Markets
+ </entry>
+ <entry>
+ Elizabeth Lincoln
+ </entry>
+ <entry>
+ 23 Tsawassen Blvd.
+ <?asciidoc-br?>
+ Tsawassen
+ </entry>
+ <entry>
+ (604) 555-4729
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BSBEV
+ </entry>
+ <entry>
+ B&#8217;s Beverages
+ </entry>
+ <entry>
+ Victoria Ashworth
+ </entry>
+ <entry>
+ Fauntleroy Circus
+ <?asciidoc-br?>
+ London
+ </entry>
+ <entry>
+ (171) 555-1212
+ </entry>
+ </row>
+ <row>
+ <entry>
+ CACTU
+ </entry>
+ <entry>
+ Cactus Comidas para llevar
+ </entry>
+ <entry>
+ Patricio Simpson
+ </entry>
+ <entry>
+ Cerrito 333
+ <?asciidoc-br?>
+ Buenos Aires
+ </entry>
+ <entry>
+ (1) 135-5555
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+</article>
diff --git a/tests/data/oldtables-docbook5.xml b/tests/data/oldtables-docbook5.xml
index 79bb4d6..8299ffa 100644
--- a/tests/data/oldtables-docbook5.xml
+++ b/tests/data/oldtables-docbook5.xml
@@ -1,366 +1,366 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>AsciiDoc Old Tables</title>
-</info>
-<simpara>Examples of the AsciiDoc <emphasis>old tables</emphasis> syntax. This syntax was used in
-AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
-of the <emphasis>new tables</emphasis> syntax.</simpara>
-<simpara>Simple table:</simpara>
-<informaltable pgwide="0"
-frame="topbot"
-rowsep="0" colsep="0"
->
-<tgroup cols="2">
-<colspec colwidth="24*" align="left"/>
-<colspec colwidth="24*" align="left"/>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 2
- </entry>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- 4
- </entry>
- </row>
- <row>
- <entry>
- 5
- </entry>
- <entry>
- 6
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-<simpara>Table with title, header and footer:</simpara>
-<table pgwide="0"
-frame="topbot"
-rowsep="1" colsep="1"
->
-<title>An example table</title>
-<tgroup cols="2">
-<colspec colwidth="72*" align="left"/>
-<colspec colwidth="91*" align="center"/>
-<thead>
- <row>
- <entry>
- Column 1
- </entry>
- <entry>
- Column 2
- </entry>
- </row>
-</thead>
-<tfoot>
- <row>
- <entry>
- 6
- </entry>
- <entry>
- Three items
- </entry>
- </row>
-</tfoot>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- Item 1
- </entry>
- </row>
- <row>
- <entry>
- 2
- </entry>
- <entry>
- Item 2
- </entry>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- Item 3
- </entry>
- </row>
-</tbody>
-</tgroup>
-</table>
-<simpara>Four columns totaling 15% of the <emphasis>pagewidth</emphasis>, CSV data:</simpara>
-<informaltable pgwide="0"
-frame="all"
-rowsep="0" colsep="0"
->
-<tgroup cols="4">
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<colspec colwidth="15*" align="left"/>
-<tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 2
- </entry>
- <entry>
- 3
- </entry>
- <entry>
- 4
- </entry>
- </row>
- <row>
- <entry>
- a
- </entry>
- <entry>
- b
- </entry>
- <entry>
- c
- </entry>
- <entry>
- d
- </entry>
- </row>
- <row>
- <entry>
- A
- </entry>
- <entry>
- B
- </entry>
- <entry>
- C
- </entry>
- <entry>
- D
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-<simpara>A table with a numeric ruler and externally sourced CSV data:</simpara>
-<informaltable pgwide="0"
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="5">
-<colspec colwidth="63*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<colspec colwidth="106*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<colspec colwidth="85*" align="left"/>
-<thead>
- <row>
- <entry>
- ID
- </entry>
- <entry>
- Customer Name
- </entry>
- <entry>
- Contact Name
- </entry>
- <entry>
- Customer Address
- </entry>
- <entry>
- Phone
- </entry>
- </row>
-</thead>
-<tbody>
- <row>
- <entry>
- AROUT
- </entry>
- <entry>
- Around the Horn
- </entry>
- <entry>
- Thomas Hardy
- </entry>
- <entry>
- 120 Hanover Sq.
- <?asciidoc-br?>
- London
- </entry>
- <entry>
- (171) 555-7788
- </entry>
- </row>
- <row>
- <entry>
- BERGS
- </entry>
- <entry>
- Berglunds snabbkop
- </entry>
- <entry>
- Christina Berglund
- </entry>
- <entry>
- Berguvsvagen 8
- <?asciidoc-br?>
- Lulea
- </entry>
- <entry>
- 0921-12 34 65
- </entry>
- </row>
- <row>
- <entry>
- BLAUS
- </entry>
- <entry>
- Blauer See Delikatessen
- </entry>
- <entry>
- Hanna Moos
- </entry>
- <entry>
- Forsterstr. 57
- <?asciidoc-br?>
- Mannheim
- </entry>
- <entry>
- 0621-08460
- </entry>
- </row>
- <row>
- <entry>
- BLONP
- </entry>
- <entry>
- Blondel pere et fils
- </entry>
- <entry>
- Frederique Citeaux
- </entry>
- <entry>
- 24, place Kleber
- <?asciidoc-br?>
- Strasbourg
- </entry>
- <entry>
- 88.60.15.31
- </entry>
- </row>
- <row>
- <entry>
- BOLID
- </entry>
- <entry>
- Bolido Comidas preparadas
- </entry>
- <entry>
- Martin Sommer
- </entry>
- <entry>
- C/ Araquil, 67
- <?asciidoc-br?>
- Madrid
- </entry>
- <entry>
- (91) 555 22 82
- </entry>
- </row>
- <row>
- <entry>
- BONAP
- </entry>
- <entry>
- Bon app'
- </entry>
- <entry>
- Laurence Lebihan
- </entry>
- <entry>
- 12, rue des Bouchers
- <?asciidoc-br?>
- Marseille
- </entry>
- <entry>
- 91.24.45.40
- </entry>
- </row>
- <row>
- <entry>
- BOTTM
- </entry>
- <entry>
- Bottom-Dollar Markets
- </entry>
- <entry>
- Elizabeth Lincoln
- </entry>
- <entry>
- 23 Tsawassen Blvd.
- <?asciidoc-br?>
- Tsawassen
- </entry>
- <entry>
- (604) 555-4729
- </entry>
- </row>
- <row>
- <entry>
- BSBEV
- </entry>
- <entry>
- B&#8217;s Beverages
- </entry>
- <entry>
- Victoria Ashworth
- </entry>
- <entry>
- Fauntleroy Circus
- <?asciidoc-br?>
- London
- </entry>
- <entry>
- (171) 555-1212
- </entry>
- </row>
- <row>
- <entry>
- CACTU
- </entry>
- <entry>
- Cactus Comidas para llevar
- </entry>
- <entry>
- Patricio Simpson
- </entry>
- <entry>
- Cerrito 333
- <?asciidoc-br?>
- Buenos Aires
- </entry>
- <entry>
- (1) 135-5555
- </entry>
- </row>
-</tbody>
-</tgroup>
-</informaltable>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>AsciiDoc Old Tables</title>
+</info>
+<simpara>Examples of the AsciiDoc <emphasis>old tables</emphasis> syntax. This syntax was used in
+AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
+of the <emphasis>new tables</emphasis> syntax.</simpara>
+<simpara>Simple table:</simpara>
+<informaltable pgwide="0"
+frame="topbot"
+rowsep="0" colsep="0"
+>
+<tgroup cols="2">
+<colspec colwidth="24*" align="left"/>
+<colspec colwidth="24*" align="left"/>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 2
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 4
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 5
+ </entry>
+ <entry>
+ 6
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+<simpara>Table with title, header and footer:</simpara>
+<table pgwide="0"
+frame="topbot"
+rowsep="1" colsep="1"
+>
+<title>An example table</title>
+<tgroup cols="2">
+<colspec colwidth="72*" align="left"/>
+<colspec colwidth="91*" align="center"/>
+<thead>
+ <row>
+ <entry>
+ Column 1
+ </entry>
+ <entry>
+ Column 2
+ </entry>
+ </row>
+</thead>
+<tfoot>
+ <row>
+ <entry>
+ 6
+ </entry>
+ <entry>
+ Three items
+ </entry>
+ </row>
+</tfoot>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ Item 1
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ Item 2
+ </entry>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ Item 3
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</table>
+<simpara>Four columns totaling 15% of the <emphasis>pagewidth</emphasis>, CSV data:</simpara>
+<informaltable pgwide="0"
+frame="all"
+rowsep="0" colsep="0"
+>
+<tgroup cols="4">
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<colspec colwidth="15*" align="left"/>
+<tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 4
+ </entry>
+ </row>
+ <row>
+ <entry>
+ a
+ </entry>
+ <entry>
+ b
+ </entry>
+ <entry>
+ c
+ </entry>
+ <entry>
+ d
+ </entry>
+ </row>
+ <row>
+ <entry>
+ A
+ </entry>
+ <entry>
+ B
+ </entry>
+ <entry>
+ C
+ </entry>
+ <entry>
+ D
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+<simpara>A table with a numeric ruler and externally sourced CSV data:</simpara>
+<informaltable pgwide="0"
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="5">
+<colspec colwidth="63*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<colspec colwidth="106*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<colspec colwidth="85*" align="left"/>
+<thead>
+ <row>
+ <entry>
+ ID
+ </entry>
+ <entry>
+ Customer Name
+ </entry>
+ <entry>
+ Contact Name
+ </entry>
+ <entry>
+ Customer Address
+ </entry>
+ <entry>
+ Phone
+ </entry>
+ </row>
+</thead>
+<tbody>
+ <row>
+ <entry>
+ AROUT
+ </entry>
+ <entry>
+ Around the Horn
+ </entry>
+ <entry>
+ Thomas Hardy
+ </entry>
+ <entry>
+ 120 Hanover Sq.
+ <?asciidoc-br?>
+ London
+ </entry>
+ <entry>
+ (171) 555-7788
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BERGS
+ </entry>
+ <entry>
+ Berglunds snabbkop
+ </entry>
+ <entry>
+ Christina Berglund
+ </entry>
+ <entry>
+ Berguvsvagen 8
+ <?asciidoc-br?>
+ Lulea
+ </entry>
+ <entry>
+ 0921-12 34 65
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BLAUS
+ </entry>
+ <entry>
+ Blauer See Delikatessen
+ </entry>
+ <entry>
+ Hanna Moos
+ </entry>
+ <entry>
+ Forsterstr. 57
+ <?asciidoc-br?>
+ Mannheim
+ </entry>
+ <entry>
+ 0621-08460
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BLONP
+ </entry>
+ <entry>
+ Blondel pere et fils
+ </entry>
+ <entry>
+ Frederique Citeaux
+ </entry>
+ <entry>
+ 24, place Kleber
+ <?asciidoc-br?>
+ Strasbourg
+ </entry>
+ <entry>
+ 88.60.15.31
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BOLID
+ </entry>
+ <entry>
+ Bolido Comidas preparadas
+ </entry>
+ <entry>
+ Martin Sommer
+ </entry>
+ <entry>
+ C/ Araquil, 67
+ <?asciidoc-br?>
+ Madrid
+ </entry>
+ <entry>
+ (91) 555 22 82
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BONAP
+ </entry>
+ <entry>
+ Bon app'
+ </entry>
+ <entry>
+ Laurence Lebihan
+ </entry>
+ <entry>
+ 12, rue des Bouchers
+ <?asciidoc-br?>
+ Marseille
+ </entry>
+ <entry>
+ 91.24.45.40
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BOTTM
+ </entry>
+ <entry>
+ Bottom-Dollar Markets
+ </entry>
+ <entry>
+ Elizabeth Lincoln
+ </entry>
+ <entry>
+ 23 Tsawassen Blvd.
+ <?asciidoc-br?>
+ Tsawassen
+ </entry>
+ <entry>
+ (604) 555-4729
+ </entry>
+ </row>
+ <row>
+ <entry>
+ BSBEV
+ </entry>
+ <entry>
+ B&#8217;s Beverages
+ </entry>
+ <entry>
+ Victoria Ashworth
+ </entry>
+ <entry>
+ Fauntleroy Circus
+ <?asciidoc-br?>
+ London
+ </entry>
+ <entry>
+ (171) 555-1212
+ </entry>
+ </row>
+ <row>
+ <entry>
+ CACTU
+ </entry>
+ <entry>
+ Cactus Comidas para llevar
+ </entry>
+ <entry>
+ Patricio Simpson
+ </entry>
+ <entry>
+ Cerrito 333
+ <?asciidoc-br?>
+ Buenos Aires
+ </entry>
+ <entry>
+ (1) 135-5555
+ </entry>
+ </row>
+</tbody>
+</tgroup>
+</informaltable>
+</article>
diff --git a/tests/data/oldtables-html4.html b/tests/data/oldtables-html4.html
index c7062a3..02444f8 100644
--- a/tests/data/oldtables-html4.html
+++ b/tests/data/oldtables-html4.html
@@ -1,352 +1,352 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>AsciiDoc Old Tables</title>
-</head>
-<body>
-<h1>AsciiDoc Old Tables</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
-AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
-of the <em>new tables</em> syntax.</p>
-<p>Simple table:</p>
-<table rules="none"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<tbody>
- <tr>
- <td align="left" width="45" valign="top">
- 1
- </td>
- <td align="left" width="45" valign="top">
- 2
- </td>
- </tr>
- <tr>
- <td align="left" width="45" valign="top">
- 3
- </td>
- <td align="left" width="45" valign="top">
- 4
- </td>
- </tr>
- <tr>
- <td align="left" width="45" valign="top">
- 5
- </td>
- <td align="left" width="45" valign="top">
- 6
- </td>
- </tr>
-</tbody>
-</table>
-<p>Table with title, header and footer:</p>
-<p><b>Table</b>An example table</p>
-<table rules="all"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<thead>
- <tr>
- <th align="left" width="137">
- Column 1
- </th>
- <th align="center" width="171">
- Column 2
- </th>
- </tr>
-</thead>
-<tfoot>
- <tr>
- <td align="left" width="137"><strong>
- 6
- </strong></td>
- <td align="center" width="171"><strong>
- Three items
- </strong></td>
- </tr>
-</tfoot>
-<tbody>
- <tr>
- <td align="left" width="137" valign="top">
- 1
- </td>
- <td align="center" width="171" valign="top">
- Item 1
- </td>
- </tr>
- <tr>
- <td align="left" width="137" valign="top">
- 2
- </td>
- <td align="center" width="171" valign="top">
- Item 2
- </td>
- </tr>
- <tr>
- <td align="left" width="137" valign="top">
- 3
- </td>
- <td align="center" width="171" valign="top">
- Item 3
- </td>
- </tr>
-</tbody>
-</table>
-<p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p>
-<table rules="none"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
- <tr>
- <td align="left" width="30" valign="top">
- 1
- </td>
- <td align="left" width="30" valign="top">
- 2
- </td>
- <td align="left" width="30" valign="top">
- 3
- </td>
- <td align="left" width="30" valign="top">
- 4
- </td>
- </tr>
- <tr>
- <td align="left" width="30" valign="top">
- a
- </td>
- <td align="left" width="30" valign="top">
- b
- </td>
- <td align="left" width="30" valign="top">
- c
- </td>
- <td align="left" width="30" valign="top">
- d
- </td>
- </tr>
- <tr>
- <td align="left" width="30" valign="top">
- A
- </td>
- <td align="left" width="30" valign="top">
- B
- </td>
- <td align="left" width="30" valign="top">
- C
- </td>
- <td align="left" width="30" valign="top">
- D
- </td>
- </tr>
-</tbody>
-</table>
-<p>A table with a numeric ruler and externally sourced CSV data:</p>
-<table rules="all"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
- <tr>
- <th align="left" width="120">
- ID
- </th>
- <th align="left" width="160">
- Customer Name
- </th>
- <th align="left" width="200">
- Contact Name
- </th>
- <th align="left" width="160">
- Customer Address
- </th>
- <th align="left" width="160">
- Phone
- </th>
- </tr>
-</thead>
-<tbody>
- <tr>
- <td align="left" width="120" valign="top">
- AROUT
- </td>
- <td align="left" width="160" valign="top">
- Around the Horn
- </td>
- <td align="left" width="200" valign="top">
- Thomas Hardy
- </td>
- <td align="left" width="160" valign="top">
- 120 Hanover Sq.
- <br>
- London
- </td>
- <td align="left" width="160" valign="top">
- (171) 555-7788
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BERGS
- </td>
- <td align="left" width="160" valign="top">
- Berglunds snabbkop
- </td>
- <td align="left" width="200" valign="top">
- Christina Berglund
- </td>
- <td align="left" width="160" valign="top">
- Berguvsvagen 8
- <br>
- Lulea
- </td>
- <td align="left" width="160" valign="top">
- 0921-12 34 65
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BLAUS
- </td>
- <td align="left" width="160" valign="top">
- Blauer See Delikatessen
- </td>
- <td align="left" width="200" valign="top">
- Hanna Moos
- </td>
- <td align="left" width="160" valign="top">
- Forsterstr. 57
- <br>
- Mannheim
- </td>
- <td align="left" width="160" valign="top">
- 0621-08460
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BLONP
- </td>
- <td align="left" width="160" valign="top">
- Blondel pere et fils
- </td>
- <td align="left" width="200" valign="top">
- Frederique Citeaux
- </td>
- <td align="left" width="160" valign="top">
- 24, place Kleber
- <br>
- Strasbourg
- </td>
- <td align="left" width="160" valign="top">
- 88.60.15.31
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BOLID
- </td>
- <td align="left" width="160" valign="top">
- Bolido Comidas preparadas
- </td>
- <td align="left" width="200" valign="top">
- Martin Sommer
- </td>
- <td align="left" width="160" valign="top">
- C/ Araquil, 67
- <br>
- Madrid
- </td>
- <td align="left" width="160" valign="top">
- (91) 555 22 82
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BONAP
- </td>
- <td align="left" width="160" valign="top">
- Bon app'
- </td>
- <td align="left" width="200" valign="top">
- Laurence Lebihan
- </td>
- <td align="left" width="160" valign="top">
- 12, rue des Bouchers
- <br>
- Marseille
- </td>
- <td align="left" width="160" valign="top">
- 91.24.45.40
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BOTTM
- </td>
- <td align="left" width="160" valign="top">
- Bottom-Dollar Markets
- </td>
- <td align="left" width="200" valign="top">
- Elizabeth Lincoln
- </td>
- <td align="left" width="160" valign="top">
- 23 Tsawassen Blvd.
- <br>
- Tsawassen
- </td>
- <td align="left" width="160" valign="top">
- (604) 555-4729
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- BSBEV
- </td>
- <td align="left" width="160" valign="top">
- B&#8217;s Beverages
- </td>
- <td align="left" width="200" valign="top">
- Victoria Ashworth
- </td>
- <td align="left" width="160" valign="top">
- Fauntleroy Circus
- <br>
- London
- </td>
- <td align="left" width="160" valign="top">
- (171) 555-1212
- </td>
- </tr>
- <tr>
- <td align="left" width="120" valign="top">
- CACTU
- </td>
- <td align="left" width="160" valign="top">
- Cactus Comidas para llevar
- </td>
- <td align="left" width="200" valign="top">
- Patricio Simpson
- </td>
- <td align="left" width="160" valign="top">
- Cerrito 333
- <br>
- Buenos Aires
- </td>
- <td align="left" width="160" valign="top">
- (1) 135-5555
- </td>
- </tr>
-</tbody>
-</table>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>AsciiDoc Old Tables</title>
+</head>
+<body>
+<h1>AsciiDoc Old Tables</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
+AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
+of the <em>new tables</em> syntax.</p>
+<p>Simple table:</p>
+<table rules="none"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<tbody>
+ <tr>
+ <td align="left" width="45" valign="top">
+ 1
+ </td>
+ <td align="left" width="45" valign="top">
+ 2
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="45" valign="top">
+ 3
+ </td>
+ <td align="left" width="45" valign="top">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="45" valign="top">
+ 5
+ </td>
+ <td align="left" width="45" valign="top">
+ 6
+ </td>
+ </tr>
+</tbody>
+</table>
+<p>Table with title, header and footer:</p>
+<p><b>Table</b>An example table</p>
+<table rules="all"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<thead>
+ <tr>
+ <th align="left" width="137">
+ Column 1
+ </th>
+ <th align="center" width="171">
+ Column 2
+ </th>
+ </tr>
+</thead>
+<tfoot>
+ <tr>
+ <td align="left" width="137"><strong>
+ 6
+ </strong></td>
+ <td align="center" width="171"><strong>
+ Three items
+ </strong></td>
+ </tr>
+</tfoot>
+<tbody>
+ <tr>
+ <td align="left" width="137" valign="top">
+ 1
+ </td>
+ <td align="center" width="171" valign="top">
+ Item 1
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="137" valign="top">
+ 2
+ </td>
+ <td align="center" width="171" valign="top">
+ Item 2
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="137" valign="top">
+ 3
+ </td>
+ <td align="center" width="171" valign="top">
+ Item 3
+ </td>
+ </tr>
+</tbody>
+</table>
+<p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p>
+<table rules="none"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+ <tr>
+ <td align="left" width="30" valign="top">
+ 1
+ </td>
+ <td align="left" width="30" valign="top">
+ 2
+ </td>
+ <td align="left" width="30" valign="top">
+ 3
+ </td>
+ <td align="left" width="30" valign="top">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="30" valign="top">
+ a
+ </td>
+ <td align="left" width="30" valign="top">
+ b
+ </td>
+ <td align="left" width="30" valign="top">
+ c
+ </td>
+ <td align="left" width="30" valign="top">
+ d
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="30" valign="top">
+ A
+ </td>
+ <td align="left" width="30" valign="top">
+ B
+ </td>
+ <td align="left" width="30" valign="top">
+ C
+ </td>
+ <td align="left" width="30" valign="top">
+ D
+ </td>
+ </tr>
+</tbody>
+</table>
+<p>A table with a numeric ruler and externally sourced CSV data:</p>
+<table rules="all"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+ <tr>
+ <th align="left" width="120">
+ ID
+ </th>
+ <th align="left" width="160">
+ Customer Name
+ </th>
+ <th align="left" width="200">
+ Contact Name
+ </th>
+ <th align="left" width="160">
+ Customer Address
+ </th>
+ <th align="left" width="160">
+ Phone
+ </th>
+ </tr>
+</thead>
+<tbody>
+ <tr>
+ <td align="left" width="120" valign="top">
+ AROUT
+ </td>
+ <td align="left" width="160" valign="top">
+ Around the Horn
+ </td>
+ <td align="left" width="200" valign="top">
+ Thomas Hardy
+ </td>
+ <td align="left" width="160" valign="top">
+ 120 Hanover Sq.
+ <br>
+ London
+ </td>
+ <td align="left" width="160" valign="top">
+ (171) 555-7788
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BERGS
+ </td>
+ <td align="left" width="160" valign="top">
+ Berglunds snabbkop
+ </td>
+ <td align="left" width="200" valign="top">
+ Christina Berglund
+ </td>
+ <td align="left" width="160" valign="top">
+ Berguvsvagen 8
+ <br>
+ Lulea
+ </td>
+ <td align="left" width="160" valign="top">
+ 0921-12 34 65
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BLAUS
+ </td>
+ <td align="left" width="160" valign="top">
+ Blauer See Delikatessen
+ </td>
+ <td align="left" width="200" valign="top">
+ Hanna Moos
+ </td>
+ <td align="left" width="160" valign="top">
+ Forsterstr. 57
+ <br>
+ Mannheim
+ </td>
+ <td align="left" width="160" valign="top">
+ 0621-08460
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BLONP
+ </td>
+ <td align="left" width="160" valign="top">
+ Blondel pere et fils
+ </td>
+ <td align="left" width="200" valign="top">
+ Frederique Citeaux
+ </td>
+ <td align="left" width="160" valign="top">
+ 24, place Kleber
+ <br>
+ Strasbourg
+ </td>
+ <td align="left" width="160" valign="top">
+ 88.60.15.31
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BOLID
+ </td>
+ <td align="left" width="160" valign="top">
+ Bolido Comidas preparadas
+ </td>
+ <td align="left" width="200" valign="top">
+ Martin Sommer
+ </td>
+ <td align="left" width="160" valign="top">
+ C/ Araquil, 67
+ <br>
+ Madrid
+ </td>
+ <td align="left" width="160" valign="top">
+ (91) 555 22 82
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BONAP
+ </td>
+ <td align="left" width="160" valign="top">
+ Bon app'
+ </td>
+ <td align="left" width="200" valign="top">
+ Laurence Lebihan
+ </td>
+ <td align="left" width="160" valign="top">
+ 12, rue des Bouchers
+ <br>
+ Marseille
+ </td>
+ <td align="left" width="160" valign="top">
+ 91.24.45.40
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BOTTM
+ </td>
+ <td align="left" width="160" valign="top">
+ Bottom-Dollar Markets
+ </td>
+ <td align="left" width="200" valign="top">
+ Elizabeth Lincoln
+ </td>
+ <td align="left" width="160" valign="top">
+ 23 Tsawassen Blvd.
+ <br>
+ Tsawassen
+ </td>
+ <td align="left" width="160" valign="top">
+ (604) 555-4729
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ BSBEV
+ </td>
+ <td align="left" width="160" valign="top">
+ B&#8217;s Beverages
+ </td>
+ <td align="left" width="200" valign="top">
+ Victoria Ashworth
+ </td>
+ <td align="left" width="160" valign="top">
+ Fauntleroy Circus
+ <br>
+ London
+ </td>
+ <td align="left" width="160" valign="top">
+ (171) 555-1212
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="120" valign="top">
+ CACTU
+ </td>
+ <td align="left" width="160" valign="top">
+ Cactus Comidas para llevar
+ </td>
+ <td align="left" width="200" valign="top">
+ Patricio Simpson
+ </td>
+ <td align="left" width="160" valign="top">
+ Cerrito 333
+ <br>
+ Buenos Aires
+ </td>
+ <td align="left" width="160" valign="top">
+ (1) 135-5555
+ </td>
+ </tr>
+</tbody>
+</table>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/oldtables-html5.html b/tests/data/oldtables-html5.html
index a64c757..1817357 100644
--- a/tests/data/oldtables-html5.html
+++ b/tests/data/oldtables-html5.html
@@ -1,1088 +1,1088 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>AsciiDoc Old Tables</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>AsciiDoc Old Tables</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
-AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
-of the <em>new tables</em> syntax.</p></div>
-<div class="paragraph"><p>Simple table:</p></div>
-<table class="tableblock frame-all grid-all">
-<col style="width:45px;" />
-<col style="width:45px;" />
-<tbody style="vertical-align:top;">
- <tr>
- <td class="tableblock halign-left">
- 1
- </td>
- <td class="tableblock halign-left">
- 2
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- 3
- </td>
- <td class="tableblock halign-left">
- 4
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- 5
- </td>
- <td class="tableblock halign-left">
- 6
- </td>
- </tr>
-</tbody>
-</table>
-<div class="paragraph"><p>Table with title, header and footer:</p></div>
-<table class="tableblock frame-all grid-all">
-<caption class="title">TableAn example table</caption>
-<col style="width:137px;" />
-<col style="width:171px;" />
-<thead>
- <tr>
- <th class="tableblock halign-left">
- Column 1
- </th>
- <th class="tableblock halign-center">
- Column 2
- </th>
- </tr>
-</thead>
-<tfoot>
- <tr>
- <td class="tableblock halign-left">
- 6
- </td>
- <td class="tableblock halign-center">
- Three items
- </td>
- </tr>
-</tfoot>
-<tbody style="vertical-align:top;">
- <tr>
- <td class="tableblock halign-left">
- 1
- </td>
- <td class="tableblock halign-center">
- Item 1
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- 2
- </td>
- <td class="tableblock halign-center">
- Item 2
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- 3
- </td>
- <td class="tableblock halign-center">
- Item 3
- </td>
- </tr>
-</tbody>
-</table>
-<div class="paragraph"><p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p></div>
-<table class="tableblock frame-all grid-all">
-<col style="width:30px;" />
-<col style="width:30px;" />
-<col style="width:30px;" />
-<col style="width:30px;" />
-<tbody style="vertical-align:top;">
- <tr>
- <td class="tableblock halign-left">
- 1
- </td>
- <td class="tableblock halign-left">
- 2
- </td>
- <td class="tableblock halign-left">
- 3
- </td>
- <td class="tableblock halign-left">
- 4
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- a
- </td>
- <td class="tableblock halign-left">
- b
- </td>
- <td class="tableblock halign-left">
- c
- </td>
- <td class="tableblock halign-left">
- d
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- A
- </td>
- <td class="tableblock halign-left">
- B
- </td>
- <td class="tableblock halign-left">
- C
- </td>
- <td class="tableblock halign-left">
- D
- </td>
- </tr>
-</tbody>
-</table>
-<div class="paragraph"><p>A table with a numeric ruler and externally sourced CSV data:</p></div>
-<table class="tableblock frame-all grid-all">
-<col style="width:120px;" />
-<col style="width:160px;" />
-<col style="width:200px;" />
-<col style="width:160px;" />
-<col style="width:160px;" />
-<thead>
- <tr>
- <th class="tableblock halign-left">
- ID
- </th>
- <th class="tableblock halign-left">
- Customer Name
- </th>
- <th class="tableblock halign-left">
- Contact Name
- </th>
- <th class="tableblock halign-left">
- Customer Address
- </th>
- <th class="tableblock halign-left">
- Phone
- </th>
- </tr>
-</thead>
-<tbody style="vertical-align:top;">
- <tr>
- <td class="tableblock halign-left">
- AROUT
- </td>
- <td class="tableblock halign-left">
- Around the Horn
- </td>
- <td class="tableblock halign-left">
- Thomas Hardy
- </td>
- <td class="tableblock halign-left">
- 120 Hanover Sq.
- <br>
- London
- </td>
- <td class="tableblock halign-left">
- (171) 555-7788
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BERGS
- </td>
- <td class="tableblock halign-left">
- Berglunds snabbkop
- </td>
- <td class="tableblock halign-left">
- Christina Berglund
- </td>
- <td class="tableblock halign-left">
- Berguvsvagen 8
- <br>
- Lulea
- </td>
- <td class="tableblock halign-left">
- 0921-12 34 65
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BLAUS
- </td>
- <td class="tableblock halign-left">
- Blauer See Delikatessen
- </td>
- <td class="tableblock halign-left">
- Hanna Moos
- </td>
- <td class="tableblock halign-left">
- Forsterstr. 57
- <br>
- Mannheim
- </td>
- <td class="tableblock halign-left">
- 0621-08460
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BLONP
- </td>
- <td class="tableblock halign-left">
- Blondel pere et fils
- </td>
- <td class="tableblock halign-left">
- Frederique Citeaux
- </td>
- <td class="tableblock halign-left">
- 24, place Kleber
- <br>
- Strasbourg
- </td>
- <td class="tableblock halign-left">
- 88.60.15.31
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BOLID
- </td>
- <td class="tableblock halign-left">
- Bolido Comidas preparadas
- </td>
- <td class="tableblock halign-left">
- Martin Sommer
- </td>
- <td class="tableblock halign-left">
- C/ Araquil, 67
- <br>
- Madrid
- </td>
- <td class="tableblock halign-left">
- (91) 555 22 82
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BONAP
- </td>
- <td class="tableblock halign-left">
- Bon app'
- </td>
- <td class="tableblock halign-left">
- Laurence Lebihan
- </td>
- <td class="tableblock halign-left">
- 12, rue des Bouchers
- <br>
- Marseille
- </td>
- <td class="tableblock halign-left">
- 91.24.45.40
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BOTTM
- </td>
- <td class="tableblock halign-left">
- Bottom-Dollar Markets
- </td>
- <td class="tableblock halign-left">
- Elizabeth Lincoln
- </td>
- <td class="tableblock halign-left">
- 23 Tsawassen Blvd.
- <br>
- Tsawassen
- </td>
- <td class="tableblock halign-left">
- (604) 555-4729
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- BSBEV
- </td>
- <td class="tableblock halign-left">
- B&#8217;s Beverages
- </td>
- <td class="tableblock halign-left">
- Victoria Ashworth
- </td>
- <td class="tableblock halign-left">
- Fauntleroy Circus
- <br>
- London
- </td>
- <td class="tableblock halign-left">
- (171) 555-1212
- </td>
- </tr>
- <tr>
- <td class="tableblock halign-left">
- CACTU
- </td>
- <td class="tableblock halign-left">
- Cactus Comidas para llevar
- </td>
- <td class="tableblock halign-left">
- Patricio Simpson
- </td>
- <td class="tableblock halign-left">
- Cerrito 333
- <br>
- Buenos Aires
- </td>
- <td class="tableblock halign-left">
- (1) 135-5555
- </td>
- </tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>AsciiDoc Old Tables</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>AsciiDoc Old Tables</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
+AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
+of the <em>new tables</em> syntax.</p></div>
+<div class="paragraph"><p>Simple table:</p></div>
+<table class="tableblock frame-all grid-all">
+<col style="width:45px;" />
+<col style="width:45px;" />
+<tbody style="vertical-align:top;">
+ <tr>
+ <td class="tableblock halign-left">
+ 1
+ </td>
+ <td class="tableblock halign-left">
+ 2
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ 3
+ </td>
+ <td class="tableblock halign-left">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ 5
+ </td>
+ <td class="tableblock halign-left">
+ 6
+ </td>
+ </tr>
+</tbody>
+</table>
+<div class="paragraph"><p>Table with title, header and footer:</p></div>
+<table class="tableblock frame-all grid-all">
+<caption class="title">TableAn example table</caption>
+<col style="width:137px;" />
+<col style="width:171px;" />
+<thead>
+ <tr>
+ <th class="tableblock halign-left">
+ Column 1
+ </th>
+ <th class="tableblock halign-center">
+ Column 2
+ </th>
+ </tr>
+</thead>
+<tfoot>
+ <tr>
+ <td class="tableblock halign-left">
+ 6
+ </td>
+ <td class="tableblock halign-center">
+ Three items
+ </td>
+ </tr>
+</tfoot>
+<tbody style="vertical-align:top;">
+ <tr>
+ <td class="tableblock halign-left">
+ 1
+ </td>
+ <td class="tableblock halign-center">
+ Item 1
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ 2
+ </td>
+ <td class="tableblock halign-center">
+ Item 2
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ 3
+ </td>
+ <td class="tableblock halign-center">
+ Item 3
+ </td>
+ </tr>
+</tbody>
+</table>
+<div class="paragraph"><p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p></div>
+<table class="tableblock frame-all grid-all">
+<col style="width:30px;" />
+<col style="width:30px;" />
+<col style="width:30px;" />
+<col style="width:30px;" />
+<tbody style="vertical-align:top;">
+ <tr>
+ <td class="tableblock halign-left">
+ 1
+ </td>
+ <td class="tableblock halign-left">
+ 2
+ </td>
+ <td class="tableblock halign-left">
+ 3
+ </td>
+ <td class="tableblock halign-left">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ a
+ </td>
+ <td class="tableblock halign-left">
+ b
+ </td>
+ <td class="tableblock halign-left">
+ c
+ </td>
+ <td class="tableblock halign-left">
+ d
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ A
+ </td>
+ <td class="tableblock halign-left">
+ B
+ </td>
+ <td class="tableblock halign-left">
+ C
+ </td>
+ <td class="tableblock halign-left">
+ D
+ </td>
+ </tr>
+</tbody>
+</table>
+<div class="paragraph"><p>A table with a numeric ruler and externally sourced CSV data:</p></div>
+<table class="tableblock frame-all grid-all">
+<col style="width:120px;" />
+<col style="width:160px;" />
+<col style="width:200px;" />
+<col style="width:160px;" />
+<col style="width:160px;" />
+<thead>
+ <tr>
+ <th class="tableblock halign-left">
+ ID
+ </th>
+ <th class="tableblock halign-left">
+ Customer Name
+ </th>
+ <th class="tableblock halign-left">
+ Contact Name
+ </th>
+ <th class="tableblock halign-left">
+ Customer Address
+ </th>
+ <th class="tableblock halign-left">
+ Phone
+ </th>
+ </tr>
+</thead>
+<tbody style="vertical-align:top;">
+ <tr>
+ <td class="tableblock halign-left">
+ AROUT
+ </td>
+ <td class="tableblock halign-left">
+ Around the Horn
+ </td>
+ <td class="tableblock halign-left">
+ Thomas Hardy
+ </td>
+ <td class="tableblock halign-left">
+ 120 Hanover Sq.
+ <br>
+ London
+ </td>
+ <td class="tableblock halign-left">
+ (171) 555-7788
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BERGS
+ </td>
+ <td class="tableblock halign-left">
+ Berglunds snabbkop
+ </td>
+ <td class="tableblock halign-left">
+ Christina Berglund
+ </td>
+ <td class="tableblock halign-left">
+ Berguvsvagen 8
+ <br>
+ Lulea
+ </td>
+ <td class="tableblock halign-left">
+ 0921-12 34 65
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BLAUS
+ </td>
+ <td class="tableblock halign-left">
+ Blauer See Delikatessen
+ </td>
+ <td class="tableblock halign-left">
+ Hanna Moos
+ </td>
+ <td class="tableblock halign-left">
+ Forsterstr. 57
+ <br>
+ Mannheim
+ </td>
+ <td class="tableblock halign-left">
+ 0621-08460
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BLONP
+ </td>
+ <td class="tableblock halign-left">
+ Blondel pere et fils
+ </td>
+ <td class="tableblock halign-left">
+ Frederique Citeaux
+ </td>
+ <td class="tableblock halign-left">
+ 24, place Kleber
+ <br>
+ Strasbourg
+ </td>
+ <td class="tableblock halign-left">
+ 88.60.15.31
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BOLID
+ </td>
+ <td class="tableblock halign-left">
+ Bolido Comidas preparadas
+ </td>
+ <td class="tableblock halign-left">
+ Martin Sommer
+ </td>
+ <td class="tableblock halign-left">
+ C/ Araquil, 67
+ <br>
+ Madrid
+ </td>
+ <td class="tableblock halign-left">
+ (91) 555 22 82
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BONAP
+ </td>
+ <td class="tableblock halign-left">
+ Bon app'
+ </td>
+ <td class="tableblock halign-left">
+ Laurence Lebihan
+ </td>
+ <td class="tableblock halign-left">
+ 12, rue des Bouchers
+ <br>
+ Marseille
+ </td>
+ <td class="tableblock halign-left">
+ 91.24.45.40
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BOTTM
+ </td>
+ <td class="tableblock halign-left">
+ Bottom-Dollar Markets
+ </td>
+ <td class="tableblock halign-left">
+ Elizabeth Lincoln
+ </td>
+ <td class="tableblock halign-left">
+ 23 Tsawassen Blvd.
+ <br>
+ Tsawassen
+ </td>
+ <td class="tableblock halign-left">
+ (604) 555-4729
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ BSBEV
+ </td>
+ <td class="tableblock halign-left">
+ B&#8217;s Beverages
+ </td>
+ <td class="tableblock halign-left">
+ Victoria Ashworth
+ </td>
+ <td class="tableblock halign-left">
+ Fauntleroy Circus
+ <br>
+ London
+ </td>
+ <td class="tableblock halign-left">
+ (171) 555-1212
+ </td>
+ </tr>
+ <tr>
+ <td class="tableblock halign-left">
+ CACTU
+ </td>
+ <td class="tableblock halign-left">
+ Cactus Comidas para llevar
+ </td>
+ <td class="tableblock halign-left">
+ Patricio Simpson
+ </td>
+ <td class="tableblock halign-left">
+ Cerrito 333
+ <br>
+ Buenos Aires
+ </td>
+ <td class="tableblock halign-left">
+ (1) 135-5555
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/oldtables-xhtml11.html b/tests/data/oldtables-xhtml11.html
index dae1c50..9238c1d 100644
--- a/tests/data/oldtables-xhtml11.html
+++ b/tests/data/oldtables-xhtml11.html
@@ -1,1106 +1,1106 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>AsciiDoc Old Tables</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>AsciiDoc Old Tables</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
-AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
-of the <em>new tables</em> syntax.</p></div>
-<div class="paragraph"><p>Simple table:</p></div>
-<div class="tableblock">
-<table rules="none"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<col width="45" />
-<col width="45" />
-<tbody valign="top">
- <tr>
- <td align="left">
- 1
- </td>
- <td align="left">
- 2
- </td>
- </tr>
- <tr>
- <td align="left">
- 3
- </td>
- <td align="left">
- 4
- </td>
- </tr>
- <tr>
- <td align="left">
- 5
- </td>
- <td align="left">
- 6
- </td>
- </tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>Table with title, header and footer:</p></div>
-<div class="tableblock">
-<table rules="all"
-frame="hsides"
-cellspacing="0" cellpadding="4">
-<caption class="title">TableAn example table</caption>
-<col width="137" />
-<col width="171" />
-<thead>
- <tr>
- <th align="left">
- Column 1
- </th>
- <th align="center">
- Column 2
- </th>
- </tr>
-</thead>
-<tfoot>
- <tr>
- <td align="left">
- 6
- </td>
- <td align="center">
- Three items
- </td>
- </tr>
-</tfoot>
-<tbody valign="top">
- <tr>
- <td align="left">
- 1
- </td>
- <td align="center">
- Item 1
- </td>
- </tr>
- <tr>
- <td align="left">
- 2
- </td>
- <td align="center">
- Item 2
- </td>
- </tr>
- <tr>
- <td align="left">
- 3
- </td>
- <td align="center">
- Item 3
- </td>
- </tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p></div>
-<div class="tableblock">
-<table rules="none"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="30" />
-<col width="30" />
-<col width="30" />
-<col width="30" />
-<tbody valign="top">
- <tr>
- <td align="left">
- 1
- </td>
- <td align="left">
- 2
- </td>
- <td align="left">
- 3
- </td>
- <td align="left">
- 4
- </td>
- </tr>
- <tr>
- <td align="left">
- a
- </td>
- <td align="left">
- b
- </td>
- <td align="left">
- c
- </td>
- <td align="left">
- d
- </td>
- </tr>
- <tr>
- <td align="left">
- A
- </td>
- <td align="left">
- B
- </td>
- <td align="left">
- C
- </td>
- <td align="left">
- D
- </td>
- </tr>
-</tbody>
-</table>
-</div>
-<div class="paragraph"><p>A table with a numeric ruler and externally sourced CSV data:</p></div>
-<div class="tableblock">
-<table rules="all"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="120" />
-<col width="160" />
-<col width="200" />
-<col width="160" />
-<col width="160" />
-<thead>
- <tr>
- <th align="left">
- ID
- </th>
- <th align="left">
- Customer Name
- </th>
- <th align="left">
- Contact Name
- </th>
- <th align="left">
- Customer Address
- </th>
- <th align="left">
- Phone
- </th>
- </tr>
-</thead>
-<tbody valign="top">
- <tr>
- <td align="left">
- AROUT
- </td>
- <td align="left">
- Around the Horn
- </td>
- <td align="left">
- Thomas Hardy
- </td>
- <td align="left">
- 120 Hanover Sq.
- <br />
- London
- </td>
- <td align="left">
- (171) 555-7788
- </td>
- </tr>
- <tr>
- <td align="left">
- BERGS
- </td>
- <td align="left">
- Berglunds snabbkop
- </td>
- <td align="left">
- Christina Berglund
- </td>
- <td align="left">
- Berguvsvagen 8
- <br />
- Lulea
- </td>
- <td align="left">
- 0921-12 34 65
- </td>
- </tr>
- <tr>
- <td align="left">
- BLAUS
- </td>
- <td align="left">
- Blauer See Delikatessen
- </td>
- <td align="left">
- Hanna Moos
- </td>
- <td align="left">
- Forsterstr. 57
- <br />
- Mannheim
- </td>
- <td align="left">
- 0621-08460
- </td>
- </tr>
- <tr>
- <td align="left">
- BLONP
- </td>
- <td align="left">
- Blondel pere et fils
- </td>
- <td align="left">
- Frederique Citeaux
- </td>
- <td align="left">
- 24, place Kleber
- <br />
- Strasbourg
- </td>
- <td align="left">
- 88.60.15.31
- </td>
- </tr>
- <tr>
- <td align="left">
- BOLID
- </td>
- <td align="left">
- Bolido Comidas preparadas
- </td>
- <td align="left">
- Martin Sommer
- </td>
- <td align="left">
- C/ Araquil, 67
- <br />
- Madrid
- </td>
- <td align="left">
- (91) 555 22 82
- </td>
- </tr>
- <tr>
- <td align="left">
- BONAP
- </td>
- <td align="left">
- Bon app'
- </td>
- <td align="left">
- Laurence Lebihan
- </td>
- <td align="left">
- 12, rue des Bouchers
- <br />
- Marseille
- </td>
- <td align="left">
- 91.24.45.40
- </td>
- </tr>
- <tr>
- <td align="left">
- BOTTM
- </td>
- <td align="left">
- Bottom-Dollar Markets
- </td>
- <td align="left">
- Elizabeth Lincoln
- </td>
- <td align="left">
- 23 Tsawassen Blvd.
- <br />
- Tsawassen
- </td>
- <td align="left">
- (604) 555-4729
- </td>
- </tr>
- <tr>
- <td align="left">
- BSBEV
- </td>
- <td align="left">
- B&#8217;s Beverages
- </td>
- <td align="left">
- Victoria Ashworth
- </td>
- <td align="left">
- Fauntleroy Circus
- <br />
- London
- </td>
- <td align="left">
- (171) 555-1212
- </td>
- </tr>
- <tr>
- <td align="left">
- CACTU
- </td>
- <td align="left">
- Cactus Comidas para llevar
- </td>
- <td align="left">
- Patricio Simpson
- </td>
- <td align="left">
- Cerrito 333
- <br />
- Buenos Aires
- </td>
- <td align="left">
- (1) 135-5555
- </td>
- </tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>AsciiDoc Old Tables</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>AsciiDoc Old Tables</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Examples of the AsciiDoc <em>old tables</em> syntax. This syntax was used in
+AsciiDoc versions up to 8.2.7 and has since been deprecated in favor
+of the <em>new tables</em> syntax.</p></div>
+<div class="paragraph"><p>Simple table:</p></div>
+<div class="tableblock">
+<table rules="none"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<col width="45" />
+<col width="45" />
+<tbody valign="top">
+ <tr>
+ <td align="left">
+ 1
+ </td>
+ <td align="left">
+ 2
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ 3
+ </td>
+ <td align="left">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ 5
+ </td>
+ <td align="left">
+ 6
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>Table with title, header and footer:</p></div>
+<div class="tableblock">
+<table rules="all"
+frame="hsides"
+cellspacing="0" cellpadding="4">
+<caption class="title">TableAn example table</caption>
+<col width="137" />
+<col width="171" />
+<thead>
+ <tr>
+ <th align="left">
+ Column 1
+ </th>
+ <th align="center">
+ Column 2
+ </th>
+ </tr>
+</thead>
+<tfoot>
+ <tr>
+ <td align="left">
+ 6
+ </td>
+ <td align="center">
+ Three items
+ </td>
+ </tr>
+</tfoot>
+<tbody valign="top">
+ <tr>
+ <td align="left">
+ 1
+ </td>
+ <td align="center">
+ Item 1
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ 2
+ </td>
+ <td align="center">
+ Item 2
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ 3
+ </td>
+ <td align="center">
+ Item 3
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>Four columns totaling 15% of the <em>pagewidth</em>, CSV data:</p></div>
+<div class="tableblock">
+<table rules="none"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="30" />
+<col width="30" />
+<col width="30" />
+<col width="30" />
+<tbody valign="top">
+ <tr>
+ <td align="left">
+ 1
+ </td>
+ <td align="left">
+ 2
+ </td>
+ <td align="left">
+ 3
+ </td>
+ <td align="left">
+ 4
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ a
+ </td>
+ <td align="left">
+ b
+ </td>
+ <td align="left">
+ c
+ </td>
+ <td align="left">
+ d
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ A
+ </td>
+ <td align="left">
+ B
+ </td>
+ <td align="left">
+ C
+ </td>
+ <td align="left">
+ D
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+<div class="paragraph"><p>A table with a numeric ruler and externally sourced CSV data:</p></div>
+<div class="tableblock">
+<table rules="all"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="120" />
+<col width="160" />
+<col width="200" />
+<col width="160" />
+<col width="160" />
+<thead>
+ <tr>
+ <th align="left">
+ ID
+ </th>
+ <th align="left">
+ Customer Name
+ </th>
+ <th align="left">
+ Contact Name
+ </th>
+ <th align="left">
+ Customer Address
+ </th>
+ <th align="left">
+ Phone
+ </th>
+ </tr>
+</thead>
+<tbody valign="top">
+ <tr>
+ <td align="left">
+ AROUT
+ </td>
+ <td align="left">
+ Around the Horn
+ </td>
+ <td align="left">
+ Thomas Hardy
+ </td>
+ <td align="left">
+ 120 Hanover Sq.
+ <br />
+ London
+ </td>
+ <td align="left">
+ (171) 555-7788
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BERGS
+ </td>
+ <td align="left">
+ Berglunds snabbkop
+ </td>
+ <td align="left">
+ Christina Berglund
+ </td>
+ <td align="left">
+ Berguvsvagen 8
+ <br />
+ Lulea
+ </td>
+ <td align="left">
+ 0921-12 34 65
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BLAUS
+ </td>
+ <td align="left">
+ Blauer See Delikatessen
+ </td>
+ <td align="left">
+ Hanna Moos
+ </td>
+ <td align="left">
+ Forsterstr. 57
+ <br />
+ Mannheim
+ </td>
+ <td align="left">
+ 0621-08460
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BLONP
+ </td>
+ <td align="left">
+ Blondel pere et fils
+ </td>
+ <td align="left">
+ Frederique Citeaux
+ </td>
+ <td align="left">
+ 24, place Kleber
+ <br />
+ Strasbourg
+ </td>
+ <td align="left">
+ 88.60.15.31
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BOLID
+ </td>
+ <td align="left">
+ Bolido Comidas preparadas
+ </td>
+ <td align="left">
+ Martin Sommer
+ </td>
+ <td align="left">
+ C/ Araquil, 67
+ <br />
+ Madrid
+ </td>
+ <td align="left">
+ (91) 555 22 82
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BONAP
+ </td>
+ <td align="left">
+ Bon app'
+ </td>
+ <td align="left">
+ Laurence Lebihan
+ </td>
+ <td align="left">
+ 12, rue des Bouchers
+ <br />
+ Marseille
+ </td>
+ <td align="left">
+ 91.24.45.40
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BOTTM
+ </td>
+ <td align="left">
+ Bottom-Dollar Markets
+ </td>
+ <td align="left">
+ Elizabeth Lincoln
+ </td>
+ <td align="left">
+ 23 Tsawassen Blvd.
+ <br />
+ Tsawassen
+ </td>
+ <td align="left">
+ (604) 555-4729
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ BSBEV
+ </td>
+ <td align="left">
+ B&#8217;s Beverages
+ </td>
+ <td align="left">
+ Victoria Ashworth
+ </td>
+ <td align="left">
+ Fauntleroy Circus
+ <br />
+ London
+ </td>
+ <td align="left">
+ (171) 555-1212
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ CACTU
+ </td>
+ <td align="left">
+ Cactus Comidas para llevar
+ </td>
+ <td align="left">
+ Patricio Simpson
+ </td>
+ <td align="left">
+ Cerrito 333
+ <br />
+ Buenos Aires
+ </td>
+ <td align="left">
+ (1) 135-5555
+ </td>
+ </tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/open-block-test-docbook.xml b/tests/data/open-block-test-docbook.xml
index d63db09..6b6a991 100644
--- a/tests/data/open-block-test-docbook.xml
+++ b/tests/data/open-block-test-docbook.xml
@@ -1,96 +1,96 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Additional Open Block and Paragraph styles</title>
-</articleinfo>
-<informalexample>
-<simpara>Lorum ipsum&#8230;</simpara>
-</informalexample>
-<informalexample>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</informalexample>
-<sidebar>
-<simpara>Lorum ipsum&#8230;</simpara>
-</sidebar>
-<sidebar>
-<title>A title</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</sidebar>
-<note>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</note>
-<caution>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</caution>
-<important>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</important>
-<warning>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</warning>
-<tip>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</tip>
-<blockquote>
-<attribution>
-Sir Arthur Conan Doyle
-<citetitle>The Adventures of Sherlock Holmes</citetitle>
-</attribution>
-<simpara>As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.</simpara>
-<simpara>"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There&#8217;s money in
-this case, Watson, if there is nothing else."</simpara>
-</blockquote>
-<blockquote>
-<attribution>
-William Blake
-<citetitle>from Auguries of Innocence</citetitle>
-</attribution>
-<literallayout>To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</literallayout>
-</blockquote>
-<programlisting language="python" linenumbering="unnumbered">y = 15
-
-if y == 24:
- x = 42</programlisting>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__1.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__1.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__2.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__3.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__3.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Additional Open Block and Paragraph styles</title>
+</articleinfo>
+<informalexample>
+<simpara>Lorum ipsum&#8230;</simpara>
+</informalexample>
+<informalexample>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</informalexample>
+<sidebar>
+<simpara>Lorum ipsum&#8230;</simpara>
+</sidebar>
+<sidebar>
+<title>A title</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</sidebar>
+<note>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</note>
+<caution>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</caution>
+<important>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</important>
+<warning>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</warning>
+<tip>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</tip>
+<blockquote>
+<attribution>
+Sir Arthur Conan Doyle
+<citetitle>The Adventures of Sherlock Holmes</citetitle>
+</attribution>
+<simpara>As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.</simpara>
+<simpara>"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There&#8217;s money in
+this case, Watson, if there is nothing else."</simpara>
+</blockquote>
+<blockquote>
+<attribution>
+William Blake
+<citetitle>from Auguries of Innocence</citetitle>
+</attribution>
+<literallayout>To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</literallayout>
+</blockquote>
+<programlisting language="python" linenumbering="unnumbered">y = 15
+
+if y == 24:
+ x = 42</programlisting>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__1.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__1.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__2.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__3.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__3.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+</article>
diff --git a/tests/data/open-block-test-docbook5.xml b/tests/data/open-block-test-docbook5.xml
index 45987b7..4832fae 100644
--- a/tests/data/open-block-test-docbook5.xml
+++ b/tests/data/open-block-test-docbook5.xml
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Additional Open Block and Paragraph styles</title>
-</info>
-<informalexample>
-<simpara>Lorum ipsum&#8230;</simpara>
-</informalexample>
-<informalexample>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</informalexample>
-<sidebar>
-<simpara>Lorum ipsum&#8230;</simpara>
-</sidebar>
-<sidebar>
-<title>A title</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</sidebar>
-<note>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</note>
-<caution>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</caution>
-<important>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</important>
-<warning>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</warning>
-<tip>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</tip>
-<blockquote>
-<attribution>
-Sir Arthur Conan Doyle
-<citetitle>The Adventures of Sherlock Holmes</citetitle>
-</attribution>
-<simpara>As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.</simpara>
-<simpara>"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There&#8217;s money in
-this case, Watson, if there is nothing else."</simpara>
-</blockquote>
-<blockquote>
-<attribution>
-William Blake
-<citetitle>from Auguries of Innocence</citetitle>
-</attribution>
-<literallayout>To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</literallayout>
-</blockquote>
-<programlisting language="python" linenumbering="unnumbered">y = 15
-
-if y == 24:
- x = 42</programlisting>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__1.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__1.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__2.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="open-block-test__3.png"/>
- </imageobject>
- <textobject><phrase>open-block-test__3.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Additional Open Block and Paragraph styles</title>
+</info>
+<informalexample>
+<simpara>Lorum ipsum&#8230;</simpara>
+</informalexample>
+<informalexample>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</informalexample>
+<sidebar>
+<simpara>Lorum ipsum&#8230;</simpara>
+</sidebar>
+<sidebar>
+<title>A title</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</sidebar>
+<note>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</note>
+<caution>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</caution>
+<important>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</important>
+<warning>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</warning>
+<tip>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</tip>
+<blockquote>
+<attribution>
+Sir Arthur Conan Doyle
+<citetitle>The Adventures of Sherlock Holmes</citetitle>
+</attribution>
+<simpara>As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.</simpara>
+<simpara>"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There&#8217;s money in
+this case, Watson, if there is nothing else."</simpara>
+</blockquote>
+<blockquote>
+<attribution>
+William Blake
+<citetitle>from Auguries of Innocence</citetitle>
+</attribution>
+<literallayout>To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</literallayout>
+</blockquote>
+<programlisting language="python" linenumbering="unnumbered">y = 15
+
+if y == 24:
+ x = 42</programlisting>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__1.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__1.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__2.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="open-block-test__3.png"/>
+ </imageobject>
+ <textobject><phrase>open-block-test__3.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+</article>
diff --git a/tests/data/open-block-test-html4.html b/tests/data/open-block-test-html4.html
index 09928ca..d3904bf 100644
--- a/tests/data/open-block-test-html4.html
+++ b/tests/data/open-block-test-html4.html
@@ -1,120 +1,120 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Additional Open Block and Paragraph styles</title>
-</head>
-<body>
-<h1>Additional Open Block and Paragraph styles</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">Lorum ipsum&#8230;</td></tr></table>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
-<tr><td>Lorum ipsum&#8230;</td></tr></table>
-<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
-<tr><td>
-<p><em>A title</em></p>
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-</td></tr></table>
-<blockquote>
-<p>As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.</p>
-<p>"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There&#8217;s money in
-this case, Watson, if there is nothing else."</p>
-<p align="right">
-<em>The Adventures of Sherlock Holmes</em><br>
-&#8212; Sir Arthur Conan Doyle
-</p>
-</blockquote>
-<blockquote>
-<pre style="font-family: inherit;">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<p align="left">
-<em>from Auguries of Innocence</em><br>
-&#8212; William Blake
-</p>
-</blockquote>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt>y <font color="#990000">=</font> <font color="#993399">15</font>
-
-<b><font color="#0000FF">if</font></b> y <font color="#990000">==</font> <font color="#993399">24</font><font color="#990000">:</font>
- x <font color="#990000">=</font> <font color="#993399">42</font></tt></pre></td></tr></table>
-<div>
-<img src="open-block-test__1.png" style="border-width: 0;" alt="open-block-test__1.png">
-</div>
-<div>
-<img src="open-block-test__2.png" style="border-width: 0;" alt="open-block-test__2.png">
-</div>
-<div>
-<img src="open-block-test__3.png" style="border-width: 0;" alt="open-block-test__3.png">
-</div>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Additional Open Block and Paragraph styles</title>
+</head>
+<body>
+<h1>Additional Open Block and Paragraph styles</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">Lorum ipsum&#8230;</td></tr></table>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
+<tr><td>Lorum ipsum&#8230;</td></tr></table>
+<table frame="border" bgcolor="#ffffee" width="100%" cellpadding="4">
+<tr><td>
+<p><em>A title</em></p>
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+</td></tr></table>
+<blockquote>
+<p>As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.</p>
+<p>"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There&#8217;s money in
+this case, Watson, if there is nothing else."</p>
+<p align="right">
+<em>The Adventures of Sherlock Holmes</em><br>
+&#8212; Sir Arthur Conan Doyle
+</p>
+</blockquote>
+<blockquote>
+<pre style="font-family: inherit;">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<p align="left">
+<em>from Auguries of Innocence</em><br>
+&#8212; William Blake
+</p>
+</blockquote>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>y <font color="#990000">=</font> <font color="#993399">15</font>
+
+<b><font color="#0000FF">if</font></b> y <font color="#990000">==</font> <font color="#993399">24</font><font color="#990000">:</font>
+ x <font color="#990000">=</font> <font color="#993399">42</font></tt></pre></td></tr></table>
+<div>
+<img src="open-block-test__1.png" style="border-width: 0;" alt="open-block-test__1.png">
+</div>
+<div>
+<img src="open-block-test__2.png" style="border-width: 0;" alt="open-block-test__2.png">
+</div>
+<div>
+<img src="open-block-test__3.png" style="border-width: 0;" alt="open-block-test__3.png">
+</div>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/open-block-test-html5.html b/tests/data/open-block-test-html5.html
index e52fb5f..a5f6324 100644
--- a/tests/data/open-block-test-html5.html
+++ b/tests/data/open-block-test-html5.html
@@ -1,868 +1,868 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Additional Open Block and Paragraph styles</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Additional Open Block and Paragraph styles</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="exampleblock">
-<div class="content">Lorum ipsum&#8230;</div></div>
-<div class="exampleblock">
-<div class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div></div>
-<div class="sidebarblock">
-<div class="content">Lorum ipsum&#8230;</div></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">A title</div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.</p></div>
-<div class="paragraph"><p>"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There&#8217;s money in
-this case, Watson, if there is nothing else."</p></div>
-</div>
-<div class="attribution">
-<em>The Adventures of Sherlock Holmes</em><br>
-&#8212; Sir Arthur Conan Doyle
-</div></div>
-<div class="verseblock">
-<pre class="content">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<div class="attribution">
-<em>from Auguries of Innocence</em><br>
-&#8212; William Blake
-</div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt>y <span style="color: #990000">=</span> <span style="color: #993399">15</span>
-
-<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> y <span style="color: #990000">==</span> <span style="color: #993399">24</span><span style="color: #990000">:</span>
- x <span style="color: #990000">=</span> <span style="color: #993399">42</span></tt></pre></div></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="open-block-test__1.png" alt="open-block-test__1.png">
-</div>
-</div>
-<div class="imageblock graphviz">
-<div class="content">
-<img src="open-block-test__2.png" alt="open-block-test__2.png">
-</div>
-</div>
-<div class="imageblock music">
-<div class="content">
-<img src="open-block-test__3.png" alt="open-block-test__3.png">
-</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Additional Open Block and Paragraph styles</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Additional Open Block and Paragraph styles</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="exampleblock">
+<div class="content">Lorum ipsum&#8230;</div></div>
+<div class="exampleblock">
+<div class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div></div>
+<div class="sidebarblock">
+<div class="content">Lorum ipsum&#8230;</div></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">A title</div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.</p></div>
+<div class="paragraph"><p>"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There&#8217;s money in
+this case, Watson, if there is nothing else."</p></div>
+</div>
+<div class="attribution">
+<em>The Adventures of Sherlock Holmes</em><br>
+&#8212; Sir Arthur Conan Doyle
+</div></div>
+<div class="verseblock">
+<pre class="content">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<div class="attribution">
+<em>from Auguries of Innocence</em><br>
+&#8212; William Blake
+</div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>y <span style="color: #990000">=</span> <span style="color: #993399">15</span>
+
+<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> y <span style="color: #990000">==</span> <span style="color: #993399">24</span><span style="color: #990000">:</span>
+ x <span style="color: #990000">=</span> <span style="color: #993399">42</span></tt></pre></div></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="open-block-test__1.png" alt="open-block-test__1.png">
+</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="open-block-test__2.png" alt="open-block-test__2.png">
+</div>
+</div>
+<div class="imageblock music">
+<div class="content">
+<img src="open-block-test__3.png" alt="open-block-test__3.png">
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/open-block-test-xhtml11.html b/tests/data/open-block-test-xhtml11.html
index 07912a0..cc76ec9 100644
--- a/tests/data/open-block-test-xhtml11.html
+++ b/tests/data/open-block-test-xhtml11.html
@@ -1,870 +1,870 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Additional Open Block and Paragraph styles</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Additional Open Block and Paragraph styles</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="exampleblock">
-<div class="content">Lorum ipsum&#8230;</div></div>
-<div class="exampleblock">
-<div class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div></div>
-<div class="sidebarblock">
-<div class="content">Lorum ipsum&#8230;</div></div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">A title</div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</td>
-</tr></table>
-</div>
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.</p></div>
-<div class="paragraph"><p>"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There&#8217;s money in
-this case, Watson, if there is nothing else."</p></div>
-</div>
-<div class="attribution">
-<em>The Adventures of Sherlock Holmes</em><br />
-&#8212; Sir Arthur Conan Doyle
-</div></div>
-<div class="verseblock">
-<pre class="content">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<div class="attribution">
-<em>from Auguries of Innocence</em><br />
-&#8212; William Blake
-</div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt>y <span style="color: #990000">=</span> <span style="color: #993399">15</span>
-
-<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> y <span style="color: #990000">==</span> <span style="color: #993399">24</span><span style="color: #990000">:</span>
- x <span style="color: #990000">=</span> <span style="color: #993399">42</span></tt></pre></div></div>
-<div class="imageblock latex">
-<div class="content">
-<img src="open-block-test__1.png" alt="open-block-test__1.png" />
-</div>
-</div>
-<div class="imageblock graphviz">
-<div class="content">
-<img src="open-block-test__2.png" alt="open-block-test__2.png" />
-</div>
-</div>
-<div class="imageblock music">
-<div class="content">
-<img src="open-block-test__3.png" alt="open-block-test__3.png" />
-</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Additional Open Block and Paragraph styles</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Additional Open Block and Paragraph styles</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="exampleblock">
+<div class="content">Lorum ipsum&#8230;</div></div>
+<div class="exampleblock">
+<div class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div></div>
+<div class="sidebarblock">
+<div class="content">Lorum ipsum&#8230;</div></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">A title</div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</td>
+</tr></table>
+</div>
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.</p></div>
+<div class="paragraph"><p>"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There&#8217;s money in
+this case, Watson, if there is nothing else."</p></div>
+</div>
+<div class="attribution">
+<em>The Adventures of Sherlock Holmes</em><br />
+&#8212; Sir Arthur Conan Doyle
+</div></div>
+<div class="verseblock">
+<pre class="content">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<div class="attribution">
+<em>from Auguries of Innocence</em><br />
+&#8212; William Blake
+</div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>y <span style="color: #990000">=</span> <span style="color: #993399">15</span>
+
+<span style="font-weight: bold"><span style="color: #0000FF">if</span></span> y <span style="color: #990000">==</span> <span style="color: #993399">24</span><span style="color: #990000">:</span>
+ x <span style="color: #990000">=</span> <span style="color: #993399">42</span></tt></pre></div></div>
+<div class="imageblock latex">
+<div class="content">
+<img src="open-block-test__1.png" alt="open-block-test__1.png" />
+</div>
+</div>
+<div class="imageblock graphviz">
+<div class="content">
+<img src="open-block-test__2.png" alt="open-block-test__2.png" />
+</div>
+</div>
+<div class="imageblock music">
+<div class="content">
+<img src="open-block-test__3.png" alt="open-block-test__3.png" />
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/rcs-id-marker-test-docbook.xml b/tests/data/rcs-id-marker-test-docbook.xml
index d59d112..d46930d 100644
--- a/tests/data/rcs-id-marker-test-docbook.xml
+++ b/tests/data/rcs-id-marker-test-docbook.xml
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>RCS $Id$ Marker Test</title>
- <date>2009/05/17</date>
- <author>
- <firstname>jbloggs</firstname>
- </author>
- <authorinitials>J</authorinitials>
-<revhistory><revision><revnumber>1.5</revnumber><date>2009/05/17</date><authorinitials>J</authorinitials></revision></revhistory>
-</articleinfo>
-<simpara>Lorum ipsum&#8230;</simpara>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>RCS $Id$ Marker Test</title>
+ <date>2009/05/17</date>
+ <author>
+ <firstname>jbloggs</firstname>
+ </author>
+ <authorinitials>J</authorinitials>
+<revhistory><revision><revnumber>1.5</revnumber><date>2009/05/17</date><authorinitials>J</authorinitials></revision></revhistory>
+</articleinfo>
+<simpara>Lorum ipsum&#8230;</simpara>
+</article>
diff --git a/tests/data/rcs-id-marker-test-docbook5.xml b/tests/data/rcs-id-marker-test-docbook5.xml
index 9e974b2..b450cd3 100644
--- a/tests/data/rcs-id-marker-test-docbook5.xml
+++ b/tests/data/rcs-id-marker-test-docbook5.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>RCS $Id$ Marker Test</title>
- <date>2009/05/17</date>
- <author>
- <personname>
- <firstname>jbloggs</firstname>
- </personname>
- </author>
- <authorinitials>J</authorinitials>
- <revhistory><revision><revnumber>1.5</revnumber><date>2009/05/17</date><authorinitials>J</authorinitials></revision></revhistory>
-</info>
-<simpara>Lorum ipsum&#8230;</simpara>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>RCS $Id$ Marker Test</title>
+ <date>2009/05/17</date>
+ <author>
+ <personname>
+ <firstname>jbloggs</firstname>
+ </personname>
+ </author>
+ <authorinitials>J</authorinitials>
+ <revhistory><revision><revnumber>1.5</revnumber><date>2009/05/17</date><authorinitials>J</authorinitials></revision></revhistory>
+</info>
+<simpara>Lorum ipsum&#8230;</simpara>
+</article>
diff --git a/tests/data/rcs-id-marker-test-html4.html b/tests/data/rcs-id-marker-test-html4.html
index e897c1c..5ecb34f 100644
--- a/tests/data/rcs-id-marker-test-html4.html
+++ b/tests/data/rcs-id-marker-test-html4.html
@@ -1,25 +1,25 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>RCS $Id$ Marker Test</title>
-</head>
-<body>
-<h1>RCS $Id$ Marker Test</h1>
-<p>
-<strong>jbloggs</strong><br>
-version 1.5,
-2009/05/17
-</p>
-<a name="preamble"></a>
-<p>Lorum ipsum&#8230;</p>
-<p></p>
-<p></p>
-<hr><p><small>
-Version 1.5<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>RCS $Id$ Marker Test</title>
+</head>
+<body>
+<h1>RCS $Id$ Marker Test</h1>
+<p>
+<strong>jbloggs</strong><br>
+version 1.5,
+2009/05/17
+</p>
+<a name="preamble"></a>
+<p>Lorum ipsum&#8230;</p>
+<p></p>
+<p></p>
+<hr><p><small>
+Version 1.5<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/rcs-id-marker-test-html5.html b/tests/data/rcs-id-marker-test-html5.html
index 7f86fa5..7d95602 100644
--- a/tests/data/rcs-id-marker-test-html5.html
+++ b/tests/data/rcs-id-marker-test-html5.html
@@ -1,756 +1,756 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>RCS $Id$ Marker Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>RCS $Id$ Marker Test</h1>
-<span id="author">jbloggs</span><br>
-<span id="revnumber">version 1.5,</span>
-<span id="revdate">2009/05/17</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.5<br>
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>RCS $Id$ Marker Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>RCS $Id$ Marker Test</h1>
+<span id="author">jbloggs</span><br>
+<span id="revnumber">version 1.5,</span>
+<span id="revdate">2009/05/17</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.5<br>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/rcs-id-marker-test-xhtml11.html b/tests/data/rcs-id-marker-test-xhtml11.html
index cceac93..401e0a6 100644
--- a/tests/data/rcs-id-marker-test-xhtml11.html
+++ b/tests/data/rcs-id-marker-test-xhtml11.html
@@ -1,758 +1,758 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>RCS $Id$ Marker Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>RCS $Id$ Marker Test</h1>
-<span id="author">jbloggs</span><br />
-<span id="revnumber">version 1.5,</span>
-<span id="revdate">2009/05/17</span>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Version 1.5<br />
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>RCS $Id$ Marker Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>RCS $Id$ Marker Test</h1>
+<span id="author">jbloggs</span><br />
+<span id="revnumber">version 1.5,</span>
+<span id="revdate">2009/05/17</span>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Version 1.5<br />
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/slidy-example-slidy.html b/tests/data/slidy-example-slidy.html
index 6aacf76..63042e6 100644
--- a/tests/data/slidy-example-slidy.html
+++ b/tests/data/slidy-example-slidy.html
@@ -1,4511 +1,4511 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
-<title>Slidy Example Slideshow</title>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="copyright" content="Copyright &#169; Foobar Inc." />
-<meta name="generator" content="AsciiDoc test" />
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-/* slidy.css
-
- Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
- W3C liability, trademark, document use and software licensing
- rules apply, see:
-
- http://www.w3.org/Consortium/Legal/copyright-documents
- http://www.w3.org/Consortium/Legal/copyright-software
-*/
-
-/*
- SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
- Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
-*/
-
-body
-{
- margin: 0 0 0 0;
- padding: 0 0 0 0;
- width: 100%;
- height: 100%;
- color: black;
- background-color: white;
-/*
- font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
-*/
- font-size: 14pt;
-}
-
-div.toolbar {
- position: fixed; z-index: 200;
- top: auto; bottom: 0; left: 0; right: 0;
- height: 1.2em; text-align: right;
- padding-left: 1em;
- padding-right: 1em;
- font-size: 60%;
- color: red;
- background-color: rgb(240,240,240);
- border-top: solid 1px rgb(180,180,180);
-}
-
-div.toolbar span.copyright {
- color: black;
- margin-left: 0.5em;
-}
-
-div.initial_prompt {
- position: absolute;
- z-index: 1000;
- bottom: 1.2em;
- width: 90%;
- background-color: rgb(200,200,200);
- opacity: 0.35;
- background-color: rgb(200,200,200, 0.35);
- cursor: pointer;
-}
-
-div.initial_prompt p.help {
- text-align: center;
-}
-
-div.initial_prompt p.close {
- text-align: right;
- font-style: italic;
-}
-
-div.slidy_toc {
- position: absolute;
- z-index: 300;
- width: 60%;
- max-width: 30em;
- height: 30em;
- overflow: auto;
- top: auto;
- right: auto;
- left: 4em;
- bottom: 4em;
- padding: 1em;
- background: rgb(240,240,240);
- border-style: solid;
- border-width: 2px;
- font-size: 60%;
-}
-
-div.slidy_toc .toc_heading {
- text-align: center;
- width: 100%;
- margin: 0;
- margin-bottom: 1em;
- border-bottom-style: solid;
- border-bottom-color: rgb(180,180,180);
- border-bottom-width: 1px;
-}
-
-div.slide {
- z-index: 20;
- margin: 0 0 0 0;
- padding-top: 0;
- padding-bottom: 0;
- padding-left: 20px;
- padding-right: 20px;
- border-width: 0;
- clear: both;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- line-height: 120%;
- background-color: transparent;
-}
-
-div.background {
- display: none;
-}
-
-div.handout {
- margin-left: 20px;
- margin-right: 20px;
-}
-
-div.slide.titlepage {
- text-align: center;
-}
-
-div.slide.titlepage.h1 {
- padding-top: 10%;
-}
-
-div.slide h1 {
- padding-left: 0;
- padding-right: 20pt;
- padding-top: 4pt;
- padding-bottom: 4pt;
- margin-top: 0;
- margin-left: 0;
- margin-right: 60pt;
- margin-bottom: 0.5em;
- display: block;
- font-size: 160%;
- line-height: 1.2em;
- background: transparent;
-}
-
-div.toc {
- position: absolute;
- top: auto;
- bottom: 4em;
- left: 4em;
- right: auto;
- width: 60%;
- max-width: 30em;
- height: 30em;
- border: solid thin black;
- padding: 1em;
- background: rgb(240,240,240);
- color: black;
- z-index: 300;
- overflow: auto;
- display: block;
- visibility: visible;
-}
-
-div.toc-heading {
- width: 100%;
- border-bottom: solid 1px rgb(180,180,180);
- margin-bottom: 1em;
- text-align: center;
-}
-
-/*
-pre {
- font-size: 80%;
- font-weight: bold;
- line-height: 120%;
- padding-top: 0.2em;
- padding-bottom: 0.2em;
- padding-left: 1em;
- padding-right: 1em;
- border-style: solid;
- border-left-width: 1em;
- border-top-width: thin;
- border-right-width: thin;
- border-bottom-width: thin;
- border-color: #95ABD0;
- color: #00428C;
- background-color: #E4E5E7;
-}
-*/
-
-/*
-li pre { margin-left: 0; }
-
-blockquote { font-style: italic }
-
-img { background-color: transparent }
-
-p.copyright { font-size: smaller }
-*/
-
-.center { text-align: center }
-.footnote { font-size: smaller; margin-left: 2em; }
-
-/*
-a img { border-width: 0; border-style: none }
-*/
-
-a:visited { color: navy }
-a:link { color: navy }
-a:hover { color: red; text-decoration: underline }
-a:active { color: red; text-decoration: underline }
-
-a {text-decoration: none}
-.navbar a:link {color: white}
-.navbar a:visited {color: yellow}
-.navbar a:active {color: red}
-.navbar a:hover {color: red}
-
-/*
-ul { list-style-type: square; }
-ul ul { list-style-type: disc; }
-ul ul ul { list-style-type: circle; }
-ul ul ul ul { list-style-type: disc; }
-li { margin-left: 0.5em; margin-top: 0.5em; }
-li li { font-size: 85%; font-style: italic }
-li li li { font-size: 85%; font-style: normal }
-*/
-
-div dt
-{
- margin-left: 0;
- margin-top: 1em;
- margin-bottom: 0.5em;
- font-weight: bold;
-}
-div dd
-{
- margin-left: 2em;
- margin-bottom: 0.5em;
-}
-
-
-/*
-p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
- margin-left: 1em;
- margin-right: 1em;
-}
-*/
-
-p.subhead { font-weight: bold; margin-top: 2em; }
-
-.smaller { font-size: smaller }
-.bigger { font-size: 130% }
-
-/*
-td,th { padding: 0.2em }
-*/
-
-ul {
- margin: 0.5em 1.5em 0.5em 1.5em;
- padding: 0;
-}
-
-ol {
- margin: 0.5em 1.5em 0.5em 1.5em;
- padding: 0;
-}
-
-ul { list-style-type: square; }
-ul ul { list-style-type: disc; }
-ul ul ul { list-style-type: circle; }
-ul ul ul ul { list-style-type: disc; }
-
-/*
-ul li {
- list-style: square;
- margin: 0.1em 0em 0.6em 0;
- padding: 0 0 0 0;
- line-height: 140%;
-}
-
-ol li {
- margin: 0.1em 0em 0.6em 1.5em;
- padding: 0 0 0 0px;
- line-height: 140%;
- list-style-type: decimal;
-}
-
-li ul li {
- font-size: 85%;
- font-style: italic;
- list-style-type: disc;
- background: transparent;
- padding: 0 0 0 0;
-}
-li li ul li {
- font-size: 85%;
- font-style: normal;
- list-style-type: circle;
- background: transparent;
- padding: 0 0 0 0;
-}
-li li li ul li {
- list-style-type: disc;
- background: transparent;
- padding: 0 0 0 0;
-}
-
-li ol li {
- list-style-type: decimal;
-}
-
-
-li li ol li {
- list-style-type: decimal;
-}
-*/
-
-/*
- setting class="outline" on ol or ul makes it behave as an
- ouline list where blocklevel content in li elements is
- hidden by default and can be expanded or collapsed with
- mouse click. Set class="expand" on li to override default
-*/
-
-ol.outline li:hover { cursor: pointer }
-ol.outline li.nofold:hover { cursor: default }
-
-ul.outline li:hover { cursor: pointer }
-ul.outline li.nofold:hover { cursor: default }
-
-ol.outline { list-style:decimal; }
-ol.outline ol { list-style-type:lower-alpha }
-
-ol.outline li.nofold {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
-}
-ol.outline li.unfolded {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
-}
-ol.outline li.folded {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
-}
-ol.outline li.unfolded:hover {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
-}
-ol.outline li.folded:hover {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
-}
-
-ul.outline li.nofold {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
-}
-ul.outline li.unfolded {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
-}
-ul.outline li.folded {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
-}
-ul.outline li.unfolded:hover {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
-}
-ul.outline li.folded:hover {
- padding: 0 0 0 20px;
- background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
-}
-
-/* for slides with class "title" in table of contents */
-a.titleslide { font-weight: bold; font-style: italic }
-
-/*
- hide images for work around for save as bug
- where browsers fail to save images used by CSS
-*/
-img.hidden { display: none; visibility: hidden }
-div.initial_prompt { display: none; visibility: hidden }
-
- div.slide {
- visibility: visible;
- position: inherit;
- }
- div.handout {
- border-top-style: solid;
- border-top-width: thin;
- border-top-color: black;
- }
-
-@media screen {
- .hidden { display: none; visibility: visible }
-
- div.slide.hidden { display: block; visibility: visible }
- div.handout.hidden { display: block; visibility: visible }
- div.background { display: none; visibility: hidden }
- body.single_slide div.initial_prompt { display: block; visibility: visible }
- body.single_slide div.background { display: block; visibility: visible }
- body.single_slide div.background.hidden { display: none; visibility: hidden }
- body.single_slide .invisible { visibility: hidden }
- body.single_slide .hidden { display: none; visibility: hidden }
- body.single_slide div.slide { position: absolute }
- body.single_slide div.handout { display: none; visibility: hidden }
-}
-
-@media print {
- .hidden { display: block; visibility: visible }
-
-/*
- div.slide pre { font-size: 60%; padding-left: 0.5em; }
-*/
- div.toolbar { display: none; visibility: hidden; }
- div.slidy_toc { display: none; visibility: hidden; }
- div.background { display: none; visibility: hidden; }
- div.slide { page-break-before: always }
- /* :first-child isn't reliable for print media */
- div.slide.first-slide { page-break-before: avoid }
-}
-
-
-/* SJR: AsciiDoc slidy backend tweaks */
-
-ol, ul {
- margin: 0.8em 1.5em 0.8em 1.8em;
-}
-li > ul, li > ol {
- margin-top: 0.5em;
-}
-
-.outline > li.folded,
-.outline > li.unfolded {
- color: #527bbd;
-}
-ul > li{ color: #aaa; }
-ul > li > *, ol > li > * { color: black; }
-
-li {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-/* slidy.js
-
- Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
- W3C liability, trademark, document use and software licensing
- rules apply, see:
-
- http://www.w3.org/Consortium/Legal/copyright-documents
- http://www.w3.org/Consortium/Legal/copyright-software
-*/
-
-// the slidy object implementation
-var w3c_slidy = {
- // classify which kind of browser we're running under
- ns_pos: (typeof window.pageYOffset!='undefined'),
- khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
- opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
- ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
- iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
- ie: (typeof document.all != "undefined" && !this.opera),
- ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
- ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
- ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
- ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
- keyboardless: (this.ipad || this.iphone),
-
- // are we running as XHTML? (doesn't work on Opera)
- is_xhtml: /xml/.test(document.contentType),
-
- slide_number: 0, // integer slide count: 0, 1, 2, ...
- slide_number_element: null, // element containing slide number
- slides: [], // set to array of slide div's
- notes: [], // set to array of handout div's
- backgrounds: [], // set to array of background div's
- toolbar: null, // element containing toolbar
- title: null, // document title
- last_shown: null, // last incrementally shown item
- eos: null, // span element for end of slide indicator
- toc: null, // table of contents
- outline: null, // outline element with the focus
- selected_text_len: 0, // length of drag selection on document
- view_all: 0, // 1 to view all slides + handouts
- want_toolbar: true, // user preference to show/hide toolbar
- mouse_click_enabled: true, // enables left click for next slide
- scroll_hack: 0, // IE work around for position: fixed
- disable_slide_click: false, // used by clicked anchors
-
- lang: "en", // updated to language specified by html file
-
- help_anchor: null, // used for keyboard focus hack in showToolbar()
- help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
- help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
- "or Pg Up and Pg Dn. Use S and B to change font size.",
-
- size_index: 0,
- size_adjustment: 0,
- sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
- "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
-
- // needed for efficient resizing
- last_width: 0,
- last_height: 0,
-
-
- // Needed for cross browser support for relative width/height on
- // object elements. The work around is to save width/height attributes
- // and then to recompute absolute width/height dimensions on resizing
- objects: [],
-
- // attach initialiation event handlers
- set_up: function () {
- var init = function() { w3c_slidy.init(); };
- if (typeof window.addEventListener != "undefined")
- window.addEventListener("load", init, false);
- else
- window.attachEvent("onload", init);
- },
-
- hide_slides: function () {
- if (document.body && !w3c_slidy.initialized)
- document.body.style.visibility = "hidden";
- else
- setTimeout(w3c_slidy.hide_slides, 50);
- },
-
- // hack to persuade IE to compute correct document height
- // as needed for simulating fixed positioning of toolbar
- ie_hack: function () {
- window.resizeBy(0,-1);
- window.resizeBy(0, 1);
- },
-
- init: function () {
- //alert("slidy starting test 10");
- document.body.style.visibility = "visible";
- w3c_slidy_i18n.init();
- this.add_toolbar();
- this.wrap_implicit_slides();
- this.collect_slides();
- this.collect_notes();
- this.collect_backgrounds();
- this.objects = document.body.getElementsByTagName("object");
- this.patch_anchors();
- this.slide_number = this.find_slide_number(location.href);
- window.offscreenbuffering = true;
- this.size_adjustment = this.find_size_adjust();
- this.time_left = this.find_duration();
- this.hide_image_toolbar(); // suppress IE image toolbar popup
- this.init_outliner(); // activate fold/unfold support
- this.title = document.title;
-
- // work around for opera bug
- this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
-
- if (this.slides.length > 0)
- {
- var slide = this.slides[this.slide_number];
-
- if (this.slide_number > 0)
- {
- this.set_visibility_all_incremental("visible");
- this.last_shown = this.previous_incremental_item(null);
- this.set_eos_status(true);
- }
- else
- {
- this.last_shown = null;
- this.set_visibility_all_incremental("hidden");
- this.set_eos_status(!this.next_incremental_item(this.last_shown));
- }
-
- this.set_location();
- this.add_class(this.slides[0], "first-slide");
- w3c_slidy.show_slide(slide);
- }
-
- this.toc = this.table_of_contents();
-
- this.add_initial_prompt();
-
- // bind event handlers without interfering with custom page scripts
- // Tap events behave too weirdly to support clicks reliably on
- // iPhone and iPad, so exclude these from click handler
-
- if (!this.keyboardless)
- this.add_listener(document.body, "click", this.mouse_button_click);
-
- this.add_listener(document, "keydown", this.key_down);
- this.add_listener(document, "keypress", this.key_press);
- this.add_listener(window, "resize", this.resized);
- this.add_listener(window, "scroll", this.scrolled);
- this.add_listener(window, "unload", this.unloaded);
-
- if (!document.body.onclick)
- document.body.onclick = function () { };
-
- this.single_slide_view();
-
- //this.set_location();
-
- this.resized();
-
- if (this.ie7)
- setTimeout(w3c_slidy.ie_hack, 100);
-
- this.show_toolbar();
-
- // for back button detection
- setInterval(function () { w3c_slidy.check_location(); }, 200);
- w3c_slidy.initialized = true;
- },
-
- // create div element with links to each slide
- table_of_contents: function () {
- var toc = this.create_element("div");
- this.add_class(toc, "slidy_toc hidden");
- //toc.setAttribute("tabindex", "0");
-
- var heading = this.create_element("div");
- this.add_class(heading, "toc-heading");
- heading.innerHTML = "Table of Contents".localize();
-
- toc.appendChild(heading);
- var previous = null;
-
- for (var i = 0; i < this.slides.length; ++i)
- {
- var title = this.has_class(this.slides[i], "title");
- var num = document.createTextNode((i + 1) + ". ");
-
- toc.appendChild(num);
-
- var a = this.create_element("a");
- a.setAttribute("href", "#(" + (i+1) + ")");
-
- if (title)
- this.add_class(a, "titleslide");
-
- var name = document.createTextNode(this.slide_name(i));
- a.appendChild(name);
- a.onclick = w3c_slidy.toc_click;
- a.onkeydown = w3c_slidy.toc_keydown;
- a.previous = previous;
-
- if (previous)
- previous.next = a;
-
- toc.appendChild(a);
-
- if (i == 0)
- toc.first = a;
-
- if (i < this.slides.length - 1)
- {
- var br = this.create_element("br");
- toc.appendChild(br);
- }
-
- previous = a;
- }
-
- toc.focus = function () {
- if (this.first)
- this.first.focus();
- }
-
- toc.onmouseup = w3c_slidy.mouse_button_up;
-
- toc.onclick = function (e) {
- e||(e=window.event);
-
- if (w3c_slidy.selected_text_len <= 0)
- w3c_slidy.hide_table_of_contents();
-
- w3c_slidy.stop_propagation(e);
-
- if (e.cancel != undefined)
- e.cancel = true;
-
- if (e.returnValue != undefined)
- e.returnValue = false;
-
- return false;
- };
-
- document.body.insertBefore(toc, document.body.firstChild);
- return toc;
- },
-
- is_shown_toc: function () {
- return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
- },
-
- show_table_of_contents: function () {
- w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
- var toc = w3c_slidy.toc;
- toc.focus();
-
- if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
- setTimeout(w3c_slidy.ie_hack, 100);
- },
-
- hide_table_of_contents: function () {
- w3c_slidy.add_class(w3c_slidy.toc, "hidden");
-
- if (!w3c_slidy.opera)
- w3c_slidy.help_anchor.focus();
- },
-
- toggle_table_of_contents: function () {
- if (w3c_slidy.is_shown_toc())
- w3c_slidy.hide_table_of_contents();
- else
- w3c_slidy.show_table_of_contents();
- },
-
- // called on clicking toc entry
- toc_click: function (e) {
- if (!e)
- e = window.event;
-
- var target = w3c_slidy.get_target(e);
-
- if (target && target.nodeType == 1)
- {
- var uri = target.getAttribute("href");
-
- if (uri)
- {
- //alert("going to " + uri);
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.last_shown = null;
- w3c_slidy.set_location();
- w3c_slidy.set_visibility_all_incremental("hidden");
- w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
- w3c_slidy.show_slide(slide);
- //target.focus();
-
- try
- {
- if (!w3c_slidy.opera)
- w3c_slidy.help_anchor.focus();
- }
- catch (e)
- {
- }
- }
- }
-
- w3c_slidy.hide_table_of_contents(e);
- if (w3c_slidy.ie7) w3c_slidy.ie_hack();
- w3c_slidy.stop_propagation(e);
- return w3c_slidy.cancel(e);
- },
-
- // called onkeydown for toc entry
- toc_keydown: function (event) {
- var key;
-
- if (!event)
- var event = window.event;
-
- // kludge around NS/IE differences
- if (window.event)
- key = window.event.keyCode;
- else if (event.which)
- key = event.which;
- else
- return true; // Yikes! unknown browser
-
- // ignore event if key value is zero
- // as for alt on Opera and Konqueror
- if (!key)
- return true;
-
- // check for concurrent control/command/alt key
- // but are these only present on mouse events?
-
- if (event.ctrlKey || event.altKey)
- return true;
-
- if (key == 13)
- {
- var uri = this.getAttribute("href");
-
- if (uri)
- {
- //alert("going to " + uri);
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.last_shown = null;
- w3c_slidy.set_location();
- w3c_slidy.set_visibility_all_incremental("hidden");
- w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
- w3c_slidy.show_slide(slide);
- //target.focus();
-
- try
- {
- if (!w3c_slidy.opera)
- w3c_slidy.help_anchor.focus();
- }
- catch (e)
- {
- }
- }
-
- w3c_slidy.hide_table_of_contents();
-
- if (self.ie7)
- w3c_slidy.ie_hack();
-
- return w3c_slidy.cancel(event);
- }
-
- if (key == 40 && this.next)
- {
- this.next.focus();
- return w3c_slidy.cancel(event);
- }
-
- if (key == 38 && this.previous)
- {
- this.previous.focus();
- return w3c_slidy.cancel(event);
- }
-
- return true;
- },
-
-
- // ### OBSOLETE ###
- before_print: function () {
- this.show_all_slides();
- this.hide_toolbar();
- alert("before print");
- },
-
- // ### OBSOLETE ###
- after_print: function () {
- if (!this.view_all)
- {
- this.single_slide_view();
- this.show_toolbar();
- }
- alert("after print");
- },
-
- // ### OBSOLETE ###
- print_slides: function () {
- this.before_print();
- window.print();
- this.after_print();
- },
-
- // ### OBSOLETE ?? ###
- toggle_view: function () {
- if (this.view_all)
- {
- this.single_slide_view();
- this.show_toolbar();
- this.view_all = 0;
- }
- else
- {
- this.show_all_slides();
- this.hide_toolbar();
- this.view_all = 1;
- }
- },
-
- // prepare for printing ### OBSOLETE ###
- show_all_slides: function () {
- this.remove_class(document.body, "single_slide");
- this.set_visibility_all_incremental("visible");
- },
-
- // restore after printing ### OBSOLETE ###
- single_slide_view: function () {
- this.add_class(document.body, "single_slide");
- this.set_visibility_all_incremental("visible");
- this.last_shown = this.previous_incremental_item(null);
- },
-
- // suppress IE's image toolbar pop up
- hide_image_toolbar: function () {
- if (!this.ns_pos)
- {
- var images = document.getElementsByTagName("IMG");
-
- for (var i = 0; i < images.length; ++i)
- images[i].setAttribute("galleryimg", "no");
- }
- },
-
- unloaded: function (e) {
- //alert("unloaded");
- },
-
- // Safari and Konqueror don't yet support getComputedStyle()
- // and they always reload page when location.href is updated
- is_KHTML: function () {
- var agent = navigator.userAgent;
- return (agent.indexOf("KHTML") >= 0 ? true : false);
- },
-
- // find slide name from first h1 element
- // default to document title + slide number
- slide_name: function (index) {
- var name = null;
- var slide = this.slides[index];
-
- var heading = this.find_heading(slide);
-
- if (heading)
- name = this.extract_text(heading);
-
- if (!name)
- name = this.title + "(" + (index + 1) + ")";
-
- name.replace(/\&/g, "&amp;");
- name.replace(/\</g, "&lt;");
- name.replace(/\>/g, "&gt;");
-
- return name;
- },
-
- // find first h1 element in DOM tree
- find_heading: function (node) {
- if (!node || node.nodeType != 1)
- return null;
-
- if (node.nodeName == "H1" || node.nodeName == "h1")
- return node;
-
- var child = node.firstChild;
-
- while (child)
- {
- node = this.find_heading(child);
-
- if (node)
- return node;
-
- child = child.nextSibling;
- }
-
- return null;
- },
-
- // recursively extract text from DOM tree
- extract_text: function (node) {
- if (!node)
- return "";
-
- // text nodes
- if (node.nodeType == 3)
- return node.nodeValue;
-
- // elements
- if (node.nodeType == 1)
- {
- node = node.firstChild;
- var text = "";
-
- while (node)
- {
- text = text + this.extract_text(node);
- node = node.nextSibling;
- }
-
- return text;
- }
-
- return "";
- },
-
- // find copyright text from meta element
- find_copyright: function () {
- var name, content;
- var meta = document.getElementsByTagName("meta");
-
- for (var i = 0; i < meta.length; ++i)
- {
- name = meta[i].getAttribute("name");
- content = meta[i].getAttribute("content");
-
- if (name == "copyright")
- return content;
- }
-
- return null;
- },
-
- find_size_adjust: function () {
- var name, content, offset;
- var meta = document.getElementsByTagName("meta");
-
- for (var i = 0; i < meta.length; ++i)
- {
- name = meta[i].getAttribute("name");
- content = meta[i].getAttribute("content");
-
- if (name == "font-size-adjustment")
- return 1 * content;
- }
-
- return 1;
- },
-
- // <meta name="duration" content="20" /> for 20 minutes
- find_duration: function () {
- var name, content, offset;
- var meta = document.getElementsByTagName("meta");
-
- for (var i = 0; i < meta.length; ++i)
- {
- name = meta[i].getAttribute("name");
- content = meta[i].getAttribute("content");
-
- if (name == "duration")
- return 60000 * content;
- }
-
- return null;
- },
-
- replace_by_non_breaking_space: function (str) {
- for (var i = 0; i < str.length; ++i)
- str[i] = 160;
- },
-
- // ### CHECK ME ### is use of "li" okay for text/html?
- // for XHTML do we also need to specify namespace?
- init_outliner: function () {
- var items = document.getElementsByTagName("li");
-
- for (var i = 0; i < items.length; ++i)
- {
- var target = items[i];
-
- if (!this.has_class(target.parentNode, "outline"))
- continue;
-
- target.onclick = this.outline_click;
-/* ### more work needed for IE6
- if (!this.ns_pos)
- {
- target.onmouseover = this.hover_outline;
- target.onmouseout = this.unhover_outline;
- }
-*/
- if (this.foldable(target))
- {
- target.foldable = true;
- target.onfocus = function () {w3c_slidy.outline = this;};
- target.onblur = function () {w3c_slidy.outline = null;};
-
- if (!target.getAttribute("tabindex"))
- target.setAttribute("tabindex", "0");
-
- if (this.has_class(target, "expand"))
- this.unfold(target);
- else
- this.fold(target);
- }
- else
- {
- this.add_class(target, "nofold");
- target.visible = true;
- target.foldable = false;
- }
- }
- },
-
- foldable: function (item) {
- if (!item || item.nodeType != 1)
- return false;
-
- var node = item.firstChild;
-
- while (node)
- {
- if (node.nodeType == 1 && this.is_block(node))
- return true;
-
- node = node.nextSibling;
- }
-
- return false;
- },
-
- // ### CHECK ME ### switch to add/remove "hidden" class
- fold: function (item) {
- if (item)
- {
- this.remove_class(item, "unfolded");
- this.add_class(item, "folded");
- }
-
- var node = item ? item.firstChild : null;
-
- while (node)
- {
- if (node.nodeType == 1 && this.is_block(node)) // element
- {
- w3c_slidy.add_class(node, "hidden");
- }
-
- node = node.nextSibling;
- }
-
- item.visible = false;
- },
-
- // ### CHECK ME ### switch to add/remove "hidden" class
- unfold: function (item) {
- if (item)
- {
- this.add_class(item, "unfolded");
- this.remove_class(item, "folded");
- }
-
- var node = item ? item.firstChild : null;
-
- while (node)
- {
- if (node.nodeType == 1 && this.is_block(node)) // element
- {
- w3c_slidy.remove_class(node, "hidden");
- }
-
- node = node.nextSibling;
- }
-
- item.visible = true;
- },
-
- outline_click: function (e) {
- if (!e)
- e = window.event;
-
- var rightclick = false;
- var target = w3c_slidy.get_target(e);
-
- while (target && target.visible == undefined)
- target = target.parentNode;
-
- if (!target)
- return true;
-
- if (e.which)
- rightclick = (e.which == 3);
- else if (e.button)
- rightclick = (e.button == 2);
-
- if (!rightclick && target.visible != undefined)
- {
- if (target.foldable)
- {
- if (target.visible)
- w3c_slidy.fold(target);
- else
- w3c_slidy.unfold(target);
- }
-
- w3c_slidy.stop_propagation(e);
- e.cancel = true;
- e.returnValue = false;
- }
-
- return false;
- },
-
- add_initial_prompt: function () {
- var prompt = this.create_element("div");
- prompt.setAttribute("class", "initial_prompt");
-
- var p1 = this.create_element("p");
- prompt.appendChild(p1);
- p1.setAttribute("class", "help");
-
- if (this.keyboardless)
- p1.innerHTML = "Tap footer to move to next slide";
- else
- p1.innerHTML = "Space or Right Arrow to move to next " +
- "slide, click help below for more details";
-
- this.add_listener(prompt, "click", function (e) {
- document.body.removeChild(prompt);
- w3c_slidy.stop_propagation(e);
-
- if (e.cancel != undefined)
- e.cancel = true;
-
- if (e.returnValue != undefined)
- e.returnValue = false;
-
- return false;
- });
-
- document.body.appendChild(prompt);
- this.initial_prompt = prompt;
- setTimeout(function() {document.body.removeChild(prompt);}, 5000);
- },
-
- add_toolbar: function () {
- var counter, page;
-
- this.toolbar = this.create_element("div");
- this.toolbar.setAttribute("class", "toolbar");
-
- // a reasonably behaved browser
- if (this.ns_pos || !this.ie6)
- {
- var right = this.create_element("div");
- right.setAttribute("style", "float: right; text-align: right");
-
- counter = this.create_element("span")
- counter.innerHTML = "slide".localize() + " n/m";
- right.appendChild(counter);
- this.toolbar.appendChild(right);
-
- var left = this.create_element("div");
- left.setAttribute("style", "text-align: left");
-
- // global end of slide indicator
- this.eos = this.create_element("span");
- this.eos.innerHTML = "* ";
- left.appendChild(this.eos);
-
- var help = this.create_element("a");
- help.setAttribute("href", this.help_page);
- help.setAttribute("title", this.help_text.localize());
- help.innerHTML = "help?".localize();
- left.appendChild(help);
- this.help_anchor = help; // save for focus hack
-
- var gap1 = document.createTextNode(" ");
- left.appendChild(gap1);
-
- var contents = this.create_element("a");
- contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
- contents.setAttribute("title", "table of contents".localize());
- contents.innerHTML = "contents?".localize();
- left.appendChild(contents);
-
- var gap2 = document.createTextNode(" ");
- left.appendChild(gap2);
-
- var copyright = this.find_copyright();
-
- if (copyright)
- {
- var span = this.create_element("span");
- span.className = "copyright";
- span.innerHTML = copyright;
- left.appendChild(span);
- }
-
- this.toolbar.setAttribute("tabindex", "0");
- this.toolbar.appendChild(left);
- }
- else // IE6 so need to work around its poor CSS support
- {
- this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
- this.toolbar.style.zIndex = "200";
- this.toolbar.style.width = "99.9%";
- this.toolbar.style.height = "1.2em";
- this.toolbar.style.top = "auto";
- this.toolbar.style.bottom = "0";
- this.toolbar.style.left = "0";
- this.toolbar.style.right = "0";
- this.toolbar.style.textAlign = "left";
- this.toolbar.style.fontSize = "60%";
- this.toolbar.style.color = "red";
- this.toolbar.borderWidth = 0;
- this.toolbar.className = "toolbar";
- this.toolbar.style.background = "rgb(240,240,240)";
-
- // would like to have help text left aligned
- // and page counter right aligned, floating
- // div's don't work, so instead use nested
- // absolutely positioned div's.
-
- var sp = this.create_element("span");
- sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
- this.toolbar.appendChild(sp);
- this.eos = sp; // end of slide indicator
-
- var help = this.create_element("a");
- help.setAttribute("href", this.help_page);
- help.setAttribute("title", this.help_text.localize());
- help.innerHTML = "help?".localize();
- this.toolbar.appendChild(help);
- this.help_anchor = help; // save for focus hack
-
- var gap1 = document.createTextNode(" ");
- this.toolbar.appendChild(gap1);
-
- var contents = this.create_element("a");
- contents.setAttribute("href", "javascript:toggleTableOfContents()");
- contents.setAttribute("title", "table of contents".localize());
- contents.innerHTML = "contents?".localize();
- this.toolbar.appendChild(contents);
-
- var gap2 = document.createTextNode(" ");
- this.toolbar.appendChild(gap2);
-
- var copyright = this.find_copyright();
-
- if (copyright)
- {
- var span = this.create_element("span");
- span.innerHTML = copyright;
- span.style.color = "black";
- span.style.marginLeft = "0.5em";
- this.toolbar.appendChild(span);
- }
-
- counter = this.create_element("div")
- counter.style.position = "absolute";
- counter.style.width = "auto"; //"20%";
- counter.style.height = "1.2em";
- counter.style.top = "auto";
- counter.style.bottom = 0;
- counter.style.right = "0";
- counter.style.textAlign = "right";
- counter.style.color = "red";
- counter.style.background = "rgb(240,240,240)";
-
- counter.innerHTML = "slide".localize() + " n/m";
- this.toolbar.appendChild(counter);
- }
-
- // ensure that click isn't passed through to the page
- this.toolbar.onclick =
- function (e) {
- if (!e)
- e = window.event;
-
- var target = e.target;
-
- if (!target && e.srcElement)
- target = e.srcElement;
-
- // work around Safari bug
- if (target && target.nodeType == 3)
- target = target.parentNode;
-
- w3c_slidy.stop_propagation(e);
-
- if (target && target.nodeName.toLowerCase() != "a")
- w3c_slidy.mouse_button_click(e);
- };
-
- this.slide_number_element = counter;
- this.set_eos_status(false);
- document.body.appendChild(this.toolbar);
- },
-
- // wysiwyg editors make it hard to use div elements
- // e.g. amaya loses the div when you copy and paste
- // this function wraps div elements around implicit
- // slides which start with an h1 element and continue
- // up to the next heading or div element
- wrap_implicit_slides: function () {
- var i, heading, node, next, div;
- var headings = document.getElementsByTagName("h1");
-
- if (!headings)
- return;
-
- for (i = 0; i < headings.length; ++i)
- {
- heading = headings[i];
-
- if (heading.parentNode != document.body)
- continue;
-
- node = heading.nextSibling;
-
- div = document.createElement("div");
- this.add_class(div, "slide");
- document.body.replaceChild(div, heading);
- div.appendChild(heading);
-
- while (node)
- {
- if (node.nodeType == 1 && // an element
- (node.nodeName == "H1" ||
- node.nodeName == "h1" ||
- node.nodeName == "DIV" ||
- node.nodeName == "div"))
- break;
-
- next = node.nextSibling;
- node = document.body.removeChild(node);
- div.appendChild(node);
- node = next;
- }
- }
- },
-
-// return new array of all slides
- collect_slides: function () {
- var slides = new Array();
- var divs = document.body.getElementsByTagName("div");
-
- for (var i = 0; i < divs.length; ++i)
- {
- div = divs.item(i);
-
- if (this.has_class(div, "slide"))
- {
- // add slide to collection
- slides[slides.length] = div;
-
- // hide each slide as it is found
- this.add_class(div, "hidden");
-
- // add dummy <br/> at end for scrolling hack
- var node1 = document.createElement("br");
- div.appendChild(node1);
- var node2 = document.createElement("br");
- div.appendChild(node2);
- }
- else if (this.has_class(div, "background"))
- { // work around for Firefox SVG reload bug
- // which otherwise replaces 1st SVG graphic with 2nd
- div.style.display = "block";
- }
- }
-
- this.slides = slides;
- },
-
- // return new array of all <div class="handout">
- collect_notes: function () {
- var notes = new Array();
- var divs = document.body.getElementsByTagName("div");
-
- for (var i = 0; i < divs.length; ++i)
- {
- div = divs.item(i);
-
- if (this.has_class(div, "handout"))
- {
- // add note to collection
- notes[notes.length] = div;
-
- // and hide it
- this.add_class(div, "hidden");
- }
- }
-
- this.notes = notes;
- },
-
- // return new array of all <div class="background">
- // including named backgrounds e.g. class="background titlepage"
- collect_backgrounds: function () {
- var backgrounds = new Array();
- var divs = document.body.getElementsByTagName("div");
-
- for (var i = 0; i < divs.length; ++i)
- {
- div = divs.item(i);
-
- if (this.has_class(div, "background"))
- {
- // add background to collection
- backgrounds[backgrounds.length] = div;
-
- // and hide it
- this.add_class(div, "hidden");
- }
- }
-
- this.backgrounds = backgrounds;
- },
-
- // set click handlers on all anchors
- patch_anchors: function () {
- var self = w3c_slidy;
- var handler = function (event) {
- // compare this.href with location.href
- // for link to another slide in this doc
-
- if (self.page_address(this.href) == self.page_address(location.href))
- {
- // yes, so find new slide number
- var newslidenum = self.find_slide_number(this.href);
-
- if (newslidenum != self.slide_number)
- {
- var slide = self.slides[self.slide_number];
- self.hide_slide(slide);
- self.slide_number = newslidenum;
- slide = self.slides[self.slide_number];
- self.show_slide(slide);
- self.set_location();
- }
- }
- else if (this.target == null)
- location.href = this.href;
-
- this.blur();
- self.disable_slide_click = true;
- };
-
- var anchors = document.body.getElementsByTagName("a");
-
- for (var i = 0; i < anchors.length; ++i)
- {
- if (window.addEventListener)
- anchors[i].addEventListener("click", handler, false);
- else
- anchors[i].attachEvent("onclick", handler);
- }
- },
-
- // ### CHECK ME ### see which functions are invoked via setTimeout
- // either directly or indirectly for use of w3c_slidy vs this
- show_slide_number: function () {
- var timer = w3c_slidy.get_timer();
- w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
- (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
- },
-
- // every 200mS check if the location has been changed as a
- // result of the user activating the Back button/menu item
- // doesn't work for Opera < 9.5
- check_location: function () {
- var hash = location.hash;
-
- if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
- w3c_slidy.goto_slide(0);
- else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
- {
- var num = parseInt(location.hash.substr(2));
-
- if (!isNaN(num))
- w3c_slidy.goto_slide(num-1);
- }
-
- if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
- {
- w3c_slidy.show_slide_number();
-
- if (w3c_slidy.time_left > 0)
- w3c_slidy.time_left -= 200;
- }
- },
-
- get_timer: function () {
- var timer = "";
- if (w3c_slidy.time_left)
- {
- var mins, secs;
- secs = Math.floor(w3c_slidy.time_left/1000);
- mins = Math.floor(secs / 60);
- secs = secs % 60;
- timer = (mins ? mins+"m" : "") + secs + "s ";
- }
-
- return timer;
- },
-
- // this doesn't push location onto history stack for IE
- // for which a hidden iframe hack is needed: load page into
- // the iframe with script that set's parent's location.hash
- // but that won't work for standalone use unless we can
- // create the page dynamically via a javascript: URL
- set_location: function () {
- var uri = w3c_slidy.page_address(location.href);
- var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
-
- if (w3c_slidy.slide_number >= 0)
- uri = uri + hash;
-
- if (w3c_slidy.ie && !w3c_slidy.ie8)
- w3c_slidy.push_hash(hash);
-
- if (uri != location.href) // && !khtml
- location.href = uri;
-
- if (this.khtml)
- hash = "(" + (w3c_slidy.slide_number+1) + ")";
-
- if (!this.ie && location.hash != hash && location.hash != "")
- location.hash = hash;
-
- document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
- w3c_slidy.show_slide_number();
- },
-
- page_address: function (uri) {
- var i = uri.indexOf("#");
-
- if (i < 0)
- i = uri.indexOf("%23");
-
- // check if anchor is entire page
-
- if (i < 0)
- return uri; // yes
-
- return uri.substr(0, i);
- },
-
- // only used for IE6 and IE7
- on_frame_loaded: function (hash) {
- location.hash = hash;
- var uri = w3c_slidy.page_address(location.href);
- location.href = uri + hash;
- },
-
- // history hack with thanks to Bertrand Le Roy
- push_hash: function (hash) {
- if (hash == "") hash = "#(1)";
- window.location.hash = hash;
-
- var doc = document.getElementById("historyFrame").contentWindow.document;
- doc.open("javascript:'<html></html>'");
- // PWL modified this string literal to break the close script tag
- // which otherwise gets parsed when incorporated
- doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
- (hash) + "');</" + "script></head><body>hello mum</body></html>");
- doc.close();
- },
-
- // find current slide based upon location
- // first find target anchor and then look
- // for associated div element enclosing it
- // finally map that to slide number
- find_slide_number: function (uri) {
- // first get anchor from page location
-
- var i = uri.indexOf("#");
-
- // check if anchor is entire page
- if (i < 0)
- return 0; // yes
-
- var anchor = unescape(uri.substr(i+1));
-
- // now use anchor as XML ID to find target
- var target = document.getElementById(anchor);
-
- if (!target)
- {
- // does anchor look like "(2)" for slide 2 ??
- // where first slide is (1)
- var re = /\((\d)+\)/;
-
- if (anchor.match(re))
- {
- var num = parseInt(anchor.substring(1, anchor.length-1));
-
- if (num > this.slides.length)
- num = 1;
-
- if (--num < 0)
- num = 0;
-
- return num;
- }
-
- // accept [2] for backwards compatibility
- re = /\[(\d)+\]/;
-
- if (anchor.match(re))
- {
- var num = parseInt(anchor.substring(1, anchor.length-1));
-
- if (num > this.slides.length)
- num = 1;
-
- if (--num < 0)
- num = 0;
-
- return num;
- }
-
- // oh dear unknown anchor
- return 0;
- }
-
- // search for enclosing slide
-
- while (true)
- {
- // browser coerces html elements to uppercase!
- if (target.nodeName.toLowerCase() == "div" &&
- this.has_class(target, "slide"))
- {
- // found the slide element
- break;
- }
-
- // otherwise try parent element if any
-
- target = target.parentNode;
-
- if (!target)
- {
- return 0; // no luck!
- }
- };
-
- for (i = 0; i < slides.length; ++i)
- {
- if (slides[i] == target)
- return i; // success
- }
-
- // oh dear still no luck
- return 0;
- },
-
- previous_slide: function (incremental) {
- if (!w3c_slidy.view_all)
- {
- var slide;
-
- if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
- {
- w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
- w3c_slidy.set_eos_status(false);
- }
- else if (w3c_slidy.slide_number > 0)
- {
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
-
- w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.set_visibility_all_incremental("visible");
- w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
- w3c_slidy.set_eos_status(true);
- w3c_slidy.show_slide(slide);
- }
-
- w3c_slidy.set_location();
-
- if (!w3c_slidy.ns_pos)
- w3c_slidy.refresh_toolbar(200);
- }
- },
-
- next_slide: function (incremental) {
- if (!w3c_slidy.view_all)
- {
- var slide, last = w3c_slidy.last_shown;
-
- if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
- w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
-
- if ((!incremental || w3c_slidy.last_shown == null) &&
- w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
- {
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
-
- w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.last_shown = null;
- w3c_slidy.set_visibility_all_incremental("hidden");
- w3c_slidy.show_slide(slide);
- }
- else if (!w3c_slidy.last_shown)
- {
- if (last && incremental)
- w3c_slidy.last_shown = last;
- }
-
- w3c_slidy.set_location();
-
- w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
-
- if (!w3c_slidy.ns_pos)
- w3c_slidy.refresh_toolbar(200);
- }
- },
-
- // to first slide with nothing revealed
- // i.e. state at start of presentation
- first_slide: function () {
- if (!w3c_slidy.view_all)
- {
- var slide;
-
- if (w3c_slidy.slide_number != 0)
- {
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
-
- w3c_slidy.slide_number = 0;
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.last_shown = null;
- w3c_slidy.set_visibility_all_incremental("hidden");
- w3c_slidy.show_slide(slide);
- }
-
- w3c_slidy.set_eos_status(
- !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
- w3c_slidy.set_location();
- }
- },
-
- // goto last slide with everything revealed
- // i.e. state at end of presentation
- last_slide: function () {
- if (!w3c_slidy.view_all)
- {
- var slide;
-
- w3c_slidy.last_shown = null; //revealNextItem(lastShown);
-
- if (w3c_slidy.last_shown == null &&
- w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
- {
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.set_visibility_all_incremental("visible");
- w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
-
- w3c_slidy.show_slide(slide);
- }
- else
- {
- w3c_slidy.set_visibility_all_incremental("visible");
- w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
- }
-
- w3c_slidy.set_eos_status(true);
- w3c_slidy.set_location();
- }
- },
-
-
- // ### check this and consider add/remove class
- set_eos_status: function (state) {
- if (this.eos)
- this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
- },
-
- // first slide is 0
- goto_slide: function (num) {
- //alert("going to slide " + (num+1));
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.slide_number = num;
- slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.last_shown = null;
- w3c_slidy.set_visibility_all_incremental("hidden");
- w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
- document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
- w3c_slidy.show_slide(slide);
- w3c_slidy.show_slide_number();
- },
-
-
- show_slide: function (slide) {
- this.sync_background(slide);
- window.scrollTo(0,0);
- this.remove_class(slide, "hidden");
- },
-
- hide_slide: function (slide) {
- this.add_class(slide, "hidden");
- },
-
- // show just the backgrounds pertinent to this slide
- // when slide background-color is transparent
- // this should now work with rgba color values
- sync_background: function (slide) {
- var background;
- var bgColor;
-
- if (slide.currentStyle)
- bgColor = slide.currentStyle["backgroundColor"];
- else if (document.defaultView)
- {
- var styles = document.defaultView.getComputedStyle(slide,null);
-
- if (styles)
- bgColor = styles.getPropertyValue("background-color");
- else // broken implementation probably due Safari or Konqueror
- {
- //alert("defective implementation of getComputedStyle()");
- bgColor = "transparent";
- }
- }
- else
- bgColor == "transparent";
-
- if (bgColor == "transparent" ||
- bgColor.indexOf("rgba") >= 0 ||
- bgColor.indexOf("opacity") >= 0)
- {
- var slideClass = this.get_class_list(slide);
-
- for (var i = 0; i < this.backgrounds.length; i++)
- {
- background = this.backgrounds[i];
-
- var bgClass = this.get_class_list(background);
-
- if (this.matching_background(slideClass, bgClass))
- this.remove_class(background, "hidden");
- else
- this.add_class(background, "hidden");
- }
- }
- else // forcibly hide all backgrounds
- this.hide_backgrounds();
- },
-
- hide_backgrounds: function () {
- for (var i = 0; i < this.backgrounds.length; i++)
- {
- background = this.backgrounds[i];
- this.add_class(background, "hidden");
- }
- },
-
- // compare classes for slide and background
- matching_background: function (slideClass, bgClass) {
- var i, count, pattern, result;
-
- // define pattern as regular expression
- pattern = /\w+/g;
-
- // check background class names
- result = bgClass.match(pattern);
-
- for (i = count = 0; i < result.length; i++)
- {
- if (result[i] == "hidden")
- continue;
-
- if (result[i] == "background")
- continue;
-
- ++count;
- }
-
- if (count == 0) // default match
- return true;
-
- // check for matches and place result in array
- result = slideClass.match(pattern);
-
- // now check if desired name is present for background
- for (i = count = 0; i < result.length; i++)
- {
- if (result[i] == "hidden")
- continue;
-
- if (this.has_token(bgClass, result[i]))
- return true;
- }
-
- return false;
- },
-
- resized: function () {
- var width = 0;
-
- if ( typeof( window.innerWidth ) == 'number' )
- width = window.innerWidth; // Non IE browser
- else if (document.documentElement && document.documentElement.clientWidth)
- width = document.documentElement.clientWidth; // IE6
- else if (document.body && document.body.clientWidth)
- width = document.body.clientWidth; // IE4
-
- var height = 0;
-
- if ( typeof( window.innerHeight ) == 'number' )
- height = window.innerHeight; // Non IE browser
- else if (document.documentElement && document.documentElement.clientHeight)
- height = document.documentElement.clientHeight; // IE6
- else if (document.body && document.body.clientHeight)
- height = document.body.clientHeight; // IE4
-
- if (height && (width/height > 1.05*1024/768))
- {
- width = height * 1024.0/768;
- }
-
- // IE fires onresize even when only font size is changed!
- // so we do a check to avoid blocking < and > actions
- if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
- {
- if (width >= 1100)
- w3c_slidy.size_index = 5; // 4
- else if (width >= 1000)
- w3c_slidy.size_index = 4; // 3
- else if (width >= 800)
- w3c_slidy.size_index = 3; // 2
- else if (width >= 600)
- w3c_slidy.size_index = 2; // 1
- else if (width)
- w3c_slidy.size_index = 0;
-
- // add in font size adjustment from meta element e.g.
- // <meta name="font-size-adjustment" content="-2" />
- // useful when slides have too much content ;-)
-
- if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
- w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
- w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
-
- // enables cross browser use of relative width/height
- // on object elements for use with SVG and Flash media
- w3c_slidy.adjust_object_dimensions(width, height);
-
- if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
- {
- document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
- }
-
- w3c_slidy.last_width = width;
- w3c_slidy.last_height = height;
-
- // force reflow to work around Mozilla bug
- if (w3c_slidy.ns_pos)
- {
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.show_slide(slide);
- }
-
- // force correct positioning of toolbar
- w3c_slidy.refresh_toolbar(200);
- }
- },
-
- scrolled: function () {
- if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
- {
- w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
- // hide toolbar
- w3c_slidy.toolbar.style.display = "none";
-
- // make it reappear later
- if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
- {
- setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
- w3c_slidy.scrollhack = 1;
- }
- }
- },
-
- hide_toolbar: function () {
- w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
- window.focus();
- },
-
- // used to ensure IE refreshes toolbar in correct position
- refresh_toolbar: function (interval) {
- if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
- {
- w3c_slidy.hide_toolbar();
- setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
- }
- },
-
- // restores toolbar after short delay
- show_toolbar: function () {
- if (w3c_slidy.want_toolbar)
- {
- w3c_slidy.toolbar.style.display = "block";
-
- if (!w3c_slidy.ns_pos)
- {
- // adjust position to allow for scrolling
- var xoffset = w3c_slidy.scroll_x_offset();
- w3c_slidy.toolbar.style.left = xoffset;
- w3c_slidy.toolbar.style.right = xoffset;
-
- // determine vertical scroll offset
- //var yoffset = scrollYOffset();
-
- // bottom is doc height - window height - scroll offset
- //var bottom = documentHeight() - lastHeight - yoffset
-
- //if (yoffset > 0 || documentHeight() > lastHeight)
- // bottom += 16; // allow for height of scrollbar
-
- w3c_slidy.toolbar.style.bottom = 0; //bottom;
- }
-
- w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
- }
-
- w3c_slidy.scrollhack = 0;
-
-
- // set the keyboard focus to the help link on the
- // toolbar to ensure that document has the focus
- // IE doesn't always work with window.focus()
- // and this hack has benefit of Enter for help
-
- try
- {
- if (!w3c_slidy.opera)
- w3c_slidy.help_anchor.focus();
- }
- catch (e)
- {
- }
- },
-
-// invoked via F key
- toggle_toolbar: function () {
- if (!w3c_slidy.view_all)
- {
- if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
- {
- w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
- w3c_slidy.want_toolbar = 1;
- }
- else
- {
- w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
- w3c_slidy.want_toolbar = 0;
- }
- }
- },
-
- scroll_x_offset: function () {
- if (window.pageXOffset)
- return self.pageXOffset;
-
- if (document.documentElement &&
- document.documentElement.scrollLeft)
- return document.documentElement.scrollLeft;
-
- if (document.body)
- return document.body.scrollLeft;
-
- return 0;
- },
-
- scroll_y_offset: function () {
- if (window.pageYOffset)
- return self.pageYOffset;
-
- if (document.documentElement &&
- document.documentElement.scrollTop)
- return document.documentElement.scrollTop;
-
- if (document.body)
- return document.body.scrollTop;
-
- return 0;
- },
-
- // looking for a way to determine height of slide content
- // the slide itself is set to the height of the window
- optimize_font_size: function () {
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
-
- //var dh = documentHeight(); //getDocHeight(document);
- var dh = slide.scrollHeight;
- var wh = getWindowHeight();
- var u = 100 * dh / wh;
-
- alert("window utilization = " + u + "% (doc "
- + dh + " win " + wh + ")");
- },
-
- // from document object
- get_doc_height: function (doc) {
- if (!doc)
- doc = document;
-
- if (doc && doc.body && doc.body.offsetHeight)
- return doc.body.offsetHeight; // ns/gecko syntax
-
- if (doc && doc.body && doc.body.scrollHeight)
- return doc.body.scrollHeight;
-
- alert("couldn't determine document height");
- },
-
- get_window_height: function () {
- if ( typeof( window.innerHeight ) == 'number' )
- return window.innerHeight; // Non IE browser
-
- if (document.documentElement && document.documentElement.clientHeight)
- return document.documentElement.clientHeight; // IE6
-
- if (document.body && document.body.clientHeight)
- return document.body.clientHeight; // IE4
- },
-
- document_height: function () {
- var sh, oh;
-
- sh = document.body.scrollHeight;
- oh = document.body.offsetHeight;
-
- if (sh && oh)
- {
- return (sh > oh ? sh : oh);
- }
-
- // no idea!
- return 0;
- },
-
- smaller: function () {
- if (w3c_slidy.size_index > 0)
- {
- --w3c_slidy.size_index;
- }
-
- w3c_slidy.toolbar.style.display = "none";
- document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.show_slide(slide);
- setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
- },
-
- bigger: function () {
- if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
- {
- ++w3c_slidy.size_index;
- }
-
- w3c_slidy.toolbar.style.display = "none";
- document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
- w3c_slidy.hide_slide(slide);
- w3c_slidy.show_slide(slide);
- setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
- },
-
- // enables cross browser use of relative width/height
- // on object elements for use with SVG and Flash media
- // with thanks to Ivan Herman for the suggestion
- adjust_object_dimensions: function (width, height) {
- for( var i = 0; i < w3c_slidy.objects.length; i++ )
- {
- var obj = this.objects[i];
- var mimeType = obj.getAttribute("type");
-
- if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
- {
- if ( !obj.initialWidth )
- obj.initialWidth = obj.getAttribute("width");
-
- if ( !obj.initialHeight )
- obj.initialHeight = obj.getAttribute("height");
-
- if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
- {
- var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
- var newW = width * (w/100.0);
- obj.setAttribute("width",newW);
- }
-
- if ( obj.initialHeight &&
- obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
- {
- var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
- var newH = height * (h/100.0);
- obj.setAttribute("height", newH);
- }
- }
- }
- },
-
- // needed for Opera to inhibit default behavior
- // since Opera delivers keyPress even if keyDown
- // was cancelled
- key_press: function (event) {
- if (!event)
- event = window.event;
-
- if (!w3c_slidy.key_wanted)
- return w3c_slidy.cancel(event);
-
- return true;
- },
-
- // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
- key_down: function (event) {
- var key;
-
- w3c_slidy.key_wanted = true;
-
- if (!event)
- event = window.event;
-
- // kludge around NS/IE differences
- if (window.event)
- key = window.event.keyCode;
- else if (event.which)
- key = event.which;
- else
- return true; // Yikes! unknown browser
-
- // ignore event if key value is zero
- // as for alt on Opera and Konqueror
- if (!key)
- return true;
-
- // check for concurrent control/command/alt key
- // but are these only present on mouse events?
-
- if (event.ctrlKey || event.altKey || event.metaKey)
- return true;
-
- // dismiss table of contents if visible
- if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
- {
- w3c_slidy.hide_table_of_contents();
-
- if (key == 27 || key == 84 || key == 67)
- return w3c_slidy.cancel(event);
- }
-
- if (key == 34) // Page Down
- {
- if (w3c_slidy.view_all)
- return true;
-
- w3c_slidy.next_slide(false);
- return w3c_slidy.cancel(event);
- }
- else if (key == 33) // Page Up
- {
- if (w3c_slidy.view_all)
- return true;
-
- w3c_slidy.previous_slide(false);
- return w3c_slidy.cancel(event);
- }
- else if (key == 32) // space bar
- {
- w3c_slidy.next_slide(true);
- return w3c_slidy.cancel(event);
- }
- else if (key == 37) // Left arrow
- {
- w3c_slidy.previous_slide(!event.shiftKey);
- return w3c_slidy.cancel(event);
- }
- else if (key == 36) // Home
- {
- w3c_slidy.first_slide();
- return w3c_slidy.cancel(event);
- }
- else if (key == 35) // End
- {
- w3c_slidy.last_slide();
- return w3c_slidy.cancel(event);
- }
- else if (key == 39) // Right arrow
- {
- w3c_slidy.next_slide(!event.shiftKey);
- return w3c_slidy.cancel(event);
- }
- else if (key == 13) // Enter
- {
- if (w3c_slidy.outline)
- {
- if (w3c_slidy.outline.visible)
- w3c_slidy.fold(w3c_slidy.outline);
- else
- w3c_slidy.unfold(w3c_slidy.outline);
-
- return w3c_slidy.cancel(event);
- }
- }
- else if (key == 188) // < for smaller fonts
- {
- w3c_slidy.smaller();
- return w3c_slidy.cancel(event);
- }
- else if (key == 190) // > for larger fonts
- {
- w3c_slidy.bigger();
- return w3c_slidy.cancel(event);
- }
- else if (key == 189 || key == 109) // - for smaller fonts
- {
- w3c_slidy.smaller();
- return w3c_slidy.cancel(event);
- }
- else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
- {
- w3c_slidy.bigger();
- return w3c_slidy.cancel(event);
- }
- else if (key == 83) // S for smaller fonts
- {
- w3c_slidy.smaller();
- return w3c_slidy.cancel(event);
- }
- else if (key == 66) // B for larger fonts
- {
- w3c_slidy.bigger();
- return w3c_slidy.cancel(event);
- }
- else if (key == 90) // Z for last slide
- {
- w3c_slidy.last_slide();
- return w3c_slidy.cancel(event);
- }
- else if (key == 70) // F for toggle toolbar
- {
- w3c_slidy.toggle_toolbar();
- return w3c_slidy.cancel(event);
- }
- else if (key == 65) // A for toggle view single/all slides
- {
- w3c_slidy.toggle_view();
- return w3c_slidy.cancel(event);
- }
- else if (key == 75) // toggle action of left click for next page
- {
- w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
- var alert_msg = (w3c_slidy.mouse_click_enabled ?
- "enabled" : "disabled") + " mouse click advance";
-
- alert(alert_msg.localize());
- return w3c_slidy.cancel(event);
- }
- else if (key == 84 || key == 67) // T or C for table of contents
- {
- if (w3c_slidy.toc)
- w3c_slidy.toggle_table_of_contents();
-
- return w3c_slidy.cancel(event);
- }
- else if (key == 72) // H for help
- {
- window.location = w3c_slidy.help_page;
- return w3c_slidy.cancel(event);
- }
- //else alert("key code is "+ key);
-
- return true;
- },
-
- // safe for both text/html and application/xhtml+xml
- create_element: function (name) {
- if (this.xhtml && (typeof document.createElementNS != 'undefined'))
- return document.createElementNS("http://www.w3.org/1999/xhtml", name)
-
- return document.createElement(name);
- },
-
- get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
- if (elem.currentStyle)
- {
- return elem.currentStyle[IEStyleProp];
- }
- else if (window.getComputedStyle)
- {
- var compStyle = window.getComputedStyle(elem, "");
- return compStyle.getPropertyValue(CSSStyleProp);
- }
- return "";
- },
-
- // the string str is a whitespace separated list of tokens
- // test if str contains a particular token, e.g. "slide"
- has_token: function (str, token) {
- if (str)
- {
- // define pattern as regular expression
- var pattern = /\w+/g;
-
- // check for matches
- // place result in array
- var result = str.match(pattern);
-
- // now check if desired token is present
- for (var i = 0; i < result.length; i++)
- {
- if (result[i] == token)
- return true;
- }
- }
-
- return false;
- },
-
- get_class_list: function (element) {
- if (typeof element.className != 'undefined')
- return element.className;
-
- return element.getAttribute("class");
- },
-
- has_class: function (element, name) {
- if (element.nodeType != 1)
- return false;
-
- var regexp = new RegExp("(^| )" + name + "\W*");
-
- if (typeof element.className != 'undefined')
- return regexp.test(element.className);
-
- return regexp.test(element.getAttribute("class"));
- },
-
- remove_class: function (element, name) {
- var regexp = new RegExp("(^| )" + name + "\W*");
- var clsval = "";
-
- if (typeof element.className != 'undefined')
- {
- clsval = element.className;
-
- if (clsval)
- {
- clsval = clsval.replace(regexp, "");
- element.className = clsval;
- }
- }
- else
- {
- clsval = element.getAttribute("class");
-
- if (clsval)
- {
- clsval = clsval.replace(regexp, "");
- element.setAttribute("class", clsval);
- }
- }
- },
-
- add_class: function (element, name) {
- if (!this.has_class(element, name))
- {
- if (typeof element.className != 'undefined')
- element.className += " " + name;
- else
- {
- var clsval = element.getAttribute("class");
- clsval = clsval ? clsval + " " + name : name;
- element.setAttribute("class", clsval);
- }
- }
- },
-
- // HTML elements that can be used with class="incremental"
- // note that you can also put the class on containers like
- // up, ol, dl, and div to make their contents appear
- // incrementally. Upper case is used since this is what
- // browsers report for HTML node names (text/html).
- incremental_elements: null,
- okay_for_incremental: function (name) {
- if (!this.incremental_elements)
- {
- var inclist = new Array();
- inclist["p"] = true;
- inclist["pre"] = true;
- inclist["li"] = true;
- inclist["blockquote"] = true;
- inclist["dt"] = true;
- inclist["dd"] = true;
- inclist["h2"] = true;
- inclist["h3"] = true;
- inclist["h4"] = true;
- inclist["h5"] = true;
- inclist["h6"] = true;
- inclist["span"] = true;
- inclist["address"] = true;
- inclist["table"] = true;
- inclist["tr"] = true;
- inclist["th"] = true;
- inclist["td"] = true;
- inclist["img"] = true;
- inclist["object"] = true;
- this.incremental_elements = inclist;
- }
- return this.incremental_elements[name.toLowerCase()];
- },
-
- next_incremental_item: function (node) {
- var br = this.is_xhtml ? "br" : "BR";
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
-
- for (;;)
- {
- node = w3c_slidy.next_node(slide, node);
-
- if (node == null || node.parentNode == null)
- break;
-
- if (node.nodeType == 1) // ELEMENT
- {
- if (node.nodeName == br)
- continue;
-
- if (w3c_slidy.has_class(node, "incremental")
- && w3c_slidy.okay_for_incremental(node.nodeName))
- return node;
-
- if (w3c_slidy.has_class(node.parentNode, "incremental")
- && !w3c_slidy.has_class(node, "non-incremental"))
- return node;
- }
- }
-
- return node;
- },
-
- previous_incremental_item: function (node) {
- var br = this.is_xhtml ? "br" : "BR";
- var slide = w3c_slidy.slides[w3c_slidy.slide_number];
-
- for (;;)
- {
- node = w3c_slidy.previous_node(slide, node);
-
- if (node == null || node.parentNode == null)
- break;
-
- if (node.nodeType == 1)
- {
- if (node.nodeName == br)
- continue;
-
- if (w3c_slidy.has_class(node, "incremental")
- && w3c_slidy.okay_for_incremental(node.nodeName))
- return node;
-
- if (w3c_slidy.has_class(node.parentNode, "incremental")
- && !w3c_slidy.has_class(node, "non-incremental"))
- return node;
- }
- }
-
- return node;
- },
-
- // set visibility for all elements on current slide with
- // a parent element with attribute class="incremental"
- set_visibility_all_incremental: function (value) {
- var node = this.next_incremental_item(null);
-
- if (value == "hidden")
- {
- while (node)
- {
- w3c_slidy.add_class(node, "invisible");
- node = w3c_slidy.next_incremental_item(node);
- }
- }
- else // value == "visible"
- {
- while (node)
- {
- w3c_slidy.remove_class(node, "invisible");
- node = w3c_slidy.next_incremental_item(node);
- }
- }
- },
-
- // reveal the next hidden item on the slide
- // node is null or the node that was last revealed
- reveal_next_item: function (node) {
- node = w3c_slidy.next_incremental_item(node);
-
- if (node && node.nodeType == 1) // an element
- w3c_slidy.remove_class(node, "invisible");
-
- return node;
- },
-
- // exact inverse of revealNextItem(node)
- hide_previous_item: function (node) {
- if (node && node.nodeType == 1) // an element
- w3c_slidy.add_class(node, "invisible");
-
- return this.previous_incremental_item(node);
- },
-
- // left to right traversal of root's content
- next_node: function (root, node) {
- if (node == null)
- return root.firstChild;
-
- if (node.firstChild)
- return node.firstChild;
-
- if (node.nextSibling)
- return node.nextSibling;
-
- for (;;)
- {
- node = node.parentNode;
-
- if (!node || node == root)
- break;
-
- if (node && node.nextSibling)
- return node.nextSibling;
- }
-
- return null;
- },
-
- // right to left traversal of root's content
- previous_node: function (root, node) {
- if (node == null)
- {
- node = root.lastChild;
-
- if (node)
- {
- while (node.lastChild)
- node = node.lastChild;
- }
-
- return node;
- }
-
- if (node.previousSibling)
- {
- node = node.previousSibling;
-
- while (node.lastChild)
- node = node.lastChild;
-
- return node;
- }
-
- if (node.parentNode != root)
- return node.parentNode;
-
- return null;
- },
-
- previous_sibling_element: function (el) {
- el = el.previousSibling;
-
- while (el && el.nodeType != 1)
- el = el.previousSibling;
-
- return el;
- },
-
- next_sibling_element: function (el) {
- el = el.nextSibling;
-
- while (el && el.nodeType != 1)
- el = el.nextSibling;
-
- return el;
- },
-
- first_child_element: function (el) {
- var node;
-
- for (node = el.firstChild; node; node = node.nextSibling)
- {
- if (node.nodeType == 1)
- break;
- }
-
- return node;
- },
-
- first_tag: function (element, tag) {
- var node;
-
- if (!this.is_xhtml)
- tag = tag.toUpperCase();
-
- for (node = element.firstChild; node; node = node.nextSibling)
- {
- if (node.nodeType == 1 && node.nodeName == tag)
- break;
- }
-
- return node;
- },
-
- hide_selection: function () {
- if (window.getSelection) // Firefox, Chromium, Safari, Opera
- {
- var selection = window.getSelection();
-
- if (selection.rangeCount > 0)
- {
- var range = selection.getRangeAt(0);
- range.collapse (false);
- }
- }
- else // Internet Explorer
- {
- var textRange = document.selection.createRange ();
- textRange.collapse (false);
- }
- },
-
- get_selected_text: function () {
- try
- {
- if (window.getSelection)
- return window.getSelection().toString();
-
- if (document.getSelection)
- return document.getSelection().toString();
-
- if (document.selection)
- return document.selection.createRange().text;
- }
- catch (e)
- {
- }
-
- return "";
- },
-
- // make note of length of selected text
- // as this evaluates to zero in click event
- mouse_button_up: function (e) {
- w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
- },
-
- // right mouse button click is reserved for context menus
- // it is more reliable to detect rightclick than leftclick
- mouse_button_click: function (e) {
- var rightclick = false;
- var leftclick = false;
- var middleclick = false;
- var target;
-
- if (!e)
- var e = window.event;
-
- if (e.target)
- target = e.target;
- else if (e.srcElement)
- target = e.srcElement;
-
- // work around Safari bug
- if (target.nodeType == 3)
- target = target.parentNode;
-
- if (e.which) // all browsers except IE
- {
- leftclick = (e.which == 1);
- middleclick = (e.which == 2);
- rightclick = (e.which == 3);
- }
- else if (e.button)
- {
- // Konqueror gives 1 for left, 4 for middle
- // IE6 gives 0 for left and not 1 as I expected
-
- if (e.button == 4)
- middleclick = true;
-
- // all browsers agree on 2 for right button
- rightclick = (e.button == 2);
- }
- else leftclick = true;
-/*
- alert("you clicked over a " + target.nodeName + " element\n" +
- "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
- "leftclick = " + leftclick + "\n" +
- "selected text length = " + w3c_slidy.selected_text_len);
- //alert("selected text length = " + w3c_slidy.selected_text_len);
-*/
- if (w3c_slidy.selected_text_len > 0)
- {
- w3c_slidy.stop_propagation(e);
- e.cancel = true;
- e.returnValue = false;
- return false;
- }
-
- // dismiss table of contents
- w3c_slidy.hide_table_of_contents();
-
- // check if target is something that probably want's clicks
- // e.g. a, embed, object, input, textarea, select, option
- var tag = target.nodeName.toLowerCase();
-
- if (w3c_slidy.mouse_click_enabled && leftclick &&
- tag != "a" &&
- tag != "embed" &&
- tag != "object" &&
- tag != "video" &&
- tag != "input" &&
- tag != "textarea" &&
- tag != "select" &&
- tag != "option" &&
- !target.onclick)
- {
- w3c_slidy.next_slide(true);
- w3c_slidy.stop_propagation(e);
- e.cancel = true;
- e.returnValue = false;
- return false;
- }
- },
-
- get_key: function (e)
- {
- var key;
-
- // kludge around NS/IE differences
- if (typeof window.event != "undefined")
- key = window.event.keyCode;
- else if (e.which)
- key = e.which;
-
- return key;
- },
-
- get_target: function (e) {
- var target;
-
- if (!e)
- e = window.event;
-
- if (e.target)
- target = e.target;
- else if (e.srcElement)
- target = e.srcElement;
-
- if (target.nodeType != 1)
- target = target.parentNode;
-
- return target;
- },
-
- // does display property provide correct defaults?
- is_block: function (elem) {
- var tag = elem.nodeName.toLowerCase();
-
- return tag == "ol" || tag == "ul" || tag == "p" ||
- tag == "li" || tag == "table" || tag == "pre" ||
- tag == "h1" || tag == "h2" || tag == "h3" ||
- tag == "h4" || tag == "h5" || tag == "h6" ||
- tag == "blockquote" || tag == "address";
- },
-
- add_listener: function (element, event, handler) {
- if (window.addEventListener)
- element.addEventListener(event, handler, false);
- else
- element.attachEvent("on"+event, handler);
- },
-
- // used to prevent event propagation from field controls
- stop_propagation: function (event) {
- event = event ? event : window.event;
- event.cancelBubble = true; // for IE
-
- if (event.stopPropagation)
- event.stopPropagation();
-
- return true;
- },
-
- cancel: function (event) {
- if (event)
- {
- event.cancel = true;
- event.returnValue = false;
-
- if (event.preventDefault)
- event.preventDefault();
- }
-
- w3c_slidy.key_wanted = false;
- return false;
- }
-};
-
-// for each language define an associative array
-// and also the help text which is longer
-
-var w3c_slidy_i18n = {
- strings_es: {
- "slide":"pág.",
- "help?":"Ayuda",
- "contents?":"Índice",
- "table of contents":"tabla de contenidos",
- "Table of Contents":"Tabla de Contenidos",
- "restart presentation":"Reiniciar presentación",
- "restart?":"Inicio"
- },
- help_es:
- "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
- "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
-
- strings_ca: {
- "slide":"pàg..",
- "help?":"Ajuda",
- "contents?":"Índex",
- "table of contents":"taula de continguts",
- "Table of Contents":"Taula de Continguts",
- "restart presentation":"Reiniciar presentació",
- "restart?":"Inici"
- },
- help_ca:
- "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
- "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
-
- strings_cs: {
- "slide":"snímek",
- "help?":"nápověda",
- "contents?":"obsah",
- "table of contents":"obsah prezentace",
- "Table of Contents":"Obsah prezentace",
- "restart presentation":"znovu spustit prezentaci",
- "restart?":"restart"
- },
- help_cs:
- "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
- "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
- "dá zvětšit a zmenšit pomocí kláves B a S.",
-
- strings_nl: {
- "slide":"pagina",
- "help?":"Help?",
- "contents?":"Inhoud?",
- "table of contents":"inhoudsopgave",
- "Table of Contents":"Inhoudsopgave",
- "restart presentation":"herstart presentatie",
- "restart?":"Herstart?"
- },
- help_nl:
- "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
- "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
-
- strings_de: {
- "slide":"Seite",
- "help?":"Hilfe",
- "contents?":"Übersicht",
- "table of contents":"Inhaltsverzeichnis",
- "Table of Contents":"Inhaltsverzeichnis",
- "restart presentation":"Präsentation neu starten",
- "restart?":"Neustart"
- },
- help_de:
- "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
- "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
-
- strings_pl: {
- "slide":"slajd",
- "help?":"pomoc?",
- "contents?":"spis treści?",
- "table of contents":"spis treści",
- "Table of Contents":"Spis Treści",
- "restart presentation":"Restartuj prezentację",
- "restart?":"restart?"
- },
- help_pl:
- "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
- "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
-
- strings_fr: {
- "slide":"page",
- "help?":"Aide",
- "contents?":"Index",
- "table of contents":"table des matières",
- "Table of Contents":"Table des matières",
- "restart presentation":"Recommencer l'exposé",
- "restart?":"Début"
- },
- help_fr:
- "Naviguez avec la souris, la barre d'espace, les flèches " +
- "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
- "les touches S et B pour modifier la taille de la police.",
-
- strings_hu: {
- "slide":"oldal",
- "help?":"segítség",
- "contents?":"tartalom",
- "table of contents":"tartalomjegyzék",
- "Table of Contents":"Tartalomjegyzék",
- "restart presentation":"bemutató újraindítása",
- "restart?":"újraindítás"
- },
- help_hu:
- "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
- "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
- "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
- "a szöveg méretét.",
-
- strings_it: {
- "slide":"pag.",
- "help?":"Aiuto",
- "contents?":"Indice",
- "table of contents":"indice",
- "Table of Contents":"Indice",
- "restart presentation":"Ricominciare la presentazione",
- "restart?":"Inizio"
- },
- help_it:
- "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
- "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
-
- strings_el: {
- "slide":"σελίδα",
- "help?":"βοήθεια;",
- "contents?":"περιεχόμενα;",
- "table of contents":"πίνακας περιεχομένων",
- "Table of Contents":"Πίνακας Περιεχομένων",
- "restart presentation":"επανεκκίνηση παρουσίασης",
- "restart?":"επανεκκίνηση;"
- },
- help_el:
- "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
- "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
- "το μέγεθος της γραμματοσειράς.",
-
- strings_ja: {
- "slide":"スライド",
- "help?":"ヘルプ",
- "contents?":"目次",
- "table of contents":"目次を表示",
- "Table of Contents":"目次",
- "restart presentation":"最初から再生",
- "restart?":"最初から"
- },
- help_ja:
- "マウス左クリック ・ スペース ・ 左右キー " +
- "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
-
- strings_zh: {
- "slide":"幻灯片",
- "help?":"帮助?",
- "contents?":"内容?",
- "table of contents":"目录",
- "Table of Contents":"目录",
- "restart presentation":"重新启动展示",
- "restart?":"重新启动?"
- },
- help_zh:
- "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
- "用 S, B 改变字体大小.",
-
- strings_ru: {
- "slide":"слайд",
- "help?":"помощь?",
- "contents?":"содержание?",
- "table of contents":"оглавление",
- "Table of Contents":"Оглавление",
- "restart presentation":"перезапустить презентацию",
- "restart?":"перезапуск?"
- },
- help_ru:
- "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
- "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
-
- strings_sv: {
- "slide":"sida",
- "help?":"hjälp",
- "contents?":"innehåll",
- "table of contents":"innehållsförteckning",
- "Table of Contents":"Innehållsförteckning",
- "restart presentation":"visa presentationen från början",
- "restart?":"börja om"
- },
- help_sv:
- "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
- "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
- "Använd tangenterna S och B för att ändra textens storlek.",
-
-// each such language array is declared in the localize array
-// which is set on string prototype and used as in "foo".localize();
- localize: {
- "es":this.strings_es,
- "ca":this.strings_ca,
- "cs":this.strings_cs,
- "nl":this.strings_nl,
- "de":this.strings_de,
- "pl":this.strings_pl,
- "fr":this.strings_fr,
- "hu":this.strings_hu,
- "it":this.strings_it,
- "el":this.strings_el,
- "jp":this.strings_ja,
- "zh":this.strings_zh,
- "ru":this.strings_ru,
- "sv":this.strings_sv
- },
-
- init: function () {
- var i18n = w3c_slidy_i18n;
- var help_text = w3c_slidy.help_text;
- i18n.strings_es[help_text] = i18n.help_es;
- i18n.strings_ca[help_text] = i18n.help_ca;
- i18n.strings_cs[help_text] = i18n.help_cs;
- i18n.strings_nl[help_text] = i18n.help_nl;
- i18n.strings_de[help_text] = i18n.help_de;
- i18n.strings_pl[help_text] = i18n.help_pl;
- i18n.strings_fr[help_text] = i18n.help_fr;
- i18n.strings_hu[help_text] = i18n.help_hu;
- i18n.strings_it[help_text] = i18n.help_it;
- i18n.strings_el[help_text] = i18n.help_el;
- i18n.strings_ja[help_text] = i18n.help_ja;
- i18n.strings_zh[help_text] = i18n.help_zh;
- i18n.strings_ru[help_text] = i18n.help_ru;
- i18n.strings_sv[help_text] = i18n.help_sv;
-
- w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
-
- if (!w3c_slidy.lang)
- w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
-
- if (!w3c_slidy.lang)
- w3c_slidy.lang = "en";
-
- // add localize method to all strings
- // for use as in "contents".localize()
- String.prototype.localize = function() {
- if (this == "")
- return this;
-
- // try full language code, e.g. en-US
- var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
-
- if (lookup)
- {
- s = lookup[this];
-
- if (s)
- return s;
- }
-
- // strip country code suffix, e.g.
- // try en if undefined for en-US
- var lg = w3c_slidy.lang.split("-");
-
- if (lg.length > 1)
- {
- lookup = w3c_slidy_i18n.localize[lg[0]];
-
- if (lookup)
- {
- s = lookup[this];
-
- if (s)
- return s;
- }
- }
-
- // otherwise string as is
- return this;
- };
- }
-};
-
-// hack for back button behavior
-if (w3c_slidy.ie6 || w3c_slidy.ie7)
-{
- document.write("<iframe id='historyFrame' " +
- "src='javascript:\"<html"+"></"+"html>\"' " +
- "height='1' width='1' " +
- "style='position:absolute;left:-800px'></iframe>");
-}
-
-// attach event listeners for initialization
-w3c_slidy.set_up();
-
-// hide the slides as soon as body element is available
-// to reduce annoying screen mess before the onload event
-setTimeout(w3c_slidy.hide_slides, 50);
-
-/*]]>*/
-</script>
-</head>
-<body class="article" style="max-width:45em">
-<div id="header" class="slide">
-<h1>Slidy Example Slideshow</h1>
-<span id="author">Joe Bloggs</span><br />
-</div>
-<div id="preamble" class="slide">
-<div class="sectionbody" style="max-width:45em">
-<div class="paragraph"><p>This preamble will appear on a separate slide.</p></div>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_asciidoc_elements">AsciiDoc Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="paragraph"><p>Sagittis in vestibulum. Habitasse ante nulla enim bibendum nulla. Odio
-sed pede litora.</p></div>
-<h3 id="_titles_inside_delimited_blocks_must_be_floated" class="float">Titles inside delimited blocks must be floated</h3>
-<div class="paragraph"><p>Porta nisl metus. Justo porttitor vel. Cras consequat tincidunt id sed
-conubia. Feugiat felis justo. Nunc amet nulla. Eu ac orci mollis.</p></div>
-<div class="imageblock">
-<div class="content">
-<img alt="images/tiger.png"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
-JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
-pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
-nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
-fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
-rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
-O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
-8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
-CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
-tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
-MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
-uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
-ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
-kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
-jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
-Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
-0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
-0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
-vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
-9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
-w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
-+33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
-cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
-8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
-26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
-jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
-7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
-RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
-qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
-42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
-4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
-NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
-vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
-P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
-r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
-DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
-w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
-dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
-O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
-PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
-Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
-2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
-NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
-hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
-JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
-fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
-889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
-N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
-BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
-W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
-beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
-P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
-3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
-R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
-KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
-rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
-B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
-Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
-P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
-x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
-o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
-l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
-cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
-/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
-E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
-fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
-XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
-XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
-K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
-fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
-Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
-zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
-E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
-gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
-Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
-zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
-lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
-+OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
-wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
-VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
-XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
-/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
-aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
-fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
-Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
-l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
-8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
-7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
-0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
-epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
-vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
-d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
-vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
-u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
-axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
-AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
-q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
-6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
-/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
-ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
-Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
-Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
-cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
-JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
-c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
-Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
-0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
-9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
-wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
-8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
-cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
-WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
-n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
-ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
-m2i9J54AAAAASUVORK5CYII=" />
-</div>
-<div class="title">Figure 1. Tiger</div>
-</div>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_incremental_elements">Incremental Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="paragraph"><p>The remaining elements on this page are incremental, press the space
-bar to reveal them.</p></div>
-<ul class=" incremental">
-<li>
-<span>
-Rhoncus pede justo.
-</span>
-</li>
-<li>
-<span>
-Velit pede dolor.
-</span>
-</li>
-<li>
-<span>
-Iaculis commodo et.
-</span>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-</li>
-</ul>
-<div class="openblock incremental">
-<div class="content">
-<div class="paragraph"><p>Sagittis in vestibulum. Habitasse ante nulla enim bibendum nulla. Odio
-sed pede litora.</p></div>
-</div></div>
-<ol class="arabic incremental">
-<li>
-<span>
-Rhoncus pede justo.
-</span>
-</li>
-<li>
-<span>
-Velit pede dolor.
-</span>
-</li>
-<li>
-<span>
-Iaculis commodo et.
-</span>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-</li>
-</ol>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_outline_elements">Outline Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="paragraph"><p>The following list is a Slidy <em>outline</em> list&#8201;&#8212;&#8201;nested bulleted or
-numbered lists are expanded when the enclosing list item (the ones
-with blue bullet points or numbers) are clicked.</p></div>
-<ul class=" outline">
-<li>
-<span>
-Rhoncus pede justo.
-</span>
-<ul class="">
-<li>
-<span>
-Rhoncus pede justo.
-</span>
-</li>
-<li>
-<span>
-Velit pede dolor.
-</span>
-</li>
-</ul>
-</li>
-<li>
-<span>
-Velit pede dolor.
-</span>
-<ul class="">
-<li>
-<span>
-Iaculis commodo et.
-</span>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img alt="Note" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
-m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
-CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
-BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
-Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
-vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
-oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
-/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
-Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
-bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
-0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
-rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
-X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
-NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
-cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
-KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
-S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
-UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
-XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
-4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
-nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
-iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
-/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
-qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
-uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
-bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
-NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
-PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
-0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
-1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
-i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
-UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
-4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
-Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
-NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
-ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
-AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
-IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
-W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
-o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
-GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
-lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
-zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
-PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
-</td>
-<td class="content"><em>Note</em> admonition paragraph.</td>
-</tr></table>
-</div>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-<div class="imageblock">
-<div class="content">
-<img alt="images/tiger.png"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
-JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
-pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
-nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
-fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
-rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
-O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
-8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
-CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
-tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
-MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
-uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
-ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
-kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
-jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
-Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
-0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
-0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
-vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
-9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
-w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
-+33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
-cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
-8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
-26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
-jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
-7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
-RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
-qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
-42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
-4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
-NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
-vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
-P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
-r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
-DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
-w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
-dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
-O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
-PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
-Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
-2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
-NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
-hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
-JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
-fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
-889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
-N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
-BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
-W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
-beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
-P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
-3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
-R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
-KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
-rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
-B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
-Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
-P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
-x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
-o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
-l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
-cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
-/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
-E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
-fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
-XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
-XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
-K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
-fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
-Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
-zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
-E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
-gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
-Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
-zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
-lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
-+OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
-wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
-VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
-XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
-/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
-aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
-fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
-Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
-l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
-8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
-7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
-0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
-epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
-vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
-d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
-vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
-u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
-axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
-AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
-q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
-6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
-/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
-ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
-Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
-Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
-cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
-JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
-c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
-Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
-0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
-9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
-wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
-8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
-cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
-WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
-n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
-ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
-m2i9J54AAAAASUVORK5CYII=" />
-</div>
-</div>
-</li>
-<li>
-<span>
-Iaculis commodo et.
-</span>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-</li>
-</ul>
-</li>
-<li>
-<span>
-Iaculis commodo et.
-</span>
-<ol class="arabic outline">
-<li>
-<span>
-Rhoncus pede justo.
-</span>
-<ul class="">
-<li>
-<span>
-Velit pede dolor.
-</span>
-</li>
-<li>
-<span>
-Iaculis commodo et.
-</span>
-</li>
-</ul>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-</li>
-</ol>
-</li>
-<li>
-<span>
-Volutpat tristique nec.
-</span>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_asciidoc_elements_2">AsciiDoc Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img alt="Note" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
-m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
-CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
-BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
-Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
-vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
-oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
-/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
-Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
-bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
-0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
-rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
-X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
-NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
-cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
-KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
-S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
-UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
-XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
-4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
-nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
-iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
-/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
-qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
-uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
-bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
-NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
-PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
-0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
-1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
-i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
-UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
-4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
-Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
-NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
-ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
-AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
-IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
-W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
-o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
-GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
-lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
-zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
-PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
-</td>
-<td class="content"><em>Note</em> admonition paragraph.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img alt="Important" src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALa0lEQVRogdWZa2wc1RXHfzM7O/te
-P9e1vXHSmEdjx3YeDkkaF6REKRRCEDSEFNkRjdSWSsgC2iqoRWqLQKiqIBg1NOQDiMeHtkQIQkRR
-S9S4aWwgCQoUgl232KkT28J21l6vd3d2dx79sDuTXdtre03Uqlc62tl53Pv/n3PuOffcKxiGwf9z
-E//XAL5sk65WR0a6AaDrOjMtKwgCoigiCAKCIAhXa9wvTcAEHhoc5KMjR7jw3nucf+MN67k/GCS4
-YQOr77yTpl27kGUZm81mXC0ywlLnQDbwEwcO0P2b3yz4jV5RwZq2Nm5/5BH8fj+SJGGz2b4UiSUR
-MAzD0DSNEwcO8MdHHln8d0AcsAUCfOe551h7yy04HA7sdvuSrVEwAV3XjdDgIC/v2cOl06dznqWA
-JCAAMvn9MwlEgF1PP8037rsPt9uN3W5fkjUKIqDrujF+4QLP3XQTU0NDOc8UIAa4y8sJtrQQqK/H
-7XQSfv99Pn/nHQRRxNB16/0EEAUatm9n76uv4vP5cDgcBZNYNIF84I0MEK20lIZvf5sNe/dSWlqK
-1+vFxBEZHubT3/+evqNHmR4dJRWP55BevW0bra+8gt/vx+l0IknSokksikA+8ElgClixYwc3799P
-ZWUlTqczbz+x0VFOPvEEQ6dPE/niCwxdt0jUbd1K68svU1xcXBCJBQnMBz5eWkrL/v2s++Y3KSsr
-QxQXlxc7f/5zBjo7CQ8NoadSKKQn943t7dyyf79FYjHuNC8BwzAMVVV56Z57+OzNN3PAJ8vK+FZH
-B2s2b55X6/nahRMnOP7TnxLOKEXJyO2/+hVf37uXoqIinE6nmfzyksirMjNUvvGjH+WAVwG1vJxb
-Dhxg1bp1uFwuMwQWJCu3bWPN3r24SkoAcGbA/OXXv2bws8+IRqOkUqlZGX1RBAzDMHRd51+nTvHe
-wYNX7gPTQMO+faxav56SkpIlgTdlU3s7TXv2IGUs6AGioRDH2tuZmJggFouhqirGPCzyEUBVVX7X
-1pZzPwI0fP/7bNmzh7KysrzADh8+zP3338++ffs4ePBg3vdEUWTDD3/IsuZmRLsdW4bEpd5eOp99
-lnA4jKIoaJqWl8QsAqb2Txw4kDNp40BxXR0bWlspLy/PC+qZZ55hdHQUSZIYHByko6ODxx57bBZw
-cy3kq6xk6y9/ib+qCgQBmbQ7nT50iIs9PUSjUZLJJIZhzEliLgKMDQzwp5/9zLqnkQ51W3/xCwKB
-AE6nMy+B3t5exsfH6ezspLe3l3g8zuHDh2cBz5bKpibWtrXhLi0FwA3owNsPP8zExATxeBxVVecy
-QC4Bc+L+taNjluvU33031dddN6/2BUGgpKSE/v5+JicncweaA3i2tDz8MIHrr0eU0gsQBzDW10ff
-yZNEIhESicScrpRDQNd1xgYG+OC3v7XuJQBXIMDWn/yEioqKeUGMjY0hCAKKoszS1MjIyLzfAmx/
-4gmKli0DQcBJOmicfOopJicnicfjJoG5LWBq/+Szz+a8oABNe/bgdrvndR1BEKiqqiIejxOLxWYR
-CAaDC0alqjVrqGxowFNWhkDalUKff07f3/5mWSFTLFksLAK6rjN+4UKO9lXAUV7O2tbWeaNOthZl
-WZ4FHlh0aN3y4IPIHk+6L8AGvNfRQTgctuZCthVEU/u6rnPutddyBk0A9bt3W4us+QY2fbyurg6v
-15vTzw033LBoAsHmZoLNzdgcDgBcQKi/n391dTE9PU0ymcyxgkmAVCrF+4cO5WjfFgiwfoGwOTOy
-lJWVUVtba1mkUAKCILClvR1veTkA9owVPnzllZy8YFnA1H5/dzfTw8PWgziwcutWfD4fsiwvCNyU
-xsZG3G43lZWVVl933XVXQQSq161j+ebNlhXcwBdnzxIOh60lhmkFEUDTNP7++uvWgBrp6mrNHBk3
-H/BsAtFoFEdm8GAwyMaNGwsiIAgCjbt346uosKwgAp8cPWolNj1THInmsqHn6FGLQApY1thIxcqV
-+Hy+WX6+0ETesWMHLpcLWZZ54IEHCgYvCAKrbrsNyem0JrQEXMzkhKzlBaKu61z+97+ZHhnJmbwr
-tm2zJu5CWp8pra2tNDU1sXPnTtrb25dEQBAEvrplC57MXJCB8XPniEQixONxa6Uq6brOQHd3jvvo
-QP2ttxZUpMxsL7zwwpK+AyxLXrt9Oxe6uxFEEXvGZc4fO0bVD35AMplM1wuapjGYtbugAp5AgKLq
-aquu/W/JTEs37dqFqihWzSADk8PD1jzQNC3tQtmrThUINDbm+H4h0tfXx6OPPsodd9xBW1sbPT09
-BQPPluu2b7fWRxIQ6usjFotZBCRN06wZbbZAfT1FRUWWKQtpzz//PMPDw/T09DA1NcXo6CjHjx+f
-11Xma95AwHJjEdB0HUVRrhCYuRGrAiXBoFUqFtq6u7sZHx9nJBMUurq65uxnsX0Hm5v56A9/ANIJ
-LXrpEolEwgqlUqZQyPlo6OOPlzx5ly1bxnBWQmxpackBW6hSBEC02axrpqasNZGmaek8kN0kYPDj
-j1FVdUlz4Mknn6Surs4Cb5aUhYZiUy59+GGOgm3V1WiadiUPCILAV9autV5wAaM9PXQeOWJprBBp
-aGjgxIkTpFIpOjs7aWxsXBJwUwZOnUKZmgLS2zl4vUjSlV1XURRFqtavv3IDKAVe/O53efPxx69a
-SCxUBs+c4dV77+Vyfz+xy5eBdG3iX7ECm81m9S2JokiwuZmiujrCPT1AuqgOAqcef5zzL77Imt27
-uemhhyipqVnYZ5cw8bPbR0eOcOall7g8MEB4aIhEJAJk9qOAwKZNyLJsHpQgRKNRIxQK0XPmDH/+
-3vdQQ6G8na/YtIk199zDypYWVmzceFWAT1y8yMWzZzn/9tv0vfsudqeTlKIQHRvL2QSOAqU7d/K1
-W2/l2muvpba2Nl3iJhIJIxKJMDw8TO/Zs3zw4x+jTUzkHVCw2fCUleHw+QiuXYu/upqqhgb8VVUY
-hkFNczPFweCs7z556y3r+vyxYwiiyD+PHwdBwNB1krEYhqYRC4UwdB2D9LJmmnRtXHz77VTfeCPL
-ly+ntraWmpqa9MaaqqqGoiiEQiGGhoYYHBzk00OHiHR2LkqDNlnG7nJhd7nQswqN+ZogiuipFMlY
-DDWRgBl5KEF6woqAUFFByc03U756NZWVlSxfvpyamhoCgQAejwdB13VDVVVisRihUIiRkRGGh4cZ
-+sc/GO3qIt7VhZGJAle7mVpWuVKDCBng8jXX4N68Gc8111BUVER5eTnV1dVUV1cTCASuFFqGYaDr
-upFKpYjH40xMTDA+Ps7Y2Bjj4+OEw2EmenqYPneO1OAgZCWpxTY9S9QMcLhyHGUDRI8HqbISZ309
-zoYGnE4nHo8Hv99PaWkpgUCAiooK6/DE4XCkI1HW2a6hqiqKojA9Pc3k5KQl4XCY6elpotFoetuk
-v59UKIR66RLToRBJTcMYHUWIRvMSMPO6rbY2/SsIOFatQpYk5NWrkSQJWZZxOBy43W68Xi9+v5+i
-oiJKSkooLi7G5/PhdruRZdnads85HzD3hpLJJIqiEIvFiEajRCIRIpEI0WiUWCxGPB631iOKopBK
-pazUbi4Oc7Y+snKCzWbDZrMhSRKSJGG3262w6HK5cLlceDwevF4vPp8Pr9eL2+3G5XLhcDjMkxuE
-TNibdcBhnv9qmkYqlSKZTJJIJFAUhXg8jqIoKIpCIpGwSCSTSVRVtWSuk3qTiAnebrfngHc4HDid
-TpxOJy6Xy7qWZdk6wZzrxCbvCY1JRNd1NE3LAWgSM69ngp+PgCiK1gF3NhFTzHvmO+Y3wCzw8xLI
-JpL5tYCZpEyw2f/nWt1ag2UtM0x3Mq1iAp1j+bH0M7KFCGWDnfmbd8AMnuxfUzL/C0rp/wFnFd4n
-EQn3XQAAAABJRU5ErkJggg==" />
-</td>
-<td class="content"><em>Important</em> admonition paragraph.</td>
-</tr></table>
-</div>
-<div class="sidebarblock">
-<div class="content">
-<div class="title">Sidebar</div>
-<div class="paragraph"><p>Faucibus sagittis commodo sed et eu. Quam nullam ornare. Sed vel est.
-Mauris urna lobortis interdum placerat per id magnis enim.</p></div>
-</div></div>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_asciidoc_elements_3">AsciiDoc Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="paragraph"><p>A quote block:</p></div>
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.</p></div>
-</div>
-<div class="attribution">
-<em>The World of Mathematics (1956)</em><br />
-&#8212; Bertrand Russell
-</div></div>
-<div class="paragraph"><p>A verse block:</p></div>
-<div class="verseblock">
-<pre class="content">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<div class="attribution">
-<em>from Auguries of Innocence</em><br />
-&#8212; William Blake
-</div></div>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_asciidoc_elements_4">AsciiDoc Elements</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="tableblock">
-<table rules="all"
-width="80%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Horizontal and vertical source data</caption>
-<col width="17%" />
-<col width="11%" />
-<col width="11%" />
-<col width="58%" />
-<thead>
-<tr>
-<th align="left" valign="top">Date </th>
-<th align="center" valign="top">Duration </th>
-<th align="center" valign="top">Avg HR </th>
-<th align="left" valign="top">Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">10:24</p></td>
-<td align="center" valign="top"><p class="table">157</p></td>
-<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">23:03</p></td>
-<td align="center" valign="top"><p class="table">152</p></td>
-<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">40:00</p></td>
-<td align="center" valign="top"><p class="table">145</p></td>
-<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="sect1 slide">
-<h1 id="_filters">Filters</h1>
-<div class="sectionbody" style="max-width:45em">
-<div class="listingblock">
-<div class="title">Python source</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<title>Slidy Example Slideshow</title>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="copyright" content="Copyright &#169; Foobar Inc." />
+<meta name="generator" content="AsciiDoc test" />
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+/* slidy.css
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+/*
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
+*/
+
+body
+{
+ margin: 0 0 0 0;
+ padding: 0 0 0 0;
+ width: 100%;
+ height: 100%;
+ color: black;
+ background-color: white;
+/*
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
+*/
+ font-size: 14pt;
+}
+
+div.toolbar {
+ position: fixed; z-index: 200;
+ top: auto; bottom: 0; left: 0; right: 0;
+ height: 1.2em; text-align: right;
+ padding-left: 1em;
+ padding-right: 1em;
+ font-size: 60%;
+ color: red;
+ background-color: rgb(240,240,240);
+ border-top: solid 1px rgb(180,180,180);
+}
+
+div.toolbar span.copyright {
+ color: black;
+ margin-left: 0.5em;
+}
+
+div.initial_prompt {
+ position: absolute;
+ z-index: 1000;
+ bottom: 1.2em;
+ width: 90%;
+ background-color: rgb(200,200,200);
+ opacity: 0.35;
+ background-color: rgb(200,200,200, 0.35);
+ cursor: pointer;
+}
+
+div.initial_prompt p.help {
+ text-align: center;
+}
+
+div.initial_prompt p.close {
+ text-align: right;
+ font-style: italic;
+}
+
+div.slidy_toc {
+ position: absolute;
+ z-index: 300;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ overflow: auto;
+ top: auto;
+ right: auto;
+ left: 4em;
+ bottom: 4em;
+ padding: 1em;
+ background: rgb(240,240,240);
+ border-style: solid;
+ border-width: 2px;
+ font-size: 60%;
+}
+
+div.slidy_toc .toc_heading {
+ text-align: center;
+ width: 100%;
+ margin: 0;
+ margin-bottom: 1em;
+ border-bottom-style: solid;
+ border-bottom-color: rgb(180,180,180);
+ border-bottom-width: 1px;
+}
+
+div.slide {
+ z-index: 20;
+ margin: 0 0 0 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-left: 20px;
+ padding-right: 20px;
+ border-width: 0;
+ clear: both;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ line-height: 120%;
+ background-color: transparent;
+}
+
+div.background {
+ display: none;
+}
+
+div.handout {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+div.slide.titlepage {
+ text-align: center;
+}
+
+div.slide.titlepage.h1 {
+ padding-top: 10%;
+}
+
+div.slide h1 {
+ padding-left: 0;
+ padding-right: 20pt;
+ padding-top: 4pt;
+ padding-bottom: 4pt;
+ margin-top: 0;
+ margin-left: 0;
+ margin-right: 60pt;
+ margin-bottom: 0.5em;
+ display: block;
+ font-size: 160%;
+ line-height: 1.2em;
+ background: transparent;
+}
+
+div.toc {
+ position: absolute;
+ top: auto;
+ bottom: 4em;
+ left: 4em;
+ right: auto;
+ width: 60%;
+ max-width: 30em;
+ height: 30em;
+ border: solid thin black;
+ padding: 1em;
+ background: rgb(240,240,240);
+ color: black;
+ z-index: 300;
+ overflow: auto;
+ display: block;
+ visibility: visible;
+}
+
+div.toc-heading {
+ width: 100%;
+ border-bottom: solid 1px rgb(180,180,180);
+ margin-bottom: 1em;
+ text-align: center;
+}
+
+/*
+pre {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 120%;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ padding-left: 1em;
+ padding-right: 1em;
+ border-style: solid;
+ border-left-width: 1em;
+ border-top-width: thin;
+ border-right-width: thin;
+ border-bottom-width: thin;
+ border-color: #95ABD0;
+ color: #00428C;
+ background-color: #E4E5E7;
+}
+*/
+
+/*
+li pre { margin-left: 0; }
+
+blockquote { font-style: italic }
+
+img { background-color: transparent }
+
+p.copyright { font-size: smaller }
+*/
+
+.center { text-align: center }
+.footnote { font-size: smaller; margin-left: 2em; }
+
+/*
+a img { border-width: 0; border-style: none }
+*/
+
+a:visited { color: navy }
+a:link { color: navy }
+a:hover { color: red; text-decoration: underline }
+a:active { color: red; text-decoration: underline }
+
+a {text-decoration: none}
+.navbar a:link {color: white}
+.navbar a:visited {color: yellow}
+.navbar a:active {color: red}
+.navbar a:hover {color: red}
+
+/*
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+li { margin-left: 0.5em; margin-top: 0.5em; }
+li li { font-size: 85%; font-style: italic }
+li li li { font-size: 85%; font-style: normal }
+*/
+
+div dt
+{
+ margin-left: 0;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
+ font-weight: bold;
+}
+div dd
+{
+ margin-left: 2em;
+ margin-bottom: 0.5em;
+}
+
+
+/*
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
+ margin-left: 1em;
+ margin-right: 1em;
+}
+*/
+
+p.subhead { font-weight: bold; margin-top: 2em; }
+
+.smaller { font-size: smaller }
+.bigger { font-size: 130% }
+
+/*
+td,th { padding: 0.2em }
+*/
+
+ul {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ol {
+ margin: 0.5em 1.5em 0.5em 1.5em;
+ padding: 0;
+}
+
+ul { list-style-type: square; }
+ul ul { list-style-type: disc; }
+ul ul ul { list-style-type: circle; }
+ul ul ul ul { list-style-type: disc; }
+
+/*
+ul li {
+ list-style: square;
+ margin: 0.1em 0em 0.6em 0;
+ padding: 0 0 0 0;
+ line-height: 140%;
+}
+
+ol li {
+ margin: 0.1em 0em 0.6em 1.5em;
+ padding: 0 0 0 0px;
+ line-height: 140%;
+ list-style-type: decimal;
+}
+
+li ul li {
+ font-size: 85%;
+ font-style: italic;
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li ul li {
+ font-size: 85%;
+ font-style: normal;
+ list-style-type: circle;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+li li li ul li {
+ list-style-type: disc;
+ background: transparent;
+ padding: 0 0 0 0;
+}
+
+li ol li {
+ list-style-type: decimal;
+}
+
+
+li li ol li {
+ list-style-type: decimal;
+}
+*/
+
+/*
+ setting class="outline" on ol or ul makes it behave as an
+ ouline list where blocklevel content in li elements is
+ hidden by default and can be expanded or collapsed with
+ mouse click. Set class="expand" on li to override default
+*/
+
+ol.outline li:hover { cursor: pointer }
+ol.outline li.nofold:hover { cursor: default }
+
+ul.outline li:hover { cursor: pointer }
+ul.outline li.nofold:hover { cursor: default }
+
+ol.outline { list-style:decimal; }
+ol.outline ol { list-style-type:lower-alpha }
+
+ol.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ol.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+ul.outline li.nofold {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.unfolded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
+}
+ul.outline li.folded:hover {
+ padding: 0 0 0 20px;
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
+}
+
+/* for slides with class "title" in table of contents */
+a.titleslide { font-weight: bold; font-style: italic }
+
+/*
+ hide images for work around for save as bug
+ where browsers fail to save images used by CSS
+*/
+img.hidden { display: none; visibility: hidden }
+div.initial_prompt { display: none; visibility: hidden }
+
+ div.slide {
+ visibility: visible;
+ position: inherit;
+ }
+ div.handout {
+ border-top-style: solid;
+ border-top-width: thin;
+ border-top-color: black;
+ }
+
+@media screen {
+ .hidden { display: none; visibility: visible }
+
+ div.slide.hidden { display: block; visibility: visible }
+ div.handout.hidden { display: block; visibility: visible }
+ div.background { display: none; visibility: hidden }
+ body.single_slide div.initial_prompt { display: block; visibility: visible }
+ body.single_slide div.background { display: block; visibility: visible }
+ body.single_slide div.background.hidden { display: none; visibility: hidden }
+ body.single_slide .invisible { visibility: hidden }
+ body.single_slide .hidden { display: none; visibility: hidden }
+ body.single_slide div.slide { position: absolute }
+ body.single_slide div.handout { display: none; visibility: hidden }
+}
+
+@media print {
+ .hidden { display: block; visibility: visible }
+
+/*
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }
+*/
+ div.toolbar { display: none; visibility: hidden; }
+ div.slidy_toc { display: none; visibility: hidden; }
+ div.background { display: none; visibility: hidden; }
+ div.slide { page-break-before: always }
+ /* :first-child isn't reliable for print media */
+ div.slide.first-slide { page-break-before: avoid }
+}
+
+
+/* SJR: AsciiDoc slidy backend tweaks */
+
+ol, ul {
+ margin: 0.8em 1.5em 0.8em 1.8em;
+}
+li > ul, li > ol {
+ margin-top: 0.5em;
+}
+
+.outline > li.folded,
+.outline > li.unfolded {
+ color: #527bbd;
+}
+ul > li{ color: #aaa; }
+ul > li > *, ol > li > * { color: black; }
+
+li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+/* slidy.js
+
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
+ W3C liability, trademark, document use and software licensing
+ rules apply, see:
+
+ http://www.w3.org/Consortium/Legal/copyright-documents
+ http://www.w3.org/Consortium/Legal/copyright-software
+*/
+
+// the slidy object implementation
+var w3c_slidy = {
+ // classify which kind of browser we're running under
+ ns_pos: (typeof window.pageYOffset!='undefined'),
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
+ ie: (typeof document.all != "undefined" && !this.opera),
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
+ keyboardless: (this.ipad || this.iphone),
+
+ // are we running as XHTML? (doesn't work on Opera)
+ is_xhtml: /xml/.test(document.contentType),
+
+ slide_number: 0, // integer slide count: 0, 1, 2, ...
+ slide_number_element: null, // element containing slide number
+ slides: [], // set to array of slide div's
+ notes: [], // set to array of handout div's
+ backgrounds: [], // set to array of background div's
+ toolbar: null, // element containing toolbar
+ title: null, // document title
+ last_shown: null, // last incrementally shown item
+ eos: null, // span element for end of slide indicator
+ toc: null, // table of contents
+ outline: null, // outline element with the focus
+ selected_text_len: 0, // length of drag selection on document
+ view_all: 0, // 1 to view all slides + handouts
+ want_toolbar: true, // user preference to show/hide toolbar
+ mouse_click_enabled: true, // enables left click for next slide
+ scroll_hack: 0, // IE work around for position: fixed
+ disable_slide_click: false, // used by clicked anchors
+
+ lang: "en", // updated to language specified by html file
+
+ help_anchor: null, // used for keyboard focus hack in showToolbar()
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
+ "or Pg Up and Pg Dn. Use S and B to change font size.",
+
+ size_index: 0,
+ size_adjustment: 0,
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
+
+ // needed for efficient resizing
+ last_width: 0,
+ last_height: 0,
+
+
+ // Needed for cross browser support for relative width/height on
+ // object elements. The work around is to save width/height attributes
+ // and then to recompute absolute width/height dimensions on resizing
+ objects: [],
+
+ // attach initialiation event handlers
+ set_up: function () {
+ var init = function() { w3c_slidy.init(); };
+ if (typeof window.addEventListener != "undefined")
+ window.addEventListener("load", init, false);
+ else
+ window.attachEvent("onload", init);
+ },
+
+ hide_slides: function () {
+ if (document.body && !w3c_slidy.initialized)
+ document.body.style.visibility = "hidden";
+ else
+ setTimeout(w3c_slidy.hide_slides, 50);
+ },
+
+ // hack to persuade IE to compute correct document height
+ // as needed for simulating fixed positioning of toolbar
+ ie_hack: function () {
+ window.resizeBy(0,-1);
+ window.resizeBy(0, 1);
+ },
+
+ init: function () {
+ //alert("slidy starting test 10");
+ document.body.style.visibility = "visible";
+ w3c_slidy_i18n.init();
+ this.add_toolbar();
+ this.wrap_implicit_slides();
+ this.collect_slides();
+ this.collect_notes();
+ this.collect_backgrounds();
+ this.objects = document.body.getElementsByTagName("object");
+ this.patch_anchors();
+ this.slide_number = this.find_slide_number(location.href);
+ window.offscreenbuffering = true;
+ this.size_adjustment = this.find_size_adjust();
+ this.time_left = this.find_duration();
+ this.hide_image_toolbar(); // suppress IE image toolbar popup
+ this.init_outliner(); // activate fold/unfold support
+ this.title = document.title;
+
+ // work around for opera bug
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
+
+ if (this.slides.length > 0)
+ {
+ var slide = this.slides[this.slide_number];
+
+ if (this.slide_number > 0)
+ {
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ this.set_eos_status(true);
+ }
+ else
+ {
+ this.last_shown = null;
+ this.set_visibility_all_incremental("hidden");
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));
+ }
+
+ this.set_location();
+ this.add_class(this.slides[0], "first-slide");
+ w3c_slidy.show_slide(slide);
+ }
+
+ this.toc = this.table_of_contents();
+
+ this.add_initial_prompt();
+
+ // bind event handlers without interfering with custom page scripts
+ // Tap events behave too weirdly to support clicks reliably on
+ // iPhone and iPad, so exclude these from click handler
+
+ if (!this.keyboardless)
+ this.add_listener(document.body, "click", this.mouse_button_click);
+
+ this.add_listener(document, "keydown", this.key_down);
+ this.add_listener(document, "keypress", this.key_press);
+ this.add_listener(window, "resize", this.resized);
+ this.add_listener(window, "scroll", this.scrolled);
+ this.add_listener(window, "unload", this.unloaded);
+
+ if (!document.body.onclick)
+ document.body.onclick = function () { };
+
+ this.single_slide_view();
+
+ //this.set_location();
+
+ this.resized();
+
+ if (this.ie7)
+ setTimeout(w3c_slidy.ie_hack, 100);
+
+ this.show_toolbar();
+
+ // for back button detection
+ setInterval(function () { w3c_slidy.check_location(); }, 200);
+ w3c_slidy.initialized = true;
+ },
+
+ // create div element with links to each slide
+ table_of_contents: function () {
+ var toc = this.create_element("div");
+ this.add_class(toc, "slidy_toc hidden");
+ //toc.setAttribute("tabindex", "0");
+
+ var heading = this.create_element("div");
+ this.add_class(heading, "toc-heading");
+ heading.innerHTML = "Table of Contents".localize();
+
+ toc.appendChild(heading);
+ var previous = null;
+
+ for (var i = 0; i < this.slides.length; ++i)
+ {
+ var title = this.has_class(this.slides[i], "title");
+ var num = document.createTextNode((i + 1) + ". ");
+
+ toc.appendChild(num);
+
+ var a = this.create_element("a");
+ a.setAttribute("href", "#(" + (i+1) + ")");
+
+ if (title)
+ this.add_class(a, "titleslide");
+
+ var name = document.createTextNode(this.slide_name(i));
+ a.appendChild(name);
+ a.onclick = w3c_slidy.toc_click;
+ a.onkeydown = w3c_slidy.toc_keydown;
+ a.previous = previous;
+
+ if (previous)
+ previous.next = a;
+
+ toc.appendChild(a);
+
+ if (i == 0)
+ toc.first = a;
+
+ if (i < this.slides.length - 1)
+ {
+ var br = this.create_element("br");
+ toc.appendChild(br);
+ }
+
+ previous = a;
+ }
+
+ toc.focus = function () {
+ if (this.first)
+ this.first.focus();
+ }
+
+ toc.onmouseup = w3c_slidy.mouse_button_up;
+
+ toc.onclick = function (e) {
+ e||(e=window.event);
+
+ if (w3c_slidy.selected_text_len <= 0)
+ w3c_slidy.hide_table_of_contents();
+
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ };
+
+ document.body.insertBefore(toc, document.body.firstChild);
+ return toc;
+ },
+
+ is_shown_toc: function () {
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
+ },
+
+ show_table_of_contents: function () {
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
+ var toc = w3c_slidy.toc;
+ toc.focus();
+
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
+ setTimeout(w3c_slidy.ie_hack, 100);
+ },
+
+ hide_table_of_contents: function () {
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");
+
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ },
+
+ toggle_table_of_contents: function () {
+ if (w3c_slidy.is_shown_toc())
+ w3c_slidy.hide_table_of_contents();
+ else
+ w3c_slidy.show_table_of_contents();
+ },
+
+ // called on clicking toc entry
+ toc_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = w3c_slidy.get_target(e);
+
+ if (target && target.nodeType == 1)
+ {
+ var uri = target.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents(e);
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();
+ w3c_slidy.stop_propagation(e);
+ return w3c_slidy.cancel(e);
+ },
+
+ // called onkeydown for toc entry
+ toc_keydown: function (event) {
+ var key;
+
+ if (!event)
+ var event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey)
+ return true;
+
+ if (key == 13)
+ {
+ var uri = this.getAttribute("href");
+
+ if (uri)
+ {
+ //alert("going to " + uri);
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_location();
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.show_slide(slide);
+ //target.focus();
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ }
+
+ w3c_slidy.hide_table_of_contents();
+
+ if (self.ie7)
+ w3c_slidy.ie_hack();
+
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 40 && this.next)
+ {
+ this.next.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 38 && this.previous)
+ {
+ this.previous.focus();
+ return w3c_slidy.cancel(event);
+ }
+
+ return true;
+ },
+
+
+ // ### OBSOLETE ###
+ before_print: function () {
+ this.show_all_slides();
+ this.hide_toolbar();
+ alert("before print");
+ },
+
+ // ### OBSOLETE ###
+ after_print: function () {
+ if (!this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ }
+ alert("after print");
+ },
+
+ // ### OBSOLETE ###
+ print_slides: function () {
+ this.before_print();
+ window.print();
+ this.after_print();
+ },
+
+ // ### OBSOLETE ?? ###
+ toggle_view: function () {
+ if (this.view_all)
+ {
+ this.single_slide_view();
+ this.show_toolbar();
+ this.view_all = 0;
+ }
+ else
+ {
+ this.show_all_slides();
+ this.hide_toolbar();
+ this.view_all = 1;
+ }
+ },
+
+ // prepare for printing ### OBSOLETE ###
+ show_all_slides: function () {
+ this.remove_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ },
+
+ // restore after printing ### OBSOLETE ###
+ single_slide_view: function () {
+ this.add_class(document.body, "single_slide");
+ this.set_visibility_all_incremental("visible");
+ this.last_shown = this.previous_incremental_item(null);
+ },
+
+ // suppress IE's image toolbar pop up
+ hide_image_toolbar: function () {
+ if (!this.ns_pos)
+ {
+ var images = document.getElementsByTagName("IMG");
+
+ for (var i = 0; i < images.length; ++i)
+ images[i].setAttribute("galleryimg", "no");
+ }
+ },
+
+ unloaded: function (e) {
+ //alert("unloaded");
+ },
+
+ // Safari and Konqueror don't yet support getComputedStyle()
+ // and they always reload page when location.href is updated
+ is_KHTML: function () {
+ var agent = navigator.userAgent;
+ return (agent.indexOf("KHTML") >= 0 ? true : false);
+ },
+
+ // find slide name from first h1 element
+ // default to document title + slide number
+ slide_name: function (index) {
+ var name = null;
+ var slide = this.slides[index];
+
+ var heading = this.find_heading(slide);
+
+ if (heading)
+ name = this.extract_text(heading);
+
+ if (!name)
+ name = this.title + "(" + (index + 1) + ")";
+
+ name.replace(/\&/g, "&amp;");
+ name.replace(/\</g, "&lt;");
+ name.replace(/\>/g, "&gt;");
+
+ return name;
+ },
+
+ // find first h1 element in DOM tree
+ find_heading: function (node) {
+ if (!node || node.nodeType != 1)
+ return null;
+
+ if (node.nodeName == "H1" || node.nodeName == "h1")
+ return node;
+
+ var child = node.firstChild;
+
+ while (child)
+ {
+ node = this.find_heading(child);
+
+ if (node)
+ return node;
+
+ child = child.nextSibling;
+ }
+
+ return null;
+ },
+
+ // recursively extract text from DOM tree
+ extract_text: function (node) {
+ if (!node)
+ return "";
+
+ // text nodes
+ if (node.nodeType == 3)
+ return node.nodeValue;
+
+ // elements
+ if (node.nodeType == 1)
+ {
+ node = node.firstChild;
+ var text = "";
+
+ while (node)
+ {
+ text = text + this.extract_text(node);
+ node = node.nextSibling;
+ }
+
+ return text;
+ }
+
+ return "";
+ },
+
+ // find copyright text from meta element
+ find_copyright: function () {
+ var name, content;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "copyright")
+ return content;
+ }
+
+ return null;
+ },
+
+ find_size_adjust: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "font-size-adjustment")
+ return 1 * content;
+ }
+
+ return 1;
+ },
+
+ // <meta name="duration" content="20" /> for 20 minutes
+ find_duration: function () {
+ var name, content, offset;
+ var meta = document.getElementsByTagName("meta");
+
+ for (var i = 0; i < meta.length; ++i)
+ {
+ name = meta[i].getAttribute("name");
+ content = meta[i].getAttribute("content");
+
+ if (name == "duration")
+ return 60000 * content;
+ }
+
+ return null;
+ },
+
+ replace_by_non_breaking_space: function (str) {
+ for (var i = 0; i < str.length; ++i)
+ str[i] = 160;
+ },
+
+ // ### CHECK ME ### is use of "li" okay for text/html?
+ // for XHTML do we also need to specify namespace?
+ init_outliner: function () {
+ var items = document.getElementsByTagName("li");
+
+ for (var i = 0; i < items.length; ++i)
+ {
+ var target = items[i];
+
+ if (!this.has_class(target.parentNode, "outline"))
+ continue;
+
+ target.onclick = this.outline_click;
+/* ### more work needed for IE6
+ if (!this.ns_pos)
+ {
+ target.onmouseover = this.hover_outline;
+ target.onmouseout = this.unhover_outline;
+ }
+*/
+ if (this.foldable(target))
+ {
+ target.foldable = true;
+ target.onfocus = function () {w3c_slidy.outline = this;};
+ target.onblur = function () {w3c_slidy.outline = null;};
+
+ if (!target.getAttribute("tabindex"))
+ target.setAttribute("tabindex", "0");
+
+ if (this.has_class(target, "expand"))
+ this.unfold(target);
+ else
+ this.fold(target);
+ }
+ else
+ {
+ this.add_class(target, "nofold");
+ target.visible = true;
+ target.foldable = false;
+ }
+ }
+ },
+
+ foldable: function (item) {
+ if (!item || item.nodeType != 1)
+ return false;
+
+ var node = item.firstChild;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node))
+ return true;
+
+ node = node.nextSibling;
+ }
+
+ return false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ fold: function (item) {
+ if (item)
+ {
+ this.remove_class(item, "unfolded");
+ this.add_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.add_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = false;
+ },
+
+ // ### CHECK ME ### switch to add/remove "hidden" class
+ unfold: function (item) {
+ if (item)
+ {
+ this.add_class(item, "unfolded");
+ this.remove_class(item, "folded");
+ }
+
+ var node = item ? item.firstChild : null;
+
+ while (node)
+ {
+ if (node.nodeType == 1 && this.is_block(node)) // element
+ {
+ w3c_slidy.remove_class(node, "hidden");
+ }
+
+ node = node.nextSibling;
+ }
+
+ item.visible = true;
+ },
+
+ outline_click: function (e) {
+ if (!e)
+ e = window.event;
+
+ var rightclick = false;
+ var target = w3c_slidy.get_target(e);
+
+ while (target && target.visible == undefined)
+ target = target.parentNode;
+
+ if (!target)
+ return true;
+
+ if (e.which)
+ rightclick = (e.which == 3);
+ else if (e.button)
+ rightclick = (e.button == 2);
+
+ if (!rightclick && target.visible != undefined)
+ {
+ if (target.foldable)
+ {
+ if (target.visible)
+ w3c_slidy.fold(target);
+ else
+ w3c_slidy.unfold(target);
+ }
+
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ }
+
+ return false;
+ },
+
+ add_initial_prompt: function () {
+ var prompt = this.create_element("div");
+ prompt.setAttribute("class", "initial_prompt");
+
+ var p1 = this.create_element("p");
+ prompt.appendChild(p1);
+ p1.setAttribute("class", "help");
+
+ if (this.keyboardless)
+ p1.innerHTML = "Tap footer to move to next slide";
+ else
+ p1.innerHTML = "Space or Right Arrow to move to next " +
+ "slide, click help below for more details";
+
+ this.add_listener(prompt, "click", function (e) {
+ document.body.removeChild(prompt);
+ w3c_slidy.stop_propagation(e);
+
+ if (e.cancel != undefined)
+ e.cancel = true;
+
+ if (e.returnValue != undefined)
+ e.returnValue = false;
+
+ return false;
+ });
+
+ document.body.appendChild(prompt);
+ this.initial_prompt = prompt;
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);
+ },
+
+ add_toolbar: function () {
+ var counter, page;
+
+ this.toolbar = this.create_element("div");
+ this.toolbar.setAttribute("class", "toolbar");
+
+ // a reasonably behaved browser
+ if (this.ns_pos || !this.ie6)
+ {
+ var right = this.create_element("div");
+ right.setAttribute("style", "float: right; text-align: right");
+
+ counter = this.create_element("span")
+ counter.innerHTML = "slide".localize() + " n/m";
+ right.appendChild(counter);
+ this.toolbar.appendChild(right);
+
+ var left = this.create_element("div");
+ left.setAttribute("style", "text-align: left");
+
+ // global end of slide indicator
+ this.eos = this.create_element("span");
+ this.eos.innerHTML = "* ";
+ left.appendChild(this.eos);
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ left.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ left.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ left.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ left.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.className = "copyright";
+ span.innerHTML = copyright;
+ left.appendChild(span);
+ }
+
+ this.toolbar.setAttribute("tabindex", "0");
+ this.toolbar.appendChild(left);
+ }
+ else // IE6 so need to work around its poor CSS support
+ {
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
+ this.toolbar.style.zIndex = "200";
+ this.toolbar.style.width = "99.9%";
+ this.toolbar.style.height = "1.2em";
+ this.toolbar.style.top = "auto";
+ this.toolbar.style.bottom = "0";
+ this.toolbar.style.left = "0";
+ this.toolbar.style.right = "0";
+ this.toolbar.style.textAlign = "left";
+ this.toolbar.style.fontSize = "60%";
+ this.toolbar.style.color = "red";
+ this.toolbar.borderWidth = 0;
+ this.toolbar.className = "toolbar";
+ this.toolbar.style.background = "rgb(240,240,240)";
+
+ // would like to have help text left aligned
+ // and page counter right aligned, floating
+ // div's don't work, so instead use nested
+ // absolutely positioned div's.
+
+ var sp = this.create_element("span");
+ sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
+ this.toolbar.appendChild(sp);
+ this.eos = sp; // end of slide indicator
+
+ var help = this.create_element("a");
+ help.setAttribute("href", this.help_page);
+ help.setAttribute("title", this.help_text.localize());
+ help.innerHTML = "help?".localize();
+ this.toolbar.appendChild(help);
+ this.help_anchor = help; // save for focus hack
+
+ var gap1 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap1);
+
+ var contents = this.create_element("a");
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");
+ contents.setAttribute("title", "table of contents".localize());
+ contents.innerHTML = "contents?".localize();
+ this.toolbar.appendChild(contents);
+
+ var gap2 = document.createTextNode(" ");
+ this.toolbar.appendChild(gap2);
+
+ var copyright = this.find_copyright();
+
+ if (copyright)
+ {
+ var span = this.create_element("span");
+ span.innerHTML = copyright;
+ span.style.color = "black";
+ span.style.marginLeft = "0.5em";
+ this.toolbar.appendChild(span);
+ }
+
+ counter = this.create_element("div")
+ counter.style.position = "absolute";
+ counter.style.width = "auto"; //"20%";
+ counter.style.height = "1.2em";
+ counter.style.top = "auto";
+ counter.style.bottom = 0;
+ counter.style.right = "0";
+ counter.style.textAlign = "right";
+ counter.style.color = "red";
+ counter.style.background = "rgb(240,240,240)";
+
+ counter.innerHTML = "slide".localize() + " n/m";
+ this.toolbar.appendChild(counter);
+ }
+
+ // ensure that click isn't passed through to the page
+ this.toolbar.onclick =
+ function (e) {
+ if (!e)
+ e = window.event;
+
+ var target = e.target;
+
+ if (!target && e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target && target.nodeType == 3)
+ target = target.parentNode;
+
+ w3c_slidy.stop_propagation(e);
+
+ if (target && target.nodeName.toLowerCase() != "a")
+ w3c_slidy.mouse_button_click(e);
+ };
+
+ this.slide_number_element = counter;
+ this.set_eos_status(false);
+ document.body.appendChild(this.toolbar);
+ },
+
+ // wysiwyg editors make it hard to use div elements
+ // e.g. amaya loses the div when you copy and paste
+ // this function wraps div elements around implicit
+ // slides which start with an h1 element and continue
+ // up to the next heading or div element
+ wrap_implicit_slides: function () {
+ var i, heading, node, next, div;
+ var headings = document.getElementsByTagName("h1");
+
+ if (!headings)
+ return;
+
+ for (i = 0; i < headings.length; ++i)
+ {
+ heading = headings[i];
+
+ if (heading.parentNode != document.body)
+ continue;
+
+ node = heading.nextSibling;
+
+ div = document.createElement("div");
+ this.add_class(div, "slide");
+ document.body.replaceChild(div, heading);
+ div.appendChild(heading);
+
+ while (node)
+ {
+ if (node.nodeType == 1 && // an element
+ (node.nodeName == "H1" ||
+ node.nodeName == "h1" ||
+ node.nodeName == "DIV" ||
+ node.nodeName == "div"))
+ break;
+
+ next = node.nextSibling;
+ node = document.body.removeChild(node);
+ div.appendChild(node);
+ node = next;
+ }
+ }
+ },
+
+// return new array of all slides
+ collect_slides: function () {
+ var slides = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "slide"))
+ {
+ // add slide to collection
+ slides[slides.length] = div;
+
+ // hide each slide as it is found
+ this.add_class(div, "hidden");
+
+ // add dummy <br/> at end for scrolling hack
+ var node1 = document.createElement("br");
+ div.appendChild(node1);
+ var node2 = document.createElement("br");
+ div.appendChild(node2);
+ }
+ else if (this.has_class(div, "background"))
+ { // work around for Firefox SVG reload bug
+ // which otherwise replaces 1st SVG graphic with 2nd
+ div.style.display = "block";
+ }
+ }
+
+ this.slides = slides;
+ },
+
+ // return new array of all <div class="handout">
+ collect_notes: function () {
+ var notes = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "handout"))
+ {
+ // add note to collection
+ notes[notes.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.notes = notes;
+ },
+
+ // return new array of all <div class="background">
+ // including named backgrounds e.g. class="background titlepage"
+ collect_backgrounds: function () {
+ var backgrounds = new Array();
+ var divs = document.body.getElementsByTagName("div");
+
+ for (var i = 0; i < divs.length; ++i)
+ {
+ div = divs.item(i);
+
+ if (this.has_class(div, "background"))
+ {
+ // add background to collection
+ backgrounds[backgrounds.length] = div;
+
+ // and hide it
+ this.add_class(div, "hidden");
+ }
+ }
+
+ this.backgrounds = backgrounds;
+ },
+
+ // set click handlers on all anchors
+ patch_anchors: function () {
+ var self = w3c_slidy;
+ var handler = function (event) {
+ // compare this.href with location.href
+ // for link to another slide in this doc
+
+ if (self.page_address(this.href) == self.page_address(location.href))
+ {
+ // yes, so find new slide number
+ var newslidenum = self.find_slide_number(this.href);
+
+ if (newslidenum != self.slide_number)
+ {
+ var slide = self.slides[self.slide_number];
+ self.hide_slide(slide);
+ self.slide_number = newslidenum;
+ slide = self.slides[self.slide_number];
+ self.show_slide(slide);
+ self.set_location();
+ }
+ }
+ else if (this.target == null)
+ location.href = this.href;
+
+ this.blur();
+ self.disable_slide_click = true;
+ };
+
+ var anchors = document.body.getElementsByTagName("a");
+
+ for (var i = 0; i < anchors.length; ++i)
+ {
+ if (window.addEventListener)
+ anchors[i].addEventListener("click", handler, false);
+ else
+ anchors[i].attachEvent("onclick", handler);
+ }
+ },
+
+ // ### CHECK ME ### see which functions are invoked via setTimeout
+ // either directly or indirectly for use of w3c_slidy vs this
+ show_slide_number: function () {
+ var timer = w3c_slidy.get_timer();
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
+ },
+
+ // every 200mS check if the location has been changed as a
+ // result of the user activating the Back button/menu item
+ // doesn't work for Opera < 9.5
+ check_location: function () {
+ var hash = location.hash;
+
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
+ w3c_slidy.goto_slide(0);
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
+ {
+ var num = parseInt(location.hash.substr(2));
+
+ if (!isNaN(num))
+ w3c_slidy.goto_slide(num-1);
+ }
+
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
+ {
+ w3c_slidy.show_slide_number();
+
+ if (w3c_slidy.time_left > 0)
+ w3c_slidy.time_left -= 200;
+ }
+ },
+
+ get_timer: function () {
+ var timer = "";
+ if (w3c_slidy.time_left)
+ {
+ var mins, secs;
+ secs = Math.floor(w3c_slidy.time_left/1000);
+ mins = Math.floor(secs / 60);
+ secs = secs % 60;
+ timer = (mins ? mins+"m" : "") + secs + "s ";
+ }
+
+ return timer;
+ },
+
+ // this doesn't push location onto history stack for IE
+ // for which a hidden iframe hack is needed: load page into
+ // the iframe with script that set's parent's location.hash
+ // but that won't work for standalone use unless we can
+ // create the page dynamically via a javascript: URL
+ set_location: function () {
+ var uri = w3c_slidy.page_address(location.href);
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (w3c_slidy.slide_number >= 0)
+ uri = uri + hash;
+
+ if (w3c_slidy.ie && !w3c_slidy.ie8)
+ w3c_slidy.push_hash(hash);
+
+ if (uri != location.href) // && !khtml
+ location.href = uri;
+
+ if (this.khtml)
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";
+
+ if (!this.ie && location.hash != hash && location.hash != "")
+ location.hash = hash;
+
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide_number();
+ },
+
+ page_address: function (uri) {
+ var i = uri.indexOf("#");
+
+ if (i < 0)
+ i = uri.indexOf("%23");
+
+ // check if anchor is entire page
+
+ if (i < 0)
+ return uri; // yes
+
+ return uri.substr(0, i);
+ },
+
+ // only used for IE6 and IE7
+ on_frame_loaded: function (hash) {
+ location.hash = hash;
+ var uri = w3c_slidy.page_address(location.href);
+ location.href = uri + hash;
+ },
+
+ // history hack with thanks to Bertrand Le Roy
+ push_hash: function (hash) {
+ if (hash == "") hash = "#(1)";
+ window.location.hash = hash;
+
+ var doc = document.getElementById("historyFrame").contentWindow.document;
+ doc.open("javascript:'<html></html>'");
+ // PWL modified this string literal to break the close script tag
+ // which otherwise gets parsed when incorporated
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");
+ doc.close();
+ },
+
+ // find current slide based upon location
+ // first find target anchor and then look
+ // for associated div element enclosing it
+ // finally map that to slide number
+ find_slide_number: function (uri) {
+ // first get anchor from page location
+
+ var i = uri.indexOf("#");
+
+ // check if anchor is entire page
+ if (i < 0)
+ return 0; // yes
+
+ var anchor = unescape(uri.substr(i+1));
+
+ // now use anchor as XML ID to find target
+ var target = document.getElementById(anchor);
+
+ if (!target)
+ {
+ // does anchor look like "(2)" for slide 2 ??
+ // where first slide is (1)
+ var re = /\((\d)+\)/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // accept [2] for backwards compatibility
+ re = /\[(\d)+\]/;
+
+ if (anchor.match(re))
+ {
+ var num = parseInt(anchor.substring(1, anchor.length-1));
+
+ if (num > this.slides.length)
+ num = 1;
+
+ if (--num < 0)
+ num = 0;
+
+ return num;
+ }
+
+ // oh dear unknown anchor
+ return 0;
+ }
+
+ // search for enclosing slide
+
+ while (true)
+ {
+ // browser coerces html elements to uppercase!
+ if (target.nodeName.toLowerCase() == "div" &&
+ this.has_class(target, "slide"))
+ {
+ // found the slide element
+ break;
+ }
+
+ // otherwise try parent element if any
+
+ target = target.parentNode;
+
+ if (!target)
+ {
+ return 0; // no luck!
+ }
+ };
+
+ for (i = 0; i < slides.length; ++i)
+ {
+ if (slides[i] == target)
+ return i; // success
+ }
+
+ // oh dear still no luck
+ return 0;
+ },
+
+ previous_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
+ {
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
+ w3c_slidy.set_eos_status(false);
+ }
+ else if (w3c_slidy.slide_number > 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_location();
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ next_slide: function (incremental) {
+ if (!w3c_slidy.view_all)
+ {
+ var slide, last = w3c_slidy.last_shown;
+
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
+
+ if ((!incremental || w3c_slidy.last_shown == null) &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+ else if (!w3c_slidy.last_shown)
+ {
+ if (last && incremental)
+ w3c_slidy.last_shown = last;
+ }
+
+ w3c_slidy.set_location();
+
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+
+ if (!w3c_slidy.ns_pos)
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ // to first slide with nothing revealed
+ // i.e. state at start of presentation
+ first_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ if (w3c_slidy.slide_number != 0)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+
+ w3c_slidy.slide_number = 0;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.show_slide(slide);
+ }
+
+ w3c_slidy.set_eos_status(
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ w3c_slidy.set_location();
+ }
+ },
+
+ // goto last slide with everything revealed
+ // i.e. state at end of presentation
+ last_slide: function () {
+ if (!w3c_slidy.view_all)
+ {
+ var slide;
+
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);
+
+ if (w3c_slidy.last_shown == null &&
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
+ {
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+
+ w3c_slidy.show_slide(slide);
+ }
+ else
+ {
+ w3c_slidy.set_visibility_all_incremental("visible");
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
+ }
+
+ w3c_slidy.set_eos_status(true);
+ w3c_slidy.set_location();
+ }
+ },
+
+
+ // ### check this and consider add/remove class
+ set_eos_status: function (state) {
+ if (this.eos)
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
+ },
+
+ // first slide is 0
+ goto_slide: function (num) {
+ //alert("going to slide " + (num+1));
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.slide_number = num;
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.last_shown = null;
+ w3c_slidy.set_visibility_all_incremental("hidden");
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
+ w3c_slidy.show_slide(slide);
+ w3c_slidy.show_slide_number();
+ },
+
+
+ show_slide: function (slide) {
+ this.sync_background(slide);
+ window.scrollTo(0,0);
+ this.remove_class(slide, "hidden");
+ },
+
+ hide_slide: function (slide) {
+ this.add_class(slide, "hidden");
+ },
+
+ // show just the backgrounds pertinent to this slide
+ // when slide background-color is transparent
+ // this should now work with rgba color values
+ sync_background: function (slide) {
+ var background;
+ var bgColor;
+
+ if (slide.currentStyle)
+ bgColor = slide.currentStyle["backgroundColor"];
+ else if (document.defaultView)
+ {
+ var styles = document.defaultView.getComputedStyle(slide,null);
+
+ if (styles)
+ bgColor = styles.getPropertyValue("background-color");
+ else // broken implementation probably due Safari or Konqueror
+ {
+ //alert("defective implementation of getComputedStyle()");
+ bgColor = "transparent";
+ }
+ }
+ else
+ bgColor == "transparent";
+
+ if (bgColor == "transparent" ||
+ bgColor.indexOf("rgba") >= 0 ||
+ bgColor.indexOf("opacity") >= 0)
+ {
+ var slideClass = this.get_class_list(slide);
+
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+
+ var bgClass = this.get_class_list(background);
+
+ if (this.matching_background(slideClass, bgClass))
+ this.remove_class(background, "hidden");
+ else
+ this.add_class(background, "hidden");
+ }
+ }
+ else // forcibly hide all backgrounds
+ this.hide_backgrounds();
+ },
+
+ hide_backgrounds: function () {
+ for (var i = 0; i < this.backgrounds.length; i++)
+ {
+ background = this.backgrounds[i];
+ this.add_class(background, "hidden");
+ }
+ },
+
+ // compare classes for slide and background
+ matching_background: function (slideClass, bgClass) {
+ var i, count, pattern, result;
+
+ // define pattern as regular expression
+ pattern = /\w+/g;
+
+ // check background class names
+ result = bgClass.match(pattern);
+
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (result[i] == "background")
+ continue;
+
+ ++count;
+ }
+
+ if (count == 0) // default match
+ return true;
+
+ // check for matches and place result in array
+ result = slideClass.match(pattern);
+
+ // now check if desired name is present for background
+ for (i = count = 0; i < result.length; i++)
+ {
+ if (result[i] == "hidden")
+ continue;
+
+ if (this.has_token(bgClass, result[i]))
+ return true;
+ }
+
+ return false;
+ },
+
+ resized: function () {
+ var width = 0;
+
+ if ( typeof( window.innerWidth ) == 'number' )
+ width = window.innerWidth; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientWidth)
+ width = document.documentElement.clientWidth; // IE6
+ else if (document.body && document.body.clientWidth)
+ width = document.body.clientWidth; // IE4
+
+ var height = 0;
+
+ if ( typeof( window.innerHeight ) == 'number' )
+ height = window.innerHeight; // Non IE browser
+ else if (document.documentElement && document.documentElement.clientHeight)
+ height = document.documentElement.clientHeight; // IE6
+ else if (document.body && document.body.clientHeight)
+ height = document.body.clientHeight; // IE4
+
+ if (height && (width/height > 1.05*1024/768))
+ {
+ width = height * 1024.0/768;
+ }
+
+ // IE fires onresize even when only font size is changed!
+ // so we do a check to avoid blocking < and > actions
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
+ {
+ if (width >= 1100)
+ w3c_slidy.size_index = 5; // 4
+ else if (width >= 1000)
+ w3c_slidy.size_index = 4; // 3
+ else if (width >= 800)
+ w3c_slidy.size_index = 3; // 2
+ else if (width >= 600)
+ w3c_slidy.size_index = 2; // 1
+ else if (width)
+ w3c_slidy.size_index = 0;
+
+ // add in font size adjustment from meta element e.g.
+ // <meta name="font-size-adjustment" content="-2" />
+ // useful when slides have too much content ;-)
+
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ w3c_slidy.adjust_object_dimensions(width, height);
+
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
+ {
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ }
+
+ w3c_slidy.last_width = width;
+ w3c_slidy.last_height = height;
+
+ // force reflow to work around Mozilla bug
+ if (w3c_slidy.ns_pos)
+ {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ }
+
+ // force correct positioning of toolbar
+ w3c_slidy.refresh_toolbar(200);
+ }
+ },
+
+ scrolled: function () {
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
+ // hide toolbar
+ w3c_slidy.toolbar.style.display = "none";
+
+ // make it reappear later
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
+ {
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
+ w3c_slidy.scrollhack = 1;
+ }
+ }
+ },
+
+ hide_toolbar: function () {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
+ window.focus();
+ },
+
+ // used to ensure IE refreshes toolbar in correct position
+ refresh_toolbar: function (interval) {
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
+ {
+ w3c_slidy.hide_toolbar();
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
+ }
+ },
+
+ // restores toolbar after short delay
+ show_toolbar: function () {
+ if (w3c_slidy.want_toolbar)
+ {
+ w3c_slidy.toolbar.style.display = "block";
+
+ if (!w3c_slidy.ns_pos)
+ {
+ // adjust position to allow for scrolling
+ var xoffset = w3c_slidy.scroll_x_offset();
+ w3c_slidy.toolbar.style.left = xoffset;
+ w3c_slidy.toolbar.style.right = xoffset;
+
+ // determine vertical scroll offset
+ //var yoffset = scrollYOffset();
+
+ // bottom is doc height - window height - scroll offset
+ //var bottom = documentHeight() - lastHeight - yoffset
+
+ //if (yoffset > 0 || documentHeight() > lastHeight)
+ // bottom += 16; // allow for height of scrollbar
+
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;
+ }
+
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
+ }
+
+ w3c_slidy.scrollhack = 0;
+
+
+ // set the keyboard focus to the help link on the
+ // toolbar to ensure that document has the focus
+ // IE doesn't always work with window.focus()
+ // and this hack has benefit of Enter for help
+
+ try
+ {
+ if (!w3c_slidy.opera)
+ w3c_slidy.help_anchor.focus();
+ }
+ catch (e)
+ {
+ }
+ },
+
+// invoked via F key
+ toggle_toolbar: function () {
+ if (!w3c_slidy.view_all)
+ {
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
+ {
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 1;
+ }
+ else
+ {
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
+ w3c_slidy.want_toolbar = 0;
+ }
+ }
+ },
+
+ scroll_x_offset: function () {
+ if (window.pageXOffset)
+ return self.pageXOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollLeft)
+ return document.documentElement.scrollLeft;
+
+ if (document.body)
+ return document.body.scrollLeft;
+
+ return 0;
+ },
+
+ scroll_y_offset: function () {
+ if (window.pageYOffset)
+ return self.pageYOffset;
+
+ if (document.documentElement &&
+ document.documentElement.scrollTop)
+ return document.documentElement.scrollTop;
+
+ if (document.body)
+ return document.body.scrollTop;
+
+ return 0;
+ },
+
+ // looking for a way to determine height of slide content
+ // the slide itself is set to the height of the window
+ optimize_font_size: function () {
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ //var dh = documentHeight(); //getDocHeight(document);
+ var dh = slide.scrollHeight;
+ var wh = getWindowHeight();
+ var u = 100 * dh / wh;
+
+ alert("window utilization = " + u + "% (doc "
+ + dh + " win " + wh + ")");
+ },
+
+ // from document object
+ get_doc_height: function (doc) {
+ if (!doc)
+ doc = document;
+
+ if (doc && doc.body && doc.body.offsetHeight)
+ return doc.body.offsetHeight; // ns/gecko syntax
+
+ if (doc && doc.body && doc.body.scrollHeight)
+ return doc.body.scrollHeight;
+
+ alert("couldn't determine document height");
+ },
+
+ get_window_height: function () {
+ if ( typeof( window.innerHeight ) == 'number' )
+ return window.innerHeight; // Non IE browser
+
+ if (document.documentElement && document.documentElement.clientHeight)
+ return document.documentElement.clientHeight; // IE6
+
+ if (document.body && document.body.clientHeight)
+ return document.body.clientHeight; // IE4
+ },
+
+ document_height: function () {
+ var sh, oh;
+
+ sh = document.body.scrollHeight;
+ oh = document.body.offsetHeight;
+
+ if (sh && oh)
+ {
+ return (sh > oh ? sh : oh);
+ }
+
+ // no idea!
+ return 0;
+ },
+
+ smaller: function () {
+ if (w3c_slidy.size_index > 0)
+ {
+ --w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ bigger: function () {
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
+ {
+ ++w3c_slidy.size_index;
+ }
+
+ w3c_slidy.toolbar.style.display = "none";
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+ w3c_slidy.hide_slide(slide);
+ w3c_slidy.show_slide(slide);
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
+ },
+
+ // enables cross browser use of relative width/height
+ // on object elements for use with SVG and Flash media
+ // with thanks to Ivan Herman for the suggestion
+ adjust_object_dimensions: function (width, height) {
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )
+ {
+ var obj = this.objects[i];
+ var mimeType = obj.getAttribute("type");
+
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
+ {
+ if ( !obj.initialWidth )
+ obj.initialWidth = obj.getAttribute("width");
+
+ if ( !obj.initialHeight )
+ obj.initialHeight = obj.getAttribute("height");
+
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
+ {
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
+ var newW = width * (w/100.0);
+ obj.setAttribute("width",newW);
+ }
+
+ if ( obj.initialHeight &&
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
+ {
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
+ var newH = height * (h/100.0);
+ obj.setAttribute("height", newH);
+ }
+ }
+ }
+ },
+
+ // needed for Opera to inhibit default behavior
+ // since Opera delivers keyPress even if keyDown
+ // was cancelled
+ key_press: function (event) {
+ if (!event)
+ event = window.event;
+
+ if (!w3c_slidy.key_wanted)
+ return w3c_slidy.cancel(event);
+
+ return true;
+ },
+
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
+ key_down: function (event) {
+ var key;
+
+ w3c_slidy.key_wanted = true;
+
+ if (!event)
+ event = window.event;
+
+ // kludge around NS/IE differences
+ if (window.event)
+ key = window.event.keyCode;
+ else if (event.which)
+ key = event.which;
+ else
+ return true; // Yikes! unknown browser
+
+ // ignore event if key value is zero
+ // as for alt on Opera and Konqueror
+ if (!key)
+ return true;
+
+ // check for concurrent control/command/alt key
+ // but are these only present on mouse events?
+
+ if (event.ctrlKey || event.altKey || event.metaKey)
+ return true;
+
+ // dismiss table of contents if visible
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
+ {
+ w3c_slidy.hide_table_of_contents();
+
+ if (key == 27 || key == 84 || key == 67)
+ return w3c_slidy.cancel(event);
+ }
+
+ if (key == 34) // Page Down
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.next_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 33) // Page Up
+ {
+ if (w3c_slidy.view_all)
+ return true;
+
+ w3c_slidy.previous_slide(false);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 32) // space bar
+ {
+ w3c_slidy.next_slide(true);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 37) // Left arrow
+ {
+ w3c_slidy.previous_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 36) // Home
+ {
+ w3c_slidy.first_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 35) // End
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 39) // Right arrow
+ {
+ w3c_slidy.next_slide(!event.shiftKey);
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 13) // Enter
+ {
+ if (w3c_slidy.outline)
+ {
+ if (w3c_slidy.outline.visible)
+ w3c_slidy.fold(w3c_slidy.outline);
+ else
+ w3c_slidy.unfold(w3c_slidy.outline);
+
+ return w3c_slidy.cancel(event);
+ }
+ }
+ else if (key == 188) // < for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 190) // > for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 189 || key == 109) // - for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 83) // S for smaller fonts
+ {
+ w3c_slidy.smaller();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 66) // B for larger fonts
+ {
+ w3c_slidy.bigger();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 90) // Z for last slide
+ {
+ w3c_slidy.last_slide();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 70) // F for toggle toolbar
+ {
+ w3c_slidy.toggle_toolbar();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 65) // A for toggle view single/all slides
+ {
+ w3c_slidy.toggle_view();
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 75) // toggle action of left click for next page
+ {
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?
+ "enabled" : "disabled") + " mouse click advance";
+
+ alert(alert_msg.localize());
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 84 || key == 67) // T or C for table of contents
+ {
+ if (w3c_slidy.toc)
+ w3c_slidy.toggle_table_of_contents();
+
+ return w3c_slidy.cancel(event);
+ }
+ else if (key == 72) // H for help
+ {
+ window.location = w3c_slidy.help_page;
+ return w3c_slidy.cancel(event);
+ }
+ //else alert("key code is "+ key);
+
+ return true;
+ },
+
+ // safe for both text/html and application/xhtml+xml
+ create_element: function (name) {
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)
+
+ return document.createElement(name);
+ },
+
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
+ if (elem.currentStyle)
+ {
+ return elem.currentStyle[IEStyleProp];
+ }
+ else if (window.getComputedStyle)
+ {
+ var compStyle = window.getComputedStyle(elem, "");
+ return compStyle.getPropertyValue(CSSStyleProp);
+ }
+ return "";
+ },
+
+ // the string str is a whitespace separated list of tokens
+ // test if str contains a particular token, e.g. "slide"
+ has_token: function (str, token) {
+ if (str)
+ {
+ // define pattern as regular expression
+ var pattern = /\w+/g;
+
+ // check for matches
+ // place result in array
+ var result = str.match(pattern);
+
+ // now check if desired token is present
+ for (var i = 0; i < result.length; i++)
+ {
+ if (result[i] == token)
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ get_class_list: function (element) {
+ if (typeof element.className != 'undefined')
+ return element.className;
+
+ return element.getAttribute("class");
+ },
+
+ has_class: function (element, name) {
+ if (element.nodeType != 1)
+ return false;
+
+ var regexp = new RegExp("(^| )" + name + "\W*");
+
+ if (typeof element.className != 'undefined')
+ return regexp.test(element.className);
+
+ return regexp.test(element.getAttribute("class"));
+ },
+
+ remove_class: function (element, name) {
+ var regexp = new RegExp("(^| )" + name + "\W*");
+ var clsval = "";
+
+ if (typeof element.className != 'undefined')
+ {
+ clsval = element.className;
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.className = clsval;
+ }
+ }
+ else
+ {
+ clsval = element.getAttribute("class");
+
+ if (clsval)
+ {
+ clsval = clsval.replace(regexp, "");
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ add_class: function (element, name) {
+ if (!this.has_class(element, name))
+ {
+ if (typeof element.className != 'undefined')
+ element.className += " " + name;
+ else
+ {
+ var clsval = element.getAttribute("class");
+ clsval = clsval ? clsval + " " + name : name;
+ element.setAttribute("class", clsval);
+ }
+ }
+ },
+
+ // HTML elements that can be used with class="incremental"
+ // note that you can also put the class on containers like
+ // up, ol, dl, and div to make their contents appear
+ // incrementally. Upper case is used since this is what
+ // browsers report for HTML node names (text/html).
+ incremental_elements: null,
+ okay_for_incremental: function (name) {
+ if (!this.incremental_elements)
+ {
+ var inclist = new Array();
+ inclist["p"] = true;
+ inclist["pre"] = true;
+ inclist["li"] = true;
+ inclist["blockquote"] = true;
+ inclist["dt"] = true;
+ inclist["dd"] = true;
+ inclist["h2"] = true;
+ inclist["h3"] = true;
+ inclist["h4"] = true;
+ inclist["h5"] = true;
+ inclist["h6"] = true;
+ inclist["span"] = true;
+ inclist["address"] = true;
+ inclist["table"] = true;
+ inclist["tr"] = true;
+ inclist["th"] = true;
+ inclist["td"] = true;
+ inclist["img"] = true;
+ inclist["object"] = true;
+ this.incremental_elements = inclist;
+ }
+ return this.incremental_elements[name.toLowerCase()];
+ },
+
+ next_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.next_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1) // ELEMENT
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ previous_incremental_item: function (node) {
+ var br = this.is_xhtml ? "br" : "BR";
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];
+
+ for (;;)
+ {
+ node = w3c_slidy.previous_node(slide, node);
+
+ if (node == null || node.parentNode == null)
+ break;
+
+ if (node.nodeType == 1)
+ {
+ if (node.nodeName == br)
+ continue;
+
+ if (w3c_slidy.has_class(node, "incremental")
+ && w3c_slidy.okay_for_incremental(node.nodeName))
+ return node;
+
+ if (w3c_slidy.has_class(node.parentNode, "incremental")
+ && !w3c_slidy.has_class(node, "non-incremental"))
+ return node;
+ }
+ }
+
+ return node;
+ },
+
+ // set visibility for all elements on current slide with
+ // a parent element with attribute class="incremental"
+ set_visibility_all_incremental: function (value) {
+ var node = this.next_incremental_item(null);
+
+ if (value == "hidden")
+ {
+ while (node)
+ {
+ w3c_slidy.add_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ else // value == "visible"
+ {
+ while (node)
+ {
+ w3c_slidy.remove_class(node, "invisible");
+ node = w3c_slidy.next_incremental_item(node);
+ }
+ }
+ },
+
+ // reveal the next hidden item on the slide
+ // node is null or the node that was last revealed
+ reveal_next_item: function (node) {
+ node = w3c_slidy.next_incremental_item(node);
+
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.remove_class(node, "invisible");
+
+ return node;
+ },
+
+ // exact inverse of revealNextItem(node)
+ hide_previous_item: function (node) {
+ if (node && node.nodeType == 1) // an element
+ w3c_slidy.add_class(node, "invisible");
+
+ return this.previous_incremental_item(node);
+ },
+
+ // left to right traversal of root's content
+ next_node: function (root, node) {
+ if (node == null)
+ return root.firstChild;
+
+ if (node.firstChild)
+ return node.firstChild;
+
+ if (node.nextSibling)
+ return node.nextSibling;
+
+ for (;;)
+ {
+ node = node.parentNode;
+
+ if (!node || node == root)
+ break;
+
+ if (node && node.nextSibling)
+ return node.nextSibling;
+ }
+
+ return null;
+ },
+
+ // right to left traversal of root's content
+ previous_node: function (root, node) {
+ if (node == null)
+ {
+ node = root.lastChild;
+
+ if (node)
+ {
+ while (node.lastChild)
+ node = node.lastChild;
+ }
+
+ return node;
+ }
+
+ if (node.previousSibling)
+ {
+ node = node.previousSibling;
+
+ while (node.lastChild)
+ node = node.lastChild;
+
+ return node;
+ }
+
+ if (node.parentNode != root)
+ return node.parentNode;
+
+ return null;
+ },
+
+ previous_sibling_element: function (el) {
+ el = el.previousSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.previousSibling;
+
+ return el;
+ },
+
+ next_sibling_element: function (el) {
+ el = el.nextSibling;
+
+ while (el && el.nodeType != 1)
+ el = el.nextSibling;
+
+ return el;
+ },
+
+ first_child_element: function (el) {
+ var node;
+
+ for (node = el.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1)
+ break;
+ }
+
+ return node;
+ },
+
+ first_tag: function (element, tag) {
+ var node;
+
+ if (!this.is_xhtml)
+ tag = tag.toUpperCase();
+
+ for (node = element.firstChild; node; node = node.nextSibling)
+ {
+ if (node.nodeType == 1 && node.nodeName == tag)
+ break;
+ }
+
+ return node;
+ },
+
+ hide_selection: function () {
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera
+ {
+ var selection = window.getSelection();
+
+ if (selection.rangeCount > 0)
+ {
+ var range = selection.getRangeAt(0);
+ range.collapse (false);
+ }
+ }
+ else // Internet Explorer
+ {
+ var textRange = document.selection.createRange ();
+ textRange.collapse (false);
+ }
+ },
+
+ get_selected_text: function () {
+ try
+ {
+ if (window.getSelection)
+ return window.getSelection().toString();
+
+ if (document.getSelection)
+ return document.getSelection().toString();
+
+ if (document.selection)
+ return document.selection.createRange().text;
+ }
+ catch (e)
+ {
+ }
+
+ return "";
+ },
+
+ // make note of length of selected text
+ // as this evaluates to zero in click event
+ mouse_button_up: function (e) {
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
+ },
+
+ // right mouse button click is reserved for context menus
+ // it is more reliable to detect rightclick than leftclick
+ mouse_button_click: function (e) {
+ var rightclick = false;
+ var leftclick = false;
+ var middleclick = false;
+ var target;
+
+ if (!e)
+ var e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ // work around Safari bug
+ if (target.nodeType == 3)
+ target = target.parentNode;
+
+ if (e.which) // all browsers except IE
+ {
+ leftclick = (e.which == 1);
+ middleclick = (e.which == 2);
+ rightclick = (e.which == 3);
+ }
+ else if (e.button)
+ {
+ // Konqueror gives 1 for left, 4 for middle
+ // IE6 gives 0 for left and not 1 as I expected
+
+ if (e.button == 4)
+ middleclick = true;
+
+ // all browsers agree on 2 for right button
+ rightclick = (e.button == 2);
+ }
+ else leftclick = true;
+/*
+ alert("you clicked over a " + target.nodeName + " element\n" +
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +
+ "leftclick = " + leftclick + "\n" +
+ "selected text length = " + w3c_slidy.selected_text_len);
+ //alert("selected text length = " + w3c_slidy.selected_text_len);
+*/
+ if (w3c_slidy.selected_text_len > 0)
+ {
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+
+ // dismiss table of contents
+ w3c_slidy.hide_table_of_contents();
+
+ // check if target is something that probably want's clicks
+ // e.g. a, embed, object, input, textarea, select, option
+ var tag = target.nodeName.toLowerCase();
+
+ if (w3c_slidy.mouse_click_enabled && leftclick &&
+ tag != "a" &&
+ tag != "embed" &&
+ tag != "object" &&
+ tag != "video" &&
+ tag != "input" &&
+ tag != "textarea" &&
+ tag != "select" &&
+ tag != "option" &&
+ !target.onclick)
+ {
+ w3c_slidy.next_slide(true);
+ w3c_slidy.stop_propagation(e);
+ e.cancel = true;
+ e.returnValue = false;
+ return false;
+ }
+ },
+
+ get_key: function (e)
+ {
+ var key;
+
+ // kludge around NS/IE differences
+ if (typeof window.event != "undefined")
+ key = window.event.keyCode;
+ else if (e.which)
+ key = e.which;
+
+ return key;
+ },
+
+ get_target: function (e) {
+ var target;
+
+ if (!e)
+ e = window.event;
+
+ if (e.target)
+ target = e.target;
+ else if (e.srcElement)
+ target = e.srcElement;
+
+ if (target.nodeType != 1)
+ target = target.parentNode;
+
+ return target;
+ },
+
+ // does display property provide correct defaults?
+ is_block: function (elem) {
+ var tag = elem.nodeName.toLowerCase();
+
+ return tag == "ol" || tag == "ul" || tag == "p" ||
+ tag == "li" || tag == "table" || tag == "pre" ||
+ tag == "h1" || tag == "h2" || tag == "h3" ||
+ tag == "h4" || tag == "h5" || tag == "h6" ||
+ tag == "blockquote" || tag == "address";
+ },
+
+ add_listener: function (element, event, handler) {
+ if (window.addEventListener)
+ element.addEventListener(event, handler, false);
+ else
+ element.attachEvent("on"+event, handler);
+ },
+
+ // used to prevent event propagation from field controls
+ stop_propagation: function (event) {
+ event = event ? event : window.event;
+ event.cancelBubble = true; // for IE
+
+ if (event.stopPropagation)
+ event.stopPropagation();
+
+ return true;
+ },
+
+ cancel: function (event) {
+ if (event)
+ {
+ event.cancel = true;
+ event.returnValue = false;
+
+ if (event.preventDefault)
+ event.preventDefault();
+ }
+
+ w3c_slidy.key_wanted = false;
+ return false;
+ }
+};
+
+// for each language define an associative array
+// and also the help text which is longer
+
+var w3c_slidy_i18n = {
+ strings_es: {
+ "slide":"pág.",
+ "help?":"Ayuda",
+ "contents?":"Índice",
+ "table of contents":"tabla de contenidos",
+ "Table of Contents":"Tabla de Contenidos",
+ "restart presentation":"Reiniciar presentación",
+ "restart?":"Inicio"
+ },
+ help_es:
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
+
+ strings_ca: {
+ "slide":"pàg..",
+ "help?":"Ajuda",
+ "contents?":"Índex",
+ "table of contents":"taula de continguts",
+ "Table of Contents":"Taula de Continguts",
+ "restart presentation":"Reiniciar presentació",
+ "restart?":"Inici"
+ },
+ help_ca:
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
+
+ strings_cs: {
+ "slide":"snímek",
+ "help?":"nápověda",
+ "contents?":"obsah",
+ "table of contents":"obsah prezentace",
+ "Table of Contents":"Obsah prezentace",
+ "restart presentation":"znovu spustit prezentaci",
+ "restart?":"restart"
+ },
+ help_cs:
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
+ "dá zvětšit a zmenšit pomocí kláves B a S.",
+
+ strings_nl: {
+ "slide":"pagina",
+ "help?":"Help?",
+ "contents?":"Inhoud?",
+ "table of contents":"inhoudsopgave",
+ "Table of Contents":"Inhoudsopgave",
+ "restart presentation":"herstart presentatie",
+ "restart?":"Herstart?"
+ },
+ help_nl:
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
+
+ strings_de: {
+ "slide":"Seite",
+ "help?":"Hilfe",
+ "contents?":"Übersicht",
+ "table of contents":"Inhaltsverzeichnis",
+ "Table of Contents":"Inhaltsverzeichnis",
+ "restart presentation":"Präsentation neu starten",
+ "restart?":"Neustart"
+ },
+ help_de:
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
+
+ strings_pl: {
+ "slide":"slajd",
+ "help?":"pomoc?",
+ "contents?":"spis treści?",
+ "table of contents":"spis treści",
+ "Table of Contents":"Spis Treści",
+ "restart presentation":"Restartuj prezentację",
+ "restart?":"restart?"
+ },
+ help_pl:
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
+
+ strings_fr: {
+ "slide":"page",
+ "help?":"Aide",
+ "contents?":"Index",
+ "table of contents":"table des matières",
+ "Table of Contents":"Table des matières",
+ "restart presentation":"Recommencer l'exposé",
+ "restart?":"Début"
+ },
+ help_fr:
+ "Naviguez avec la souris, la barre d'espace, les flèches " +
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
+ "les touches S et B pour modifier la taille de la police.",
+
+ strings_hu: {
+ "slide":"oldal",
+ "help?":"segítség",
+ "contents?":"tartalom",
+ "table of contents":"tartalomjegyzék",
+ "Table of Contents":"Tartalomjegyzék",
+ "restart presentation":"bemutató újraindítása",
+ "restart?":"újraindítás"
+ },
+ help_hu:
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
+ "a szöveg méretét.",
+
+ strings_it: {
+ "slide":"pag.",
+ "help?":"Aiuto",
+ "contents?":"Indice",
+ "table of contents":"indice",
+ "Table of Contents":"Indice",
+ "restart presentation":"Ricominciare la presentazione",
+ "restart?":"Inizio"
+ },
+ help_it:
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
+
+ strings_el: {
+ "slide":"σελίδα",
+ "help?":"βοήθεια;",
+ "contents?":"περιεχόμενα;",
+ "table of contents":"πίνακας περιεχομένων",
+ "Table of Contents":"Πίνακας Περιεχομένων",
+ "restart presentation":"επανεκκίνηση παρουσίασης",
+ "restart?":"επανεκκίνηση;"
+ },
+ help_el:
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
+ "το μέγεθος της γραμματοσειράς.",
+
+ strings_ja: {
+ "slide":"スライド",
+ "help?":"ヘルプ",
+ "contents?":"目次",
+ "table of contents":"目次を表示",
+ "Table of Contents":"目次",
+ "restart presentation":"最初から再生",
+ "restart?":"最初から"
+ },
+ help_ja:
+ "マウス左クリック ・ スペース ・ 左右キー " +
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
+
+ strings_zh: {
+ "slide":"幻灯片",
+ "help?":"帮助?",
+ "contents?":"内容?",
+ "table of contents":"目录",
+ "Table of Contents":"目录",
+ "restart presentation":"重新启动展示",
+ "restart?":"重新启动?"
+ },
+ help_zh:
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
+ "用 S, B 改变字体大小.",
+
+ strings_ru: {
+ "slide":"слайд",
+ "help?":"помощь?",
+ "contents?":"содержание?",
+ "table of contents":"оглавление",
+ "Table of Contents":"Оглавление",
+ "restart presentation":"перезапустить презентацию",
+ "restart?":"перезапуск?"
+ },
+ help_ru:
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
+
+ strings_sv: {
+ "slide":"sida",
+ "help?":"hjälp",
+ "contents?":"innehåll",
+ "table of contents":"innehållsförteckning",
+ "Table of Contents":"Innehållsförteckning",
+ "restart presentation":"visa presentationen från början",
+ "restart?":"börja om"
+ },
+ help_sv:
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
+ "Använd tangenterna S och B för att ändra textens storlek.",
+
+// each such language array is declared in the localize array
+// which is set on string prototype and used as in "foo".localize();
+ localize: {
+ "es":this.strings_es,
+ "ca":this.strings_ca,
+ "cs":this.strings_cs,
+ "nl":this.strings_nl,
+ "de":this.strings_de,
+ "pl":this.strings_pl,
+ "fr":this.strings_fr,
+ "hu":this.strings_hu,
+ "it":this.strings_it,
+ "el":this.strings_el,
+ "jp":this.strings_ja,
+ "zh":this.strings_zh,
+ "ru":this.strings_ru,
+ "sv":this.strings_sv
+ },
+
+ init: function () {
+ var i18n = w3c_slidy_i18n;
+ var help_text = w3c_slidy.help_text;
+ i18n.strings_es[help_text] = i18n.help_es;
+ i18n.strings_ca[help_text] = i18n.help_ca;
+ i18n.strings_cs[help_text] = i18n.help_cs;
+ i18n.strings_nl[help_text] = i18n.help_nl;
+ i18n.strings_de[help_text] = i18n.help_de;
+ i18n.strings_pl[help_text] = i18n.help_pl;
+ i18n.strings_fr[help_text] = i18n.help_fr;
+ i18n.strings_hu[help_text] = i18n.help_hu;
+ i18n.strings_it[help_text] = i18n.help_it;
+ i18n.strings_el[help_text] = i18n.help_el;
+ i18n.strings_ja[help_text] = i18n.help_ja;
+ i18n.strings_zh[help_text] = i18n.help_zh;
+ i18n.strings_ru[help_text] = i18n.help_ru;
+ i18n.strings_sv[help_text] = i18n.help_sv;
+
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
+
+ if (!w3c_slidy.lang)
+ w3c_slidy.lang = "en";
+
+ // add localize method to all strings
+ // for use as in "contents".localize()
+ String.prototype.localize = function() {
+ if (this == "")
+ return this;
+
+ // try full language code, e.g. en-US
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+
+ // strip country code suffix, e.g.
+ // try en if undefined for en-US
+ var lg = w3c_slidy.lang.split("-");
+
+ if (lg.length > 1)
+ {
+ lookup = w3c_slidy_i18n.localize[lg[0]];
+
+ if (lookup)
+ {
+ s = lookup[this];
+
+ if (s)
+ return s;
+ }
+ }
+
+ // otherwise string as is
+ return this;
+ };
+ }
+};
+
+// hack for back button behavior
+if (w3c_slidy.ie6 || w3c_slidy.ie7)
+{
+ document.write("<iframe id='historyFrame' " +
+ "src='javascript:\"<html"+"></"+"html>\"' " +
+ "height='1' width='1' " +
+ "style='position:absolute;left:-800px'></iframe>");
+}
+
+// attach event listeners for initialization
+w3c_slidy.set_up();
+
+// hide the slides as soon as body element is available
+// to reduce annoying screen mess before the onload event
+setTimeout(w3c_slidy.hide_slides, 50);
+
+/*]]>*/
+</script>
+</head>
+<body class="article" style="max-width:45em">
+<div id="header" class="slide">
+<h1>Slidy Example Slideshow</h1>
+<span id="author">Joe Bloggs</span><br />
+</div>
+<div id="preamble" class="slide">
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>This preamble will appear on a separate slide.</p></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_asciidoc_elements">AsciiDoc Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>Sagittis in vestibulum. Habitasse ante nulla enim bibendum nulla. Odio
+sed pede litora.</p></div>
+<h3 id="_titles_inside_delimited_blocks_must_be_floated" class="float">Titles inside delimited blocks must be floated</h3>
+<div class="paragraph"><p>Porta nisl metus. Justo porttitor vel. Cras consequat tincidunt id sed
+conubia. Feugiat felis justo. Nunc amet nulla. Eu ac orci mollis.</p></div>
+<div class="imageblock">
+<div class="content">
+<img alt="images/tiger.png"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
+JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
+pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
+nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
+fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
+rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
+O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
+8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
+CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
+tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
+MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
+uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
+ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
+kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
+jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
+Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
+0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
+0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
+vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
+9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
+w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
++33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
+cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
+8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
+26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
+jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
+7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
+RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
+qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
+42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
+4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
+NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
+vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
+P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
+r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
+DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
+w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
+dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
+O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
+PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
+Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
+2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
+NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
+hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
+JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
+fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
+889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
+N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
+BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
+W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
+beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
+P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
+3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
+R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
+KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
+rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
+B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
+Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
+P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
+x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
+o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
+l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
+cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
+/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
+E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
+fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
+XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
+XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
+K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
+fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
+Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
+zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
+E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
+gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
+Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
+zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
+lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
++OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
+wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
+VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
+XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
+/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
+aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
+fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
+Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
+l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
+8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
+7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
+0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
+epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
+vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
+d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
+vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
+u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
+axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
+AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
+q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
+6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
+/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
+ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
+Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
+Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
+cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
+JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
+c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
+Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
+0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
+9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
+wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
+8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
+cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
+WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
+n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
+ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
+m2i9J54AAAAASUVORK5CYII=" />
+</div>
+<div class="title">Figure 1. Tiger</div>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_incremental_elements">Incremental Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>The remaining elements on this page are incremental, press the space
+bar to reveal them.</p></div>
+<ul class=" incremental">
+<li>
+<span>
+Rhoncus pede justo.
+</span>
+</li>
+<li>
+<span>
+Velit pede dolor.
+</span>
+</li>
+<li>
+<span>
+Iaculis commodo et.
+</span>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+</li>
+</ul>
+<div class="openblock incremental">
+<div class="content">
+<div class="paragraph"><p>Sagittis in vestibulum. Habitasse ante nulla enim bibendum nulla. Odio
+sed pede litora.</p></div>
+</div></div>
+<ol class="arabic incremental">
+<li>
+<span>
+Rhoncus pede justo.
+</span>
+</li>
+<li>
+<span>
+Velit pede dolor.
+</span>
+</li>
+<li>
+<span>
+Iaculis commodo et.
+</span>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_outline_elements">Outline Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>The following list is a Slidy <em>outline</em> list&#8201;&#8212;&#8201;nested bulleted or
+numbered lists are expanded when the enclosing list item (the ones
+with blue bullet points or numbers) are clicked.</p></div>
+<ul class=" outline">
+<li>
+<span>
+Rhoncus pede justo.
+</span>
+<ul class="">
+<li>
+<span>
+Rhoncus pede justo.
+</span>
+</li>
+<li>
+<span>
+Velit pede dolor.
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+Velit pede dolor.
+</span>
+<ul class="">
+<li>
+<span>
+Iaculis commodo et.
+</span>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img alt="Note" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
+m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
+CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
+BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
+Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
+vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
+oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
+/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
+Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
+bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
+0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
+rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
+X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
+NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
+cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
+KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
+S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
+UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
+XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
+4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
+nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
+iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
+/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
+qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
+uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
+bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
+NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
+PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
+0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
+1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
+i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
+UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
+4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
+Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
+NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
+ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
+AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
+IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
+W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
+o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
+GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
+lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
+zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
+PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
+</td>
+<td class="content"><em>Note</em> admonition paragraph.</td>
+</tr></table>
+</div>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+<div class="imageblock">
+<div class="content">
+<img alt="images/tiger.png"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAAP4AAAEDCAMAAAAiM0kQAAAAdVBMVEUAAAAwMDBIAABgZGBgmACY
+JACYmJiYzDCgGCCgJEiwMFiwZGCwsLDIPEjIcCDIzMjgZIjgmJjg5LDofDjojEjojFDolFjomGDo
+pHDoqHjwsIjwuJDwvJjwxKjwzLD4cHj42MD43Mj44ND45ND48Oj4/Mj4/PhwEGyGAAAYuUlEQVR4
+nO2diXrbuBGA0WzcJm1NZldOLMuyoo1kvP8jlrjnBECRstI4820smgSB+WcGg4OU19h3LebWCtxW
+fuO/Z/mN/57lN/57lt/471l+479n+Y3/nuU3/nuW3/g3FxNFv2L0IgubXrvCea3reOzSVWxwO3yd
+rUK+tgFuhd9GpDIMVzDATfAluB5+J+vyvz2+Cgbh4BVecD0DvC1+w7OIdRhEq8BTKyi0vIrupjpC
+O5MOVORY6WmwWmRVwmpLLQGUIu5cA6TSVaXWpmzoAgkEA1SNQ01VN8BU6p8/Cz5lkxOdEguyceoG
+8NzjT4Kv4akWkIcCck4dLxL1mI9uiV8nbPAP/fcgdPuz4CPdJcoKB0v9HQYoLf8M+IRDIqw5chiI
+CVr8oOnb4xeGGmNVlAgw4kwZNX5z/KztxfCiCcKnVOnPhG/4CLdCHOTfWvQd077r4VN1g8Maqas3
+tWvys+DjFIWt0GeBVkps098MHzueh38dDiV7uZhyHmvxx43wqecVRJW/bQB9pgfVuA0+pL+0HzcM
+MAe/qurV8GUt5xpDNoBmVKRGR+xfAx/QazRLDaDVgPW4CX6i5w7rS+ncaPwupYZ/QD16nH8lfBSe
+uBv3bOlq/KBK+U6kxw3wjaH01fyt4MsLwwFV2sLvcv7q+AOmr7tcuSScpeHTxhdOXR2f0LfCXY0K
+ecMf8Dfx+5x/BfysW7urayVQN+f8Ov5YNLkRvkFxX4M3PKYFfM4ff6vydzp/XXyyVd+T5AfRAuhe
+kkaq+H/Mo78Cfj+7YAERf8Dlavj/GCH92+JD+l54xQBkiQiLGV4C8v8xSTf96vh1+I41Pl8mDpi/
+jo/kzfHretUMg/lBSdwn6ntdc+lXxA/gEqEbDpj2FQMY7GjZFG3+LqVXox/8oEeClhFVTACvk45w
+Ef+b43NQylPDN7w4Y8a3V/n7tF6XHnsxQQzsHPe4LIwZW6/C36n2qvgSkXDu6enJq/jVSxOfzqbA
+0K/y96q9Jn7yTp3+6Wkq/1IEmICVZcytTcB59Gvhq0lPoP+Bbw0mkEvjCgV8Zb00vHHws3mKRv81
+0Yf3N7MJvkp8tEbB/wJ6vPCm+LIODP/rjx+ofLr/h+cnt7M6hQb0fZG3m/bEDMSjk/ye4IG5Cn8H
+vsRvQNPzDbAGvnmeanl+fha7LqLPdzB8++Ophk93RqQ2pItvgg+goFoER/A99A93P49qDoiEG+At
+9vqeGT4MSE6PbJB/z+43FKbu/jp/IwDWeS92ojAFPyqA/V+Snk3MJARepGFe5ZcNMJd/Bfxnx0Hw
+w0fRZ/j6kge8zF9Q/K+T+6HuLXxpCiB2j+s+4c3OT/hFfaDvC+j3Cr59GiA/xZeCQnF9P/86+Dbi
++33erAxSLBfviP4afqX73wLfDJ4m4pNQBL+VG4yNwIS+5H4Zv9375/Mvx8/ZDDbJtKP4gd9Cejz0
+cXo+IiznXwHflK6MFYERIOJbcBQzRwd+D/9Atlg0zJW8D+lLAgb85kXCRwcRX3IkdaZ2QZ8YKZzL
+8I2B9CXjm7ATATIAwC/UJh7MRKyNfhr/FfDDrCatXYHzEzsIwYxvktUyfkHxvZ+hCL934PfxL8L/
+26k+YvzInfAz/wu8EfZ8gELxdcfq+Br/6vhmCPgjSvsAPeYwhm9why/0FvHX4lqnVy0jki7B/zsQ
+jNGHkB4GPuUH9Gzt59Y9GUMBq/m4dklCXYA/pPtHm1vL1GzoyfgJ1cSggfQAX1AfQqGwkfGZWa6A
+7/vxWLw/gKAV8QFrCYQiT/leBZ+6mKMqRhH5L8bHGPPwEX1cL2F8MXjhKRXfkDCBd6yGT2J2BPhQ
+RQlftGJW7QmwcXoZn5YTjTeUldZifGT5fIbi49wddvqEF09RF1CxyCmVXt8QW63vGypkn0/Hb7x4
+qUW0NgMSvWzirOtq+P5GV+Oz0/ijA/iWFEETV4pfffFwpEblLhXwBUy0dqjzL8Mf3EbXx48OX24R
+42N6mD1Hxi7Bcnto474waRL5F+Nbh//R4Q9pvFfxgUTcMUgKgycZXw+HCv9V8U3B/5eTb3cqt4CP
+4EH8P2E0nV5PfaaCz/kX4n97vgB/xLNdsP6ReUVOnd/McP9C/OHb34H/W4u+4Ps54sePLmUUxxNe
+NMwrlAq/2ick/mX4xq/6JvrnJn3Gd9H+0Yv9F8J/AbjDsIFbRXXvk8Gmxr8efpRv/inHczP2C370
+vO8zJfLhfsl0tHl42IB5dLf7jfQKuM5/6aQX+OR5kjZ9wh8DuEkfxZgQa9g8Pm6p+3vw4+297l+A
+P5QO2kEf8cfAbRA+VDbybDbbnTGmmuLEC/FEp/s78MWVEmqthz7P+VPUl+Dn9A5/5/C3D4qTEb+A
+r07CZuOLKyXY3t1dt/dNcnsUtlwAsPuDMbttDz4PfpWfLrk68AUDoGVdP75h+Ljfh0V5cP/ucDwe
+DvttD77ML+ITji58xg+r7qPPmR/y5+2upHl53jHsjsfTeTJAFz64KhVV+S/Dx/Q98JONsvcNo/cK
+w7ngdMdmfzqf7WQAilmi+83w6VIVcFWAkfgVn5OXl6jvi3kpquKJsDuzO55dY+djPqumCeH8QnxD
+dybwtQKpkX/wkumn4BeclM54NJLLN/tzbi6ibzYQpIqv8fd7nyzPEX4UgR6RFwMMX5lSQHdpo2ez
+O2c/hLP73TQX1PA3URr4mL8e/PitBGYA7vuIDs7fJQNo07DsWurJzeM+NJtPH/b7x8dkgA25xzw8
+PHrZwEoW4cPr+LYhTPYwvkdn7d1FfgHbgMkzi+PN4y7tg8bzUx7c7yYD+KsP9K5dElzNIvxSgLjf
+Jz2EJKFH/g8EH6rHXJ/UDl4EwWZcHtx7A0xBzvDNfr8/OKnzz8Q39KDQd831B98lEL+xKFENA0l6
+2UT71PsT/mSAqQfsDJfIfnTCK9P42wNf4Uf4hBz8Cke7dCqkwIwFZ3myik4ed/sjdL7Jh8Je+zHI
+NFc4g6FyI9U9C99y/Dsp4xf4D0hC0bucD5HrrUjvu/y05N3tifuLsAA4TeLQnbvO5fSGG6CBzya4
+hn7qUe/h8ak0CEZ++DhQpg9zgM3D4zbhswfB5+NxT/GztlgeyVyhhY/agdzh486nfAWfwcce4APC
+JQBPnKJfpA/wjj7hE/RsAIxJ9c9hsnsE/L75uvdTJaCMyfhhba/gQ3jaB2JP8GheL5E+wg9uDN86
+fBPHPsYPIxxdou4/7HZwrkQGcAXfwk5gMn6NfgLOx3DuAw1hwnuvYNCS4QM9QOP4mF/FP59Oh902
+889Y8BJ+p5xHUn1fguDDAI7Lb8ZMx0lfqGTyzJSqHjz8Y7xwRPN+qp9Aj+ud+M6TAfY5AGat90vS
+N+FnxfkfAH2JB5QLPKYLATbVmaYx/qOwuxL7wzSQ6fgsI3J8r/hkgONu+zAfH3xPxeZ1bpM+e54W
+BOt0a7aPRcmHh/ATsU/zmOPxDFO/iq9ZJY8ULgC28/Fz1g8vY+r4INrTASuT6T9M1U1z07SPFSI9
+W8Opv/OTOD+L6cE3yulyZQqAvcCv9yfCb9JUT6bPJyv05e/aTNWdjsAAKFqRoHFfcE6TP52bAuC4
+beHnNEtnOz4n6z2f0QuSt9/D2H/2BuD8FVHhO/B9ADS9D+2Apjsm4+uAVQkzjjDr8oY4ewOshC8m
+P0suOP4WfrrFGwDgx/Vt386m7HxAHxIgnrrMpNfw0Tl818nM6PvG2FJFxL+A3o9mD76uSA/kfLqQ
+3uA0IVuFAdJ6lOVNLGjSV7SmuX4DP260SfB+C8pX9/AQ53shHFzdZx8BHWFQc73Gb6kY2z3pTQb2
+R2UGq8DHQVuE3263zo5mG8b6qWQa/UtSn81v1asr4RcDNPA9/GPgfMTnw8md37ULu3CuzOND2eOx
+KSTn4rdTn3APN0fLAM5xdzX8CO8xd4V/swkrl+nstHKzJqzQ3V7kNoRA0i9rOscAtHxRuOX+Ofip
+rru7TaDn+CnAHdje7URGeHc+wu9jIrVmGuoOY35yu43K5vU11LnOr16qe34Ovom+9zv6fs0k4Ecf
+B3a33bjL/SHAT5NXYy3q3f7Ftunq9gQnWJrpRX71UpWejQSNlrP3w/MFhh8jPMD7vcbTaRdcHz3v
+Nl/TdoX/5kt4qW8cD/vprpMwOlUY9aVdL38XPupBIfNv3eOFu9gJcM7bJvjTyUyLlFN0vYd365aY
+P6m+o9uZPpmqGlV+Ofml388d/FoPKZVG79/5TTPXBzYE3tMfguONX6GdQ8YLq7bTKTg71RSbcLsQ
+x3G6aQR/YVPDt7pPOb9sqTn4ltrSOvzdw+buzj9hCfLwkLfkDh7+dI63nZPrD6dTmtZZZwPUyPnk
+o2UM5wVNBOfXxj96Ygk+bM+43Leb1qcPdy4HAAnbsYdAfy61nYPrvUW8jEZystuYd//zpMDPE7uo
+l66rjg/bNsoxrJBWPuEfJ/4pBWwfAbyjPwT6M6osun6M7++OeoD79zzDddHHzQhg56VSQIEWvrS6
+cPgT/900rrtZW5Stpz8menBfSAVjjPpaMDJ+Bo0xaQjwkmJ7YzZAA1+2yON2SlWHu8PeG2Cb9mn+
+/PPPCI9ixrpMkNNdsaJUs7HgjX4MgylQXRI94ccNhW+btvGFWieMx73bLoHn/gTC2zufIz0MO75s
+E9qCLLBWagtZURU/jGeEWRn40t2Z3rgvLZ6PiJkIizZ/q97r/bWs92hSAoQkgIIRsV6SbaLil38V
+fH5nOnOq4Av01liN3qTZX6g6fKsD9E9ofoAkVoRdX8cPS48avjK0+IOZvlfomb6JP8eKqcX2pfgp
+XtgZoRCFj7f20Y8GG1nQl9glf6FpTIU4XROfjRENso4zOfjCz27fqzOK8A2m5tpeljn4QtmOM7R2
+XJDzC22Nsu0bIBUdKrdeGT/XZw/+aAL+j+r10roGIX1dsV8IMThGA4NqYDkbNuhjbR7fIsfX7hLp
+K37MJ8eR/08WCKxhEwYLB6xYz3J8m6vNBYv7Z0RwxMIDO9/eHUE5ACLlsnRGuJTw+bAzHz9VXQpC
+fjXMOL3gDsWzXfgWkMv4cJ6frzR+5xqykuY/Wfr4DfyiLiuNJ39AeQii3AnjiF2wYTit4tY1R3Ps
+Qz7M+FLa53Ugx0OdbZ4eRVWLjZDfayFO6sP4zACz8Mk8Km+eEX69AreQlb0OtC5F4hH4TnfF+wyd
+zvqSDjX+Oj6obvooe4cGhb+GbsA0ltlgxF/Zh3+9oHgMwzfwsb6oJXmvo4FfagufYOsU8rPbQEYn
+E6DCKo7/2STQYcW5FfqUKiR8FABzvE+KwJ1jo+CDQC3PR0W9SXxDK2DtM6BkSSkuhGmPvNfTg4/0
+gE1EfPkmk96GYjfmKAeLm8xn0xQBEEBGuqoR6aVZX+lP8/ChG8gFnd7fhfmh3jS/Z2ybjy32eokj
+Ot9Ds118hfGj6VsnPjjEz02kRjh+XmQXIpoNEabNx5kXNoStJgSXhg83FPvxa4Ur+NHQIFwNimqQ
+zu+pBQpjZlMApeb1S24VXsVTMLTCVffb4n7m5nTqfhJqgNQJLCorTHK0xvVr40VLHlQ1b0krGP2X
+lAkbQCMIa08fDICJmJl0C8zCF2jn4RMDqM3kbQKbu4CJw0G67V42wDgC52s+vx0+Yu7Chz8Bf6QW
++OODsTIKzKKHwaOoVTvRKXUtcppmP0Mo3E+f98AAsDI/QvcZoKqafK3x+wz56y9VDz5fSb3GMzng
+wH9f4qDgl5vhrIj0hYpib4M/8U/y+iq0lZX0RaYPyFfiPR5M//4N+WEt0AC2FXSodflS4/c58leU
+VzU6M/5fE+I9cPc9DgAZ35boz/PGgl4xQMU4dOxegG8Sv28OG+GV4GfqT+ae8k8G+Dfkx3MN6HxL
+XMspi42ujp/5zdQD3H8B+9X/i/yvTvyp+zzKifwAnhvAEH501ZLCvIwOvBL+pHMCT/xe43vP788m
+/E/mnvGj4BeZKkCsqIh/6YK32thrkDSpid6L1vABbyL+PcTPkgZAGPyRglF149NFQpDLFryN1iJ+
+aTtWGlHuo/uR9xF/SPxOsI+FDtClUO4/Cv+q+JGfd8uMH9z/+irjf//+3ZjvEj42wEx8ubjw/txS
+fMQv4t/HEoF2wp96/ncoGj4wQH/fb/KvjW8QPtEC4EfYT44Xi9Hw4TjWhW+Q8OsjXfMux/f+z2oS
+Te4zf2T+JOAj71eYOpRp86+O7/hRugavKPqAh+7/FHo7wf/iRGVs4tOYq9xwHfzXONnIr0+mTa2A
+l/E/fRfwA30bvzbJt4xdKb8+fnR/oPcnx6yMhE+jvxu/Nsfnru/hXwXf5b/wCmM4Bx7jf8/8JtPX
+8GW2Bn/GpfyqwuIvl0ge8q3fz0unUfBT/Fldvx3Pyn6IsLPJiBdPe8oReJ6Xn9h/yfwt+gX4Mr2x
+7HUKTrwePngyV4I/4Yd018Zvw8FL4uMSgC+93WPWxAcKZe2gUl8K/4WxXx3MRn69wb/met/mZ1hR
+0dGWlRXB/67h9+d9ocRYxW/zr5X64jO0Mq2I9BD/oq7fwK+9J2gF/nW9D+n9yGcIfsv5ZiY97bkV
+epH/Ovjgjb05+Am+N+9T/IZkza6OX5TR8Tn95y91fAWpkz4OQ4h/7dSX6eMDfPiFhC9fqvwT/eca
+vUrUxEeBWONfA58sc0OTbXxA38S3pGvV6XNxgX91fLrIL99NaOBTeh0fVt6JD6ck6EWxlfHB0B+2
+d/NX8jzZZ5U/p72ET5IUobdkylahN7S0+mLfMvz8x00S/mt4Nw/iE/682Gd5D+NzeAtTy1x8hX8h
+vsFVpKcbBtBr+J+Z81EXFeB9WyMtoOLDXqm92LjU+wz/leEjfpN2vT5z5wue5U2i910FcHAXvH3M
+u5zrrvfhmm/M/LZMaFz4B5d7/VJ8CPQUX26PvySs4dPbDA3WNfHDWxnxmZcB+CECHLH7dJfdQRtf
+axB/JySUB1+JrODHkUpQfil9Uj499Yq0VMKun6dPBij0GF9tMb79giOkvLKoRk1ivwJ+eWP4tUiJ
+AYL/BYqAX7jY1zHiSZYc2vh8jmaX48eZboxHi/kBKsRH/ICefoE3fcODGQB86aOc87XUifilFfBj
+q/ntXRE/5kB20oj4iXKU+aUviIwkfSjKNs/ME/A37fJ4k8gp/QSr4UNKMFeVDABzPdLESIHSgF08
+6TXZAkWP0vXdktf/5zi/GBYSRsKP9YyjwG+gIFWUjlKHXYoP/txWOZfe6IGqvsZXfhA/pk8DOsYp
+/Ah9pPi2iS8MJ8snvWmGCRpJxOY1vfT0Gl9ywPgSPcQ3kpSLRBk5TUi6roYPKkeC6FAIhG4h0WP8
+ET2LNvmpRbTAKPyxpwq/4HgCsI7kR220dzPjMHqKT2sufczIEwIZP+9EyequKTkr/xeKGMOG0SM/
+Cd+8ADNW/whjZHNjjV/z/cr40W91XJUe4yvV59F1TEs4YAI5+al/SsKuiy9kv9n0EV95Ogn31eB7
+Omi0oHexF3oklZcL2lxgaTsyqvAIXwp92hqm8rfFuSN/EvYG+GRvwdJ5S1MSh9WcT9ojVNmelr/Y
+cH18Th8OIB4kRZ8kaDucz/HDueT8zoXdWvgoAeeDkeKNpXvCT9Jl+5SSEpopsd+1rF8JX6S30bs0
+JaWXv8rnZfjS2Hg7fLnDYlR4Up2f9+oklQNdwmhvsV/QVIciEk06R/Aj/xV0gg9dShPXxjfkRSLq
+c4oPCgn6LOIHU4OyLayWXtASbNLw6IY9urEPQfRZCT+EP5kYC80tlTDjsCDW/Q+e7YiI7kdbJ5cp
+Aw7z9naz8CLx+IgeIUtdX6vJ6FP02VqFf2+Abwp+u5trfSFuSazG34ykVfGjSEkQlxYzoUl/xlse
+0i9TqwF4hXakOJeWYUIVueOvxX8DfCRaR+D4aKr+/4af9zrI2c7hvmiyOv+Sy3MbGkn2E2c7yl5G
+9ddFWl18eWZDZaVryQGULv7Vsl9V1vZ++FeWvGLRt3R/XdbFZ1s1ymgo30xOvQX/mvh8kxZMBRv4
+wjOY/zN8U/p/3sjgyVBVY72p7gxZNfhz8k/4VhgL1DtrK7Nryaot5uQ/Ez9Z7tfCh8veUcDPhyuu
+8WbKVfDH8DQerfrTdgDcBCj33SDuY8vrVjbmrl/wcygAfDRCVpfkV5XV8ePDVxv+PFvY2Y+XQb8w
+cI54K/a1WzY2/y8Gcm8eDZ4KS/i3418Xv7xTm/DHHAZ2LPgmBMovh5/qzL15zJ18VPBvNOQFWT3z
+WwE/TocyPtzRSz9vI9doNxIFxyfnxndMRpPwR4j/S2T+XGfBT3BjeAXQDQSFOs12r6RHl6pXqNPE
+n5krz+pHFPO/Jn6uunAV5vJ3iy08/vXwLcc3FuOjXHkLuW6zRsA36HL4/DWWPFLtET+nQXFx84vi
+ly0M4Gi53HX10OTqzXbiX1sNRd6qXUM+b6TGjdvVgvy94L9tc0352fR5Y/mN/57lN/57lv8B8ElD
+m2i9J54AAAAASUVORK5CYII=" />
+</div>
+</div>
+</li>
+<li>
+<span>
+Iaculis commodo et.
+</span>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+Iaculis commodo et.
+</span>
+<ol class="arabic outline">
+<li>
+<span>
+Rhoncus pede justo.
+</span>
+<ul class="">
+<li>
+<span>
+Velit pede dolor.
+</span>
+</li>
+<li>
+<span>
+Iaculis commodo et.
+</span>
+</li>
+</ul>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+</li>
+</ol>
+</li>
+<li>
+<span>
+Volutpat tristique nec.
+</span>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_asciidoc_elements_2">AsciiDoc Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img alt="Note" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAJhUlEQVRoge2ZWWycVxXHf+fce7/v
+m/GaGCde4pI0aQlJC0kRtE1L00JbLIjY4QkeUB9YHhAIJFCExAsKUkE8IAFFPIDUIqhBRSDRBUqC
+CimFFBCBpCWx02IaZ3G2SdyxPZ7vHh6+mcnSZnFjKIge6Wj8zYzvPf9z/me5d8TM+F8WfbkNuFx5
+BcDLLf/fAEZGRmx4eNh6enqsp6fHhoeHbWRk5D9aFeSlVqHNmzfb6H33sHnT7ZQmD5GfOMax6Sm+
+Pl5h1Yc+xpYtW2SBbX1ReUkRGBkZsdH77mHLW95EOv4Ms3ueJh6YYPHUFF9aljJ63z3cf//9/5FI
+vKQIDA8P293L2yhVjjH7t51ocDiviFecF46n7XzBreChhx4qNhH5t0XjJUVgx44ddGUZ9b/vIpQD
+oRQIWSDJAiFL6B9axo4dO4gxAmANWVDLG+Ln82URMRGhVCqRHxonlAPqFXWKC4r6IhI6OMjMzBN4
+/4LlTUQQEZxzZ32QJAlpmrb+p16vU6vVOHXq1AWjN18AnDj0F971vrs4OnmYJVkoDA4FCPUO172I
+Cgnt7SV++4vvsGhRJx3tJbIsRVVpsUnOBBABBVFEClKYwbKr7sTM7EIUnBcA7z21k7t49x1X8JXv
+bOWra7rw5QRtcN8PLCfvvZJvb9vJycpJpg4/hp/N0I4SMQs4Jw0A5zBXHGiCaIZIKABgpGlKjPEF
+0TpT5pUDRXiVt99+Le03r+WzuytM1gO6pB/3+o0cbxvk8yOPMjW6i2iR2lxOjJDHSDMFogmGwzQ7
+rRJAUpAENAGXIZq2AFzQpvkACCEQcahP+cRH3sKHn9zHXU+MM7rtGeD33NDXzaZynZU9gcezpUw9
+X6OzIyOakkfF4QEpPG6nDRNNEA2FSgKimETSNCXPc0II57VpXhEolUqoOrxPSLOMT330Dv5SqfKD
+NR388Y2L+caQsjITNv3pMBs3rOT56ZyZGaM+J0QUxDc0INrWUgggoRGBAOIRAt77hY1AmqaoeJxP
+cN645jVDbNn8Hj73o8fZ/af9mEE9j9y2YRXt5YzZWmRmzjj1/BwhTXAKzitOHEbeWlc0AVwDnCv8
+KoZzjotV33lTSL1HNKAuEtKM1169jM98/E6mTk3x4Nbd7Bk7TEdHRvAeVY+hmDqmZwx1kIkiqrhz
+S2zL+AbNMC6l/80LgHMOEY9oQvBCks5RKpXo7JhFxbhz42pet2aQet1YtLiDJAkIDq8BHwJmwlwO
+UaD0ojsrNKuUReIZyb9gABCHcwWFgg+0lTPyvIRToVzKWLpkMfV6REQplYvmZCj1uuBUSdJwTg8A
+XBdoCZMOsBkQBeGi/J83gBgjmABC8AlJGsjzFLMyaXDM1etEA0VR50iCx6mSZhkiijpPjEpQD+SF
+4WdJrTAewdCFB1CtVlFVVATnhMQnWJqC5aTBk+c5IIgWRoTgSZJAmiZAo1s7hwsppglI+fTiljeY
+nyHkLQotKIAYI4igzpFHISQOiwEnKTEG8hhRVZw6YjRQLfJGHcF7jleqTBw8znXr12MABnv37efY
+iSnesG4tiUsRUQwD7JIAzKsPqCqiRbVwweM04XdPjhJN+dvTBxgbn6G9q59yZx9/3HWEb33vN+zc
+/RzOJ+w/eJLtO8Z5ZNtT7PvHIUQTvvv9X/Lc/mN0d3by3fseRLQwvWh0Fy+h8wbQ2VFG1KM+xfuA
+qufo8So/fejPPD/rqJys8pvf7eLAoeNMHqnw2U9+kH3jVQ5MClMzKUla5obr13HliiEMmDx6gltv
+uY7Vr1nBQF8PJopQ9AFTt/AROFfMjCW9XTy19xB33Hodb924jr1j+/nDk3/nzTdei4jw3nfeyCOP
+bufa1y5jzeoVrcHM8HR3dfHlr/2Q+x94jFtuuh44/9B2PplXDryYLF3STXd3e+t5UXcHY89OsOH6
+NS2Qed7wpM1Rm50G4MGHH2P961Zy3bqreXrPP5mrzwLt5y6/cACq1eoLCKm+TN/SAebmfn8aUG83
+PYs7+cnPH+eqKwd5as8/edc7bi02847pmVkATk1VWbF8AOcca1Yv59DkqcYK0tCL02deACqVCldc
+0YdIwLmEPM9RV6NnUZlPf3wT6oqJcePN6wHhzTeu4/CRCrfctJ4sSxBRli7pYfHEMUSU97/7Th75
+1RP8eec+Yp5zzTVXM9DfDyogBvHS6HTJACYmJnjVoq5GFw0454gCEOnoaMfiNGZFFRFxJGkbywZ6
+i1NWoy9kWYmbb1gHKCHApuGbisVFGyoYUswa5OR5ftF56JIBjI6OMtDfWwAQ35jnc8AVpRXBohVq
+UowECKqK4RBxoE0W6gvGCcEjaOEAwEQWdpgbGxujt7erOLO2mk3R8i0Wz9EiuUGz+qlKEQEUaJbI
+4lTHmTVePKgWzpDGJGpc8CDTlEsuo88++wxXDA0UIUbAOP23KGZKjI48KnkuhcbiPbPCOBoeBikO
+Lk2VxjqNRilaAEqSZGEAbN261bZt+zW33XY7IAXXm6Ou0YhIMamaaUOl5WRrzg00viuKWWxpQUOH
+NAZFQRpD48Xlkig0MTHBB95zG+VSylz1KCbWyDOh2XyK+56IqjWMKigkUnzWnPPFFFRRLZ29SQRU
+ELOGY4pZ6LKOlM07mZ07d/KOtw1TcB4sGkTDiDQ9K1IkrKeYmQC08d7pZLSiRBpE5s7aS0XAHFEK
+AGY51Wr18g80Zmb33nsvX/z8XdSmj2AWOXhwkrxe46+79jB55Dh/3T2GxUhHextdXW2sXN7PNWtW
+IQKDA71FFBoAjIgQkVg/a5+oHrU5zIznDhxk964xKpXKggAoTlWW8+OfPorlOQ//cjsDy1bS2dFO
+W+diVly1iL6+Pqanpzl5qsL4pPHwN3/G1InDlMsZ7Z1tDA30cfWqIa5dexV9fb2YnT7UTxw4xsHJ
+o4yOjfOP8QOMjx/k4OQx7r777lY0zycXvJ02M4sxMjg4SL1eR0TYsGEDw8PD9PX10d7ejogUN3a1
+GqpKCIE8z5mdnUVVqVarbN++nba2Nvbu3csDDzyAqrJ8+atb+zjn6e/vZ/Xq1axatYq1a9fS29tL
+lmUMDQ1RKpXOm9EXvV6v1+tWr9eZnp5mZmaGWq1GjLHF62aiNZ+bnPfe45xrvTZzxMyYmZk56+LX
+zKjX661DvHOOJElIkoRSqYT3/vLvRlW15eHCa4VxzdvmpjZDfubzuXeb3vuzqCEixBhbo0NTkyS5
+PAr9L8j/96+U/w3yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==" />
+</td>
+<td class="content"><em>Note</em> admonition paragraph.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img alt="Important" src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALa0lEQVRogdWZa2wc1RXHfzM7O/te
+P9e1vXHSmEdjx3YeDkkaF6REKRRCEDSEFNkRjdSWSsgC2iqoRWqLQKiqIBg1NOQDiMeHtkQIQkRR
+S9S4aWwgCQoUgl232KkT28J21l6vd3d2dx79sDuTXdtre03Uqlc62tl53Pv/n3PuOffcKxiGwf9z
+E//XAL5sk65WR0a6AaDrOjMtKwgCoigiCAKCIAhXa9wvTcAEHhoc5KMjR7jw3nucf+MN67k/GCS4
+YQOr77yTpl27kGUZm81mXC0ywlLnQDbwEwcO0P2b3yz4jV5RwZq2Nm5/5BH8fj+SJGGz2b4UiSUR
+MAzD0DSNEwcO8MdHHln8d0AcsAUCfOe551h7yy04HA7sdvuSrVEwAV3XjdDgIC/v2cOl06dznqWA
+JCAAMvn9MwlEgF1PP8037rsPt9uN3W5fkjUKIqDrujF+4QLP3XQTU0NDOc8UIAa4y8sJtrQQqK/H
+7XQSfv99Pn/nHQRRxNB16/0EEAUatm9n76uv4vP5cDgcBZNYNIF84I0MEK20lIZvf5sNe/dSWlqK
+1+vFxBEZHubT3/+evqNHmR4dJRWP55BevW0bra+8gt/vx+l0IknSokksikA+8ElgClixYwc3799P
+ZWUlTqczbz+x0VFOPvEEQ6dPE/niCwxdt0jUbd1K68svU1xcXBCJBQnMBz5eWkrL/v2s++Y3KSsr
+QxQXlxc7f/5zBjo7CQ8NoadSKKQn943t7dyyf79FYjHuNC8BwzAMVVV56Z57+OzNN3PAJ8vK+FZH
+B2s2b55X6/nahRMnOP7TnxLOKEXJyO2/+hVf37uXoqIinE6nmfzyksirMjNUvvGjH+WAVwG1vJxb
+Dhxg1bp1uFwuMwQWJCu3bWPN3r24SkoAcGbA/OXXv2bws8+IRqOkUqlZGX1RBAzDMHRd51+nTvHe
+wYNX7gPTQMO+faxav56SkpIlgTdlU3s7TXv2IGUs6AGioRDH2tuZmJggFouhqirGPCzyEUBVVX7X
+1pZzPwI0fP/7bNmzh7KysrzADh8+zP3338++ffs4ePBg3vdEUWTDD3/IsuZmRLsdW4bEpd5eOp99
+lnA4jKIoaJqWl8QsAqb2Txw4kDNp40BxXR0bWlspLy/PC+qZZ55hdHQUSZIYHByko6ODxx57bBZw
+cy3kq6xk6y9/ib+qCgQBmbQ7nT50iIs9PUSjUZLJJIZhzEliLgKMDQzwp5/9zLqnkQ51W3/xCwKB
+AE6nMy+B3t5exsfH6ezspLe3l3g8zuHDh2cBz5bKpibWtrXhLi0FwA3owNsPP8zExATxeBxVVecy
+QC4Bc+L+taNjluvU33031dddN6/2BUGgpKSE/v5+JicncweaA3i2tDz8MIHrr0eU0gsQBzDW10ff
+yZNEIhESicScrpRDQNd1xgYG+OC3v7XuJQBXIMDWn/yEioqKeUGMjY0hCAKKoszS1MjIyLzfAmx/
+4gmKli0DQcBJOmicfOopJicnicfjJoG5LWBq/+Szz+a8oABNe/bgdrvndR1BEKiqqiIejxOLxWYR
+CAaDC0alqjVrqGxowFNWhkDalUKff07f3/5mWSFTLFksLAK6rjN+4UKO9lXAUV7O2tbWeaNOthZl
+WZ4FHlh0aN3y4IPIHk+6L8AGvNfRQTgctuZCthVEU/u6rnPutddyBk0A9bt3W4us+QY2fbyurg6v
+15vTzw033LBoAsHmZoLNzdgcDgBcQKi/n391dTE9PU0ymcyxgkmAVCrF+4cO5WjfFgiwfoGwOTOy
+lJWVUVtba1mkUAKCILClvR1veTkA9owVPnzllZy8YFnA1H5/dzfTw8PWgziwcutWfD4fsiwvCNyU
+xsZG3G43lZWVVl933XVXQQSq161j+ebNlhXcwBdnzxIOh60lhmkFEUDTNP7++uvWgBrp6mrNHBk3
+H/BsAtFoFEdm8GAwyMaNGwsiIAgCjbt346uosKwgAp8cPWolNj1THInmsqHn6FGLQApY1thIxcqV
++Hy+WX6+0ETesWMHLpcLWZZ54IEHCgYvCAKrbrsNyem0JrQEXMzkhKzlBaKu61z+97+ZHhnJmbwr
+tm2zJu5CWp8pra2tNDU1sXPnTtrb25dEQBAEvrplC57MXJCB8XPniEQixONxa6Uq6brOQHd3jvvo
+QP2ttxZUpMxsL7zwwpK+AyxLXrt9Oxe6uxFEEXvGZc4fO0bVD35AMplM1wuapjGYtbugAp5AgKLq
+aquu/W/JTEs37dqFqihWzSADk8PD1jzQNC3tQtmrThUINDbm+H4h0tfXx6OPPsodd9xBW1sbPT09
+BQPPluu2b7fWRxIQ6usjFotZBCRN06wZbbZAfT1FRUWWKQtpzz//PMPDw/T09DA1NcXo6CjHjx+f
+11Xma95AwHJjEdB0HUVRrhCYuRGrAiXBoFUqFtq6u7sZHx9nJBMUurq65uxnsX0Hm5v56A9/ANIJ
+LXrpEolEwgqlUqZQyPlo6OOPlzx5ly1bxnBWQmxpackBW6hSBEC02axrpqasNZGmaek8kN0kYPDj
+j1FVdUlz4Mknn6Surs4Cb5aUhYZiUy59+GGOgm3V1WiadiUPCILAV9autV5wAaM9PXQeOWJprBBp
+aGjgxIkTpFIpOjs7aWxsXBJwUwZOnUKZmgLS2zl4vUjSlV1XURRFqtavv3IDKAVe/O53efPxx69a
+SCxUBs+c4dV77+Vyfz+xy5eBdG3iX7ECm81m9S2JokiwuZmiujrCPT1AuqgOAqcef5zzL77Imt27
+uemhhyipqVnYZ5cw8bPbR0eOcOall7g8MEB4aIhEJAJk9qOAwKZNyLJsHpQgRKNRIxQK0XPmDH/+
+3vdQQ6G8na/YtIk199zDypYWVmzceFWAT1y8yMWzZzn/9tv0vfsudqeTlKIQHRvL2QSOAqU7d/K1
+W2/l2muvpba2Nl3iJhIJIxKJMDw8TO/Zs3zw4x+jTUzkHVCw2fCUleHw+QiuXYu/upqqhgb8VVUY
+hkFNczPFweCs7z556y3r+vyxYwiiyD+PHwdBwNB1krEYhqYRC4UwdB2D9LJmmnRtXHz77VTfeCPL
+ly+ntraWmpqa9MaaqqqGoiiEQiGGhoYYHBzk00OHiHR2LkqDNlnG7nJhd7nQswqN+ZogiuipFMlY
+DDWRgBl5KEF6woqAUFFByc03U756NZWVlSxfvpyamhoCgQAejwdB13VDVVVisRihUIiRkRGGh4cZ
++sc/GO3qIt7VhZGJAle7mVpWuVKDCBng8jXX4N68Gc8111BUVER5eTnV1dVUV1cTCASuFFqGYaDr
+upFKpYjH40xMTDA+Ps7Y2Bjj4+OEw2EmenqYPneO1OAgZCWpxTY9S9QMcLhyHGUDRI8HqbISZ309
+zoYGnE4nHo8Hv99PaWkpgUCAiooK6/DE4XCkI1HW2a6hqiqKojA9Pc3k5KQl4XCY6elpotFoetuk
+v59UKIR66RLToRBJTcMYHUWIRvMSMPO6rbY2/SsIOFatQpYk5NWrkSQJWZZxOBy43W68Xi9+v5+i
+oiJKSkooLi7G5/PhdruRZdnads85HzD3hpLJJIqiEIvFiEajRCIRIpEI0WiUWCxGPB631iOKopBK
+pazUbi4Oc7Y+snKCzWbDZrMhSRKSJGG3262w6HK5cLlceDwevF4vPp8Pr9eL2+3G5XLhcDjMkxuE
+TNibdcBhnv9qmkYqlSKZTJJIJFAUhXg8jqIoKIpCIpGwSCSTSVRVtWSuk3qTiAnebrfngHc4HDid
+TpxOJy6Xy7qWZdk6wZzrxCbvCY1JRNd1NE3LAWgSM69ngp+PgCiK1gF3NhFTzHvmO+Y3wCzw8xLI
+JpL5tYCZpEyw2f/nWt1ag2UtM0x3Mq1iAp1j+bH0M7KFCGWDnfmbd8AMnuxfUzL/C0rp/wFnFd4n
+EQn3XQAAAABJRU5ErkJggg==" />
+</td>
+<td class="content"><em>Important</em> admonition paragraph.</td>
+</tr></table>
+</div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">Sidebar</div>
+<div class="paragraph"><p>Faucibus sagittis commodo sed et eu. Quam nullam ornare. Sed vel est.
+Mauris urna lobortis interdum placerat per id magnis enim.</p></div>
+</div></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_asciidoc_elements_3">AsciiDoc Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="paragraph"><p>A quote block:</p></div>
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.</p></div>
+</div>
+<div class="attribution">
+<em>The World of Mathematics (1956)</em><br />
+&#8212; Bertrand Russell
+</div></div>
+<div class="paragraph"><p>A verse block:</p></div>
+<div class="verseblock">
+<pre class="content">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<div class="attribution">
+<em>from Auguries of Innocence</em><br />
+&#8212; William Blake
+</div></div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_asciidoc_elements_4">AsciiDoc Elements</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="tableblock">
+<table rules="all"
+width="80%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Horizontal and vertical source data</caption>
+<col width="17%" />
+<col width="11%" />
+<col width="11%" />
+<col width="58%" />
+<thead>
+<tr>
+<th align="left" valign="top">Date </th>
+<th align="center" valign="top">Duration </th>
+<th align="center" valign="top">Avg HR </th>
+<th align="left" valign="top">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">10:24</p></td>
+<td align="center" valign="top"><p class="table">157</p></td>
+<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">23:03</p></td>
+<td align="center" valign="top"><p class="table">152</p></td>
+<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">40:00</p></td>
+<td align="center" valign="top"><p class="table">145</p></td>
+<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1 slide">
+<h1 id="_filters">Filters</h1>
+<div class="sectionbody" style="max-width:45em">
+<div class="listingblock">
+<div class="title">Python source</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/source-highlight-filter-docbook.xml b/tests/data/source-highlight-filter-docbook.xml
index 61448dc..2c419fe 100644
--- a/tests/data/source-highlight-filter-docbook.xml
+++ b/tests/data/source-highlight-filter-docbook.xml
@@ -1,348 +1,348 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Source Code Highlight Filter</title>
-</articleinfo>
-<simpara>The AsciiDoc distribution includes a <emphasis>source</emphasis> filter for highlighting
-code syntax.</simpara>
-<section id="_docbook_outputs">
-<title>DocBook Outputs</title>
-<simpara>AsciiDoc encloses the source code in a DocBook <emphasis>programlisting</emphasis>
-element and leaves source code highlighting to the DocBook toolchain
-(dblatex has a particularly nice programlisting highlighter). The
-DocBook programlisting element is assigned two attributes:</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-The <emphasis>language</emphasis> attribute is set to the AsciiDoc <emphasis>language</emphasis>
- attribute.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <emphasis>linenumbering</emphasis> attribute is set to the AsciiDoc <emphasis>src_numbered</emphasis>
- attribute (<emphasis>numbered</emphasis> or <emphasis>unnumbered</emphasis>).
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section id="_html_outputs">
-<title>HTML Outputs</title>
-<simpara>You have the choice of three HTML source code highlighters, your
-selection is determined by the <emphasis>source-highlighter</emphasis> attribute (defaults
-to <emphasis>source-highlight</emphasis>):</simpara>
-<note><simpara>Set the <emphasis>source-highlighter</emphasis> attribute from the <literal>asciidoc(1)</literal>
-command-line or in the document header (not in the document body,
-because the configuration file conditional macros are processed at
-load time).</simpara></note>
-<section id="_gnu_source_highlight">
-<title>GNU Source Highlight</title>
-<simpara>The default highlighter is the
-<ulink url="http://www.gnu.org/software/src-highlite/">GNU source-highlight</ulink> which
-can highlight <emphasis>html4</emphasis>, <emphasis>html5</emphasis> and <emphasis>xhtml11</emphasis> outputs. The GNU
-source-highlight must be installed and the <emphasis>source-highlight</emphasis> command
-must reside in the shell search <emphasis>PATH</emphasis>.</simpara>
-</section>
-<section id="_highlight">
-<title>Highlight</title>
-<simpara>You can use
-<ulink url="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</ulink>
-syntax highlighter for <emphasis>xhtml11</emphasis>, <emphasis>html5</emphasis> and <emphasis>html4</emphasis> outputs (set the
-<emphasis>source-highlighter</emphasis> attribute to <emphasis>highlighter</emphasis>).</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-The <emphasis>highlight</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-To make Highlighter your default highlighter put the following line
- your <literal>~/.asciidoc/asciidoc.conf</literal> file:
-</simpara>
-<literallayout class="monospaced">source-highlighter=highlight</literallayout>
-</listitem>
-<listitem>
-<simpara>
-The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Highlighter using the
- <literal>--encoding</literal> command-line option.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section id="_pygments">
-<title>Pygments</title>
-<simpara>The <ulink url="http://pygments.org/">Pygments</ulink> syntax highlighter can be used for
-<emphasis>xhtml11</emphasis> and <emphasis>html5</emphasis> outputs (set the <emphasis>source-highlighter</emphasis> attribute
-to <emphasis>pygments</emphasis>).</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-The <emphasis>pygmentize</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-You can customize Pygments CSS styles by editing
- <literal>./stylesheets/pygments.css</literal>. The <literal>pygments.css</literal> CSS file was
- generated with:
-</simpara>
-<literallayout class="monospaced">from pygments.formatters import HtmlFormatter
-print HtmlFormatter().get_style_defs('.highlight')</literallayout>
-</listitem>
-<listitem>
-<simpara>
-To make Pygments your default highlighter put the following line
- your <literal>~/.asciidoc/asciidoc.conf</literal> file:
-</simpara>
-<literallayout class="monospaced">source-highlighter=pygments</literallayout>
-</listitem>
-<listitem>
-<simpara>
-The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Pygments using the
- <literal>-O</literal> command-line option.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-</section>
-<section id="_block_attributes">
-<title>Block attributes</title>
-<simpara>The following attributes can be included in source code block
-attribute lists.</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-<emphasis>style</emphasis> and <emphasis>language</emphasis> are mandatory.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-<emphasis>style</emphasis>, <emphasis>language</emphasis> and <emphasis>src_numbered</emphasis> are the first three
- positional attributes in that order.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <emphasis>args</emphasis> attribute allows the inclusion of arbitrary (highlighter
- dependent) command options.
-</simpara>
-</listitem>
-</itemizedlist>
-<variablelist>
-<varlistentry>
-<term>
-style
-</term>
-<listitem>
-<simpara>
- Set to <emphasis>source</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-language
-</term>
-<listitem>
-<simpara>
- The source code language name.
-</simpara>
-<note><simpara>The language names vary between highlighters&#8201;&#8212;&#8201;consult the
-selected highlighter manual.</simpara></note>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-src_numbered
-</term>
-<listitem>
-<simpara>
- Set to <emphasis>numbered</emphasis> to include line numbers.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-src_tab
-</term>
-<listitem>
-<simpara>
- Set tab size (GNU source-highlight only).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-args
-</term>
-<listitem>
-<simpara>
- Include this attribute value in the highlighter command-line (HTML
- outputs) or in the <literal>programlisting</literal> element (DocBook).
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section id="_testing">
-<title>Testing</title>
-<simpara>Test the filter by converting the test file to HTML with AsciiDoc:</simpara>
-<literallayout class="monospaced">$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
-$ firefox ./filters/source/source-highlight-filter-test.html &amp;</literallayout>
-</section>
-<section id="_examples">
-<title>Examples</title>
-<section id="_source_code_paragraphs">
-<title>Source code paragraphs</title>
-<simpara>The <literal>source</literal> paragraph style will highlight a paragraph of source
-code. These three code paragraphs:</simpara>
-<screen>[source,python]
-if n &lt; 0: print 'Hello World!'
-
-:language: python
-
-[source]
-if n &lt; 0: print 'Hello World!'
-
-[source,ruby,numbered]
-[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</screen>
-<simpara>Render this highlighted source code:</simpara>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-<programlisting language="ruby" linenumbering="numbered">[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</programlisting>
-</section>
-<section id="_unnumbered_source_code_listing">
-<title>Unnumbered source code listing</title>
-<simpara>This source-highlight filtered block:</simpara>
-<screen> [source,python]
- ---------------------------------------------------------------------
- ''' A multi-line
- comment.'''
- def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
- ---------------------------------------------------------------------</screen>
-<simpara>Renders this highlighted source code:</simpara>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</section>
-<section id="_numbered_source_code_listing_with_callouts">
-<title>Numbered source code listing with callouts</title>
-<simpara>This source-highlight filtered block:</simpara>
-<screen> [source,ruby,numbered]
- ---------------------------------------------------------------------
- #
- # Useful Ruby base class extensions.
- #
-
- class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
- end
-
- if $0 == __FILE__ # &lt;1&gt;
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # &lt;2&gt;
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
- end
- ---------------------------------------------------------------------
-
- &lt;1&gt; First callout.
- &lt;2&gt; Second callout.</screen>
-<simpara>Renders this highlighted source code:</simpara>
-<programlisting language="ruby" linenumbering="numbered">#
-# Useful Ruby base class extensions.
-#
-
-class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
-end
-
-if $0 == __FILE__ # <co id="CO1-1"/>
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # <co id="CO1-2"/>
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
-end</programlisting>
-<calloutlist>
-<callout arearefs="CO1-1">
-<para>
-First callout.
-</para>
-</callout>
-<callout arearefs="CO1-2">
-<para>
-Second callout.
-</para>
-</callout>
-</calloutlist>
-<tip>
-<itemizedlist>
-<listitem>
-<simpara>
-If the source <emphasis>language</emphasis> attribute has been set (using an
- <emphasis>AttributeEntry</emphasis> or from the command-line) you don&#8217;t have to specify
- it in each source code block.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-You should place callout markers inside source code comments to
- ensure they are not misinterpreted and mangled by the highlighter.
-</simpara>
-</listitem>
-</itemizedlist>
-</tip>
-</section>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Source Code Highlight Filter</title>
+</articleinfo>
+<simpara>The AsciiDoc distribution includes a <emphasis>source</emphasis> filter for highlighting
+code syntax.</simpara>
+<section id="_docbook_outputs">
+<title>DocBook Outputs</title>
+<simpara>AsciiDoc encloses the source code in a DocBook <emphasis>programlisting</emphasis>
+element and leaves source code highlighting to the DocBook toolchain
+(dblatex has a particularly nice programlisting highlighter). The
+DocBook programlisting element is assigned two attributes:</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+The <emphasis>language</emphasis> attribute is set to the AsciiDoc <emphasis>language</emphasis>
+ attribute.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <emphasis>linenumbering</emphasis> attribute is set to the AsciiDoc <emphasis>src_numbered</emphasis>
+ attribute (<emphasis>numbered</emphasis> or <emphasis>unnumbered</emphasis>).
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section id="_html_outputs">
+<title>HTML Outputs</title>
+<simpara>You have the choice of three HTML source code highlighters, your
+selection is determined by the <emphasis>source-highlighter</emphasis> attribute (defaults
+to <emphasis>source-highlight</emphasis>):</simpara>
+<note><simpara>Set the <emphasis>source-highlighter</emphasis> attribute from the <literal>asciidoc(1)</literal>
+command-line or in the document header (not in the document body,
+because the configuration file conditional macros are processed at
+load time).</simpara></note>
+<section id="_gnu_source_highlight">
+<title>GNU Source Highlight</title>
+<simpara>The default highlighter is the
+<ulink url="http://www.gnu.org/software/src-highlite/">GNU source-highlight</ulink> which
+can highlight <emphasis>html4</emphasis>, <emphasis>html5</emphasis> and <emphasis>xhtml11</emphasis> outputs. The GNU
+source-highlight must be installed and the <emphasis>source-highlight</emphasis> command
+must reside in the shell search <emphasis>PATH</emphasis>.</simpara>
+</section>
+<section id="_highlight">
+<title>Highlight</title>
+<simpara>You can use
+<ulink url="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</ulink>
+syntax highlighter for <emphasis>xhtml11</emphasis>, <emphasis>html5</emphasis> and <emphasis>html4</emphasis> outputs (set the
+<emphasis>source-highlighter</emphasis> attribute to <emphasis>highlighter</emphasis>).</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+The <emphasis>highlight</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+To make Highlighter your default highlighter put the following line
+ your <literal>~/.asciidoc/asciidoc.conf</literal> file:
+</simpara>
+<literallayout class="monospaced">source-highlighter=highlight</literallayout>
+</listitem>
+<listitem>
+<simpara>
+The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Highlighter using the
+ <literal>--encoding</literal> command-line option.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section id="_pygments">
+<title>Pygments</title>
+<simpara>The <ulink url="http://pygments.org/">Pygments</ulink> syntax highlighter can be used for
+<emphasis>xhtml11</emphasis> and <emphasis>html5</emphasis> outputs (set the <emphasis>source-highlighter</emphasis> attribute
+to <emphasis>pygments</emphasis>).</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+The <emphasis>pygmentize</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+You can customize Pygments CSS styles by editing
+ <literal>./stylesheets/pygments.css</literal>. The <literal>pygments.css</literal> CSS file was
+ generated with:
+</simpara>
+<literallayout class="monospaced">from pygments.formatters import HtmlFormatter
+print HtmlFormatter().get_style_defs('.highlight')</literallayout>
+</listitem>
+<listitem>
+<simpara>
+To make Pygments your default highlighter put the following line
+ your <literal>~/.asciidoc/asciidoc.conf</literal> file:
+</simpara>
+<literallayout class="monospaced">source-highlighter=pygments</literallayout>
+</listitem>
+<listitem>
+<simpara>
+The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Pygments using the
+ <literal>-O</literal> command-line option.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+</section>
+<section id="_block_attributes">
+<title>Block attributes</title>
+<simpara>The following attributes can be included in source code block
+attribute lists.</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+<emphasis>style</emphasis> and <emphasis>language</emphasis> are mandatory.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+<emphasis>style</emphasis>, <emphasis>language</emphasis> and <emphasis>src_numbered</emphasis> are the first three
+ positional attributes in that order.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <emphasis>args</emphasis> attribute allows the inclusion of arbitrary (highlighter
+ dependent) command options.
+</simpara>
+</listitem>
+</itemizedlist>
+<variablelist>
+<varlistentry>
+<term>
+style
+</term>
+<listitem>
+<simpara>
+ Set to <emphasis>source</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+language
+</term>
+<listitem>
+<simpara>
+ The source code language name.
+</simpara>
+<note><simpara>The language names vary between highlighters&#8201;&#8212;&#8201;consult the
+selected highlighter manual.</simpara></note>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+src_numbered
+</term>
+<listitem>
+<simpara>
+ Set to <emphasis>numbered</emphasis> to include line numbers.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+src_tab
+</term>
+<listitem>
+<simpara>
+ Set tab size (GNU source-highlight only).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+args
+</term>
+<listitem>
+<simpara>
+ Include this attribute value in the highlighter command-line (HTML
+ outputs) or in the <literal>programlisting</literal> element (DocBook).
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section id="_testing">
+<title>Testing</title>
+<simpara>Test the filter by converting the test file to HTML with AsciiDoc:</simpara>
+<literallayout class="monospaced">$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
+$ firefox ./filters/source/source-highlight-filter-test.html &amp;</literallayout>
+</section>
+<section id="_examples">
+<title>Examples</title>
+<section id="_source_code_paragraphs">
+<title>Source code paragraphs</title>
+<simpara>The <literal>source</literal> paragraph style will highlight a paragraph of source
+code. These three code paragraphs:</simpara>
+<screen>[source,python]
+if n &lt; 0: print 'Hello World!'
+
+:language: python
+
+[source]
+if n &lt; 0: print 'Hello World!'
+
+[source,ruby,numbered]
+[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</screen>
+<simpara>Render this highlighted source code:</simpara>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+<programlisting language="ruby" linenumbering="numbered">[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</programlisting>
+</section>
+<section id="_unnumbered_source_code_listing">
+<title>Unnumbered source code listing</title>
+<simpara>This source-highlight filtered block:</simpara>
+<screen> [source,python]
+ ---------------------------------------------------------------------
+ ''' A multi-line
+ comment.'''
+ def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+ ---------------------------------------------------------------------</screen>
+<simpara>Renders this highlighted source code:</simpara>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</section>
+<section id="_numbered_source_code_listing_with_callouts">
+<title>Numbered source code listing with callouts</title>
+<simpara>This source-highlight filtered block:</simpara>
+<screen> [source,ruby,numbered]
+ ---------------------------------------------------------------------
+ #
+ # Useful Ruby base class extensions.
+ #
+
+ class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+ end
+
+ if $0 == __FILE__ # &lt;1&gt;
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # &lt;2&gt;
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+ end
+ ---------------------------------------------------------------------
+
+ &lt;1&gt; First callout.
+ &lt;2&gt; Second callout.</screen>
+<simpara>Renders this highlighted source code:</simpara>
+<programlisting language="ruby" linenumbering="numbered">#
+# Useful Ruby base class extensions.
+#
+
+class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+end
+
+if $0 == __FILE__ # <co id="CO1-1"/>
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # <co id="CO1-2"/>
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+end</programlisting>
+<calloutlist>
+<callout arearefs="CO1-1">
+<para>
+First callout.
+</para>
+</callout>
+<callout arearefs="CO1-2">
+<para>
+Second callout.
+</para>
+</callout>
+</calloutlist>
+<tip>
+<itemizedlist>
+<listitem>
+<simpara>
+If the source <emphasis>language</emphasis> attribute has been set (using an
+ <emphasis>AttributeEntry</emphasis> or from the command-line) you don&#8217;t have to specify
+ it in each source code block.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+You should place callout markers inside source code comments to
+ ensure they are not misinterpreted and mangled by the highlighter.
+</simpara>
+</listitem>
+</itemizedlist>
+</tip>
+</section>
+</section>
+</article>
diff --git a/tests/data/source-highlight-filter-docbook5.xml b/tests/data/source-highlight-filter-docbook5.xml
index 1971fa6..ee6efed 100644
--- a/tests/data/source-highlight-filter-docbook5.xml
+++ b/tests/data/source-highlight-filter-docbook5.xml
@@ -1,347 +1,347 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Source Code Highlight Filter</title>
-</info>
-<simpara>The AsciiDoc distribution includes a <emphasis>source</emphasis> filter for highlighting
-code syntax.</simpara>
-<section xml:id="_docbook_outputs">
-<title>DocBook Outputs</title>
-<simpara>AsciiDoc encloses the source code in a DocBook <emphasis>programlisting</emphasis>
-element and leaves source code highlighting to the DocBook toolchain
-(dblatex has a particularly nice programlisting highlighter). The
-DocBook programlisting element is assigned two attributes:</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-The <emphasis>language</emphasis> attribute is set to the AsciiDoc <emphasis>language</emphasis>
- attribute.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <emphasis>linenumbering</emphasis> attribute is set to the AsciiDoc <emphasis>src_numbered</emphasis>
- attribute (<emphasis>numbered</emphasis> or <emphasis>unnumbered</emphasis>).
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section xml:id="_html_outputs">
-<title>HTML Outputs</title>
-<simpara>You have the choice of three HTML source code highlighters, your
-selection is determined by the <emphasis>source-highlighter</emphasis> attribute (defaults
-to <emphasis>source-highlight</emphasis>):</simpara>
-<note><simpara>Set the <emphasis>source-highlighter</emphasis> attribute from the <literal>asciidoc(1)</literal>
-command-line or in the document header (not in the document body,
-because the configuration file conditional macros are processed at
-load time).</simpara></note>
-<section xml:id="_gnu_source_highlight">
-<title>GNU Source Highlight</title>
-<simpara>The default highlighter is the
-<link xlink:href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</link> which
-can highlight <emphasis>html4</emphasis>, <emphasis>html5</emphasis> and <emphasis>xhtml11</emphasis> outputs. The GNU
-source-highlight must be installed and the <emphasis>source-highlight</emphasis> command
-must reside in the shell search <emphasis>PATH</emphasis>.</simpara>
-</section>
-<section xml:id="_highlight">
-<title>Highlight</title>
-<simpara>You can use
-<link xlink:href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</link>
-syntax highlighter for <emphasis>xhtml11</emphasis>, <emphasis>html5</emphasis> and <emphasis>html4</emphasis> outputs (set the
-<emphasis>source-highlighter</emphasis> attribute to <emphasis>highlighter</emphasis>).</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-The <emphasis>highlight</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-To make Highlighter your default highlighter put the following line
- your <literal>~/.asciidoc/asciidoc.conf</literal> file:
-</simpara>
-<literallayout class="monospaced">source-highlighter=highlight</literallayout>
-</listitem>
-<listitem>
-<simpara>
-The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Highlighter using the
- <literal>--encoding</literal> command-line option.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section xml:id="_pygments">
-<title>Pygments</title>
-<simpara>The <link xlink:href="http://pygments.org/">Pygments</link> syntax highlighter can be used for
-<emphasis>xhtml11</emphasis> and <emphasis>html5</emphasis> outputs (set the <emphasis>source-highlighter</emphasis> attribute
-to <emphasis>pygments</emphasis>).</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-The <emphasis>pygmentize</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-You can customize Pygments CSS styles by editing
- <literal>./stylesheets/pygments.css</literal>. The <literal>pygments.css</literal> CSS file was
- generated with:
-</simpara>
-<literallayout class="monospaced">from pygments.formatters import HtmlFormatter
-print HtmlFormatter().get_style_defs('.highlight')</literallayout>
-</listitem>
-<listitem>
-<simpara>
-To make Pygments your default highlighter put the following line
- your <literal>~/.asciidoc/asciidoc.conf</literal> file:
-</simpara>
-<literallayout class="monospaced">source-highlighter=pygments</literallayout>
-</listitem>
-<listitem>
-<simpara>
-The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Pygments using the
- <literal>-O</literal> command-line option.
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-</section>
-<section xml:id="_block_attributes">
-<title>Block attributes</title>
-<simpara>The following attributes can be included in source code block
-attribute lists.</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-<emphasis>style</emphasis> and <emphasis>language</emphasis> are mandatory.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-<emphasis>style</emphasis>, <emphasis>language</emphasis> and <emphasis>src_numbered</emphasis> are the first three
- positional attributes in that order.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <emphasis>args</emphasis> attribute allows the inclusion of arbitrary (highlighter
- dependent) command options.
-</simpara>
-</listitem>
-</itemizedlist>
-<variablelist>
-<varlistentry>
-<term>
-style
-</term>
-<listitem>
-<simpara>
- Set to <emphasis>source</emphasis>.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-language
-</term>
-<listitem>
-<simpara>
- The source code language name.
-</simpara>
-<note><simpara>The language names vary between highlighters&#8201;&#8212;&#8201;consult the
-selected highlighter manual.</simpara></note>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-src_numbered
-</term>
-<listitem>
-<simpara>
- Set to <emphasis>numbered</emphasis> to include line numbers.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-src_tab
-</term>
-<listitem>
-<simpara>
- Set tab size (GNU source-highlight only).
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-args
-</term>
-<listitem>
-<simpara>
- Include this attribute value in the highlighter command-line (HTML
- outputs) or in the <literal>programlisting</literal> element (DocBook).
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section xml:id="_testing">
-<title>Testing</title>
-<simpara>Test the filter by converting the test file to HTML with AsciiDoc:</simpara>
-<literallayout class="monospaced">$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
-$ firefox ./filters/source/source-highlight-filter-test.html &amp;</literallayout>
-</section>
-<section xml:id="_examples">
-<title>Examples</title>
-<section xml:id="_source_code_paragraphs">
-<title>Source code paragraphs</title>
-<simpara>The <literal>source</literal> paragraph style will highlight a paragraph of source
-code. These three code paragraphs:</simpara>
-<screen>[source,python]
-if n &lt; 0: print 'Hello World!'
-
-:language: python
-
-[source]
-if n &lt; 0: print 'Hello World!'
-
-[source,ruby,numbered]
-[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</screen>
-<simpara>Render this highlighted source code:</simpara>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-<programlisting language="ruby" linenumbering="numbered">[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</programlisting>
-</section>
-<section xml:id="_unnumbered_source_code_listing">
-<title>Unnumbered source code listing</title>
-<simpara>This source-highlight filtered block:</simpara>
-<screen> [source,python]
- ---------------------------------------------------------------------
- ''' A multi-line
- comment.'''
- def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
- ---------------------------------------------------------------------</screen>
-<simpara>Renders this highlighted source code:</simpara>
-<programlisting language="python" linenumbering="unnumbered">''' A multi-line
- comment.'''
-def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word</programlisting>
-</section>
-<section xml:id="_numbered_source_code_listing_with_callouts">
-<title>Numbered source code listing with callouts</title>
-<simpara>This source-highlight filtered block:</simpara>
-<screen> [source,ruby,numbered]
- ---------------------------------------------------------------------
- #
- # Useful Ruby base class extensions.
- #
-
- class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
- end
-
- if $0 == __FILE__ # &lt;1&gt;
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # &lt;2&gt;
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
- end
- ---------------------------------------------------------------------
-
- &lt;1&gt; First callout.
- &lt;2&gt; Second callout.</screen>
-<simpara>Renders this highlighted source code:</simpara>
-<programlisting language="ruby" linenumbering="numbered">#
-# Useful Ruby base class extensions.
-#
-
-class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
-end
-
-if $0 == __FILE__ # <co xml:id="CO1-1"/>
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # <co xml:id="CO1-2"/>
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
-end</programlisting>
-<calloutlist>
-<callout arearefs="CO1-1">
-<para>
-First callout.
-</para>
-</callout>
-<callout arearefs="CO1-2">
-<para>
-Second callout.
-</para>
-</callout>
-</calloutlist>
-<tip>
-<itemizedlist>
-<listitem>
-<simpara>
-If the source <emphasis>language</emphasis> attribute has been set (using an
- <emphasis>AttributeEntry</emphasis> or from the command-line) you don&#8217;t have to specify
- it in each source code block.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-You should place callout markers inside source code comments to
- ensure they are not misinterpreted and mangled by the highlighter.
-</simpara>
-</listitem>
-</itemizedlist>
-</tip>
-</section>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Source Code Highlight Filter</title>
+</info>
+<simpara>The AsciiDoc distribution includes a <emphasis>source</emphasis> filter for highlighting
+code syntax.</simpara>
+<section xml:id="_docbook_outputs">
+<title>DocBook Outputs</title>
+<simpara>AsciiDoc encloses the source code in a DocBook <emphasis>programlisting</emphasis>
+element and leaves source code highlighting to the DocBook toolchain
+(dblatex has a particularly nice programlisting highlighter). The
+DocBook programlisting element is assigned two attributes:</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+The <emphasis>language</emphasis> attribute is set to the AsciiDoc <emphasis>language</emphasis>
+ attribute.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <emphasis>linenumbering</emphasis> attribute is set to the AsciiDoc <emphasis>src_numbered</emphasis>
+ attribute (<emphasis>numbered</emphasis> or <emphasis>unnumbered</emphasis>).
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section xml:id="_html_outputs">
+<title>HTML Outputs</title>
+<simpara>You have the choice of three HTML source code highlighters, your
+selection is determined by the <emphasis>source-highlighter</emphasis> attribute (defaults
+to <emphasis>source-highlight</emphasis>):</simpara>
+<note><simpara>Set the <emphasis>source-highlighter</emphasis> attribute from the <literal>asciidoc(1)</literal>
+command-line or in the document header (not in the document body,
+because the configuration file conditional macros are processed at
+load time).</simpara></note>
+<section xml:id="_gnu_source_highlight">
+<title>GNU Source Highlight</title>
+<simpara>The default highlighter is the
+<link xlink:href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</link> which
+can highlight <emphasis>html4</emphasis>, <emphasis>html5</emphasis> and <emphasis>xhtml11</emphasis> outputs. The GNU
+source-highlight must be installed and the <emphasis>source-highlight</emphasis> command
+must reside in the shell search <emphasis>PATH</emphasis>.</simpara>
+</section>
+<section xml:id="_highlight">
+<title>Highlight</title>
+<simpara>You can use
+<link xlink:href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</link>
+syntax highlighter for <emphasis>xhtml11</emphasis>, <emphasis>html5</emphasis> and <emphasis>html4</emphasis> outputs (set the
+<emphasis>source-highlighter</emphasis> attribute to <emphasis>highlighter</emphasis>).</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+The <emphasis>highlight</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+To make Highlighter your default highlighter put the following line
+ your <literal>~/.asciidoc/asciidoc.conf</literal> file:
+</simpara>
+<literallayout class="monospaced">source-highlighter=highlight</literallayout>
+</listitem>
+<listitem>
+<simpara>
+The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Highlighter using the
+ <literal>--encoding</literal> command-line option.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section xml:id="_pygments">
+<title>Pygments</title>
+<simpara>The <link xlink:href="http://pygments.org/">Pygments</link> syntax highlighter can be used for
+<emphasis>xhtml11</emphasis> and <emphasis>html5</emphasis> outputs (set the <emphasis>source-highlighter</emphasis> attribute
+to <emphasis>pygments</emphasis>).</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+The <emphasis>pygmentize</emphasis> command must reside in the shell search <emphasis>PATH</emphasis>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+You can customize Pygments CSS styles by editing
+ <literal>./stylesheets/pygments.css</literal>. The <literal>pygments.css</literal> CSS file was
+ generated with:
+</simpara>
+<literallayout class="monospaced">from pygments.formatters import HtmlFormatter
+print HtmlFormatter().get_style_defs('.highlight')</literallayout>
+</listitem>
+<listitem>
+<simpara>
+To make Pygments your default highlighter put the following line
+ your <literal>~/.asciidoc/asciidoc.conf</literal> file:
+</simpara>
+<literallayout class="monospaced">source-highlighter=pygments</literallayout>
+</listitem>
+<listitem>
+<simpara>
+The AsciiDoc <emphasis>encoding</emphasis> attribute is passed to Pygments using the
+ <literal>-O</literal> command-line option.
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+</section>
+<section xml:id="_block_attributes">
+<title>Block attributes</title>
+<simpara>The following attributes can be included in source code block
+attribute lists.</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+<emphasis>style</emphasis> and <emphasis>language</emphasis> are mandatory.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+<emphasis>style</emphasis>, <emphasis>language</emphasis> and <emphasis>src_numbered</emphasis> are the first three
+ positional attributes in that order.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <emphasis>args</emphasis> attribute allows the inclusion of arbitrary (highlighter
+ dependent) command options.
+</simpara>
+</listitem>
+</itemizedlist>
+<variablelist>
+<varlistentry>
+<term>
+style
+</term>
+<listitem>
+<simpara>
+ Set to <emphasis>source</emphasis>.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+language
+</term>
+<listitem>
+<simpara>
+ The source code language name.
+</simpara>
+<note><simpara>The language names vary between highlighters&#8201;&#8212;&#8201;consult the
+selected highlighter manual.</simpara></note>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+src_numbered
+</term>
+<listitem>
+<simpara>
+ Set to <emphasis>numbered</emphasis> to include line numbers.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+src_tab
+</term>
+<listitem>
+<simpara>
+ Set tab size (GNU source-highlight only).
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+args
+</term>
+<listitem>
+<simpara>
+ Include this attribute value in the highlighter command-line (HTML
+ outputs) or in the <literal>programlisting</literal> element (DocBook).
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section xml:id="_testing">
+<title>Testing</title>
+<simpara>Test the filter by converting the test file to HTML with AsciiDoc:</simpara>
+<literallayout class="monospaced">$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
+$ firefox ./filters/source/source-highlight-filter-test.html &amp;</literallayout>
+</section>
+<section xml:id="_examples">
+<title>Examples</title>
+<section xml:id="_source_code_paragraphs">
+<title>Source code paragraphs</title>
+<simpara>The <literal>source</literal> paragraph style will highlight a paragraph of source
+code. These three code paragraphs:</simpara>
+<screen>[source,python]
+if n &lt; 0: print 'Hello World!'
+
+:language: python
+
+[source]
+if n &lt; 0: print 'Hello World!'
+
+[source,ruby,numbered]
+[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</screen>
+<simpara>Render this highlighted source code:</simpara>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+<programlisting language="ruby" linenumbering="numbered">[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</programlisting>
+</section>
+<section xml:id="_unnumbered_source_code_listing">
+<title>Unnumbered source code listing</title>
+<simpara>This source-highlight filtered block:</simpara>
+<screen> [source,python]
+ ---------------------------------------------------------------------
+ ''' A multi-line
+ comment.'''
+ def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+ ---------------------------------------------------------------------</screen>
+<simpara>Renders this highlighted source code:</simpara>
+<programlisting language="python" linenumbering="unnumbered">''' A multi-line
+ comment.'''
+def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word</programlisting>
+</section>
+<section xml:id="_numbered_source_code_listing_with_callouts">
+<title>Numbered source code listing with callouts</title>
+<simpara>This source-highlight filtered block:</simpara>
+<screen> [source,ruby,numbered]
+ ---------------------------------------------------------------------
+ #
+ # Useful Ruby base class extensions.
+ #
+
+ class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+ end
+
+ if $0 == __FILE__ # &lt;1&gt;
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # &lt;2&gt;
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+ end
+ ---------------------------------------------------------------------
+
+ &lt;1&gt; First callout.
+ &lt;2&gt; Second callout.</screen>
+<simpara>Renders this highlighted source code:</simpara>
+<programlisting language="ruby" linenumbering="numbered">#
+# Useful Ruby base class extensions.
+#
+
+class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+end
+
+if $0 == __FILE__ # <co xml:id="CO1-1"/>
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # <co xml:id="CO1-2"/>
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+end</programlisting>
+<calloutlist>
+<callout arearefs="CO1-1">
+<para>
+First callout.
+</para>
+</callout>
+<callout arearefs="CO1-2">
+<para>
+Second callout.
+</para>
+</callout>
+</calloutlist>
+<tip>
+<itemizedlist>
+<listitem>
+<simpara>
+If the source <emphasis>language</emphasis> attribute has been set (using an
+ <emphasis>AttributeEntry</emphasis> or from the command-line) you don&#8217;t have to specify
+ it in each source code block.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+You should place callout markers inside source code comments to
+ ensure they are not misinterpreted and mangled by the highlighter.
+</simpara>
+</listitem>
+</itemizedlist>
+</tip>
+</section>
+</section>
+</article>
diff --git a/tests/data/source-highlight-filter-html4.html b/tests/data/source-highlight-filter-html4.html
index 7d66fd4..65ede88 100644
--- a/tests/data/source-highlight-filter-html4.html
+++ b/tests/data/source-highlight-filter-html4.html
@@ -1,372 +1,372 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Source Code Highlight Filter</title>
-</head>
-<body>
-<h1>Source Code Highlight Filter</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
-code syntax.</p>
-<hr>
-<h2><a name="_docbook_outputs"></a>DocBook Outputs</h2>
-<p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
-element and leaves source code highlighting to the DocBook toolchain
-(dblatex has a particularly nice programlisting highlighter). The
-DocBook programlisting element is assigned two attributes:</p>
-<ol type="1">
-<li>
-<p>
-The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
- attribute.
-</p>
-</li>
-<li>
-<p>
-The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
- attribute (<em>numbered</em> or <em>unnumbered</em>).
-</p>
-</li>
-</ol>
-<hr>
-<h2><a name="_html_outputs"></a>HTML Outputs</h2>
-<p>You have the choice of three HTML source code highlighters, your
-selection is determined by the <em>source-highlighter</em> attribute (defaults
-to <em>source-highlight</em>):</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Set the <em>source-highlighter</em> attribute from the <code>asciidoc(1)</code>
-command-line or in the document header (not in the document body,
-because the configuration file conditional macros are processed at
-load time).</td></tr></table>
-<h3><a name="_gnu_source_highlight"></a>GNU Source Highlight</h3>
-<p>The default highlighter is the
-<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
-can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
-source-highlight must be installed and the <em>source-highlight</em> command
-must reside in the shell search <em>PATH</em>.</p>
-<h3><a name="_highlight"></a>Highlight</h3>
-<p>You can use
-<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
-syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
-<em>source-highlighter</em> attribute to <em>highlighter</em>).</p>
-<ul>
-<li>
-<p>
-The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-To make Highlighter your default highlighter put the following line
- your <code>~/.asciidoc/asciidoc.conf</code> file:
-</p>
-<pre><code>source-highlighter=highlight</code></pre>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
- <code>--encoding</code> command-line option.
-</p>
-</li>
-</ul>
-<h3><a name="_pygments"></a>Pygments</h3>
-<p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
-<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
-to <em>pygments</em>).</p>
-<ul>
-<li>
-<p>
-The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-You can customize Pygments CSS styles by editing
- <code>./stylesheets/pygments.css</code>. The <code>pygments.css</code> CSS file was
- generated with:
-</p>
-<pre><code>from pygments.formatters import HtmlFormatter
-print HtmlFormatter().get_style_defs('.highlight')</code></pre>
-</li>
-<li>
-<p>
-To make Pygments your default highlighter put the following line
- your <code>~/.asciidoc/asciidoc.conf</code> file:
-</p>
-<pre><code>source-highlighter=pygments</code></pre>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
- <code>-O</code> command-line option.
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_block_attributes"></a>Block attributes</h2>
-<p>The following attributes can be included in source code block
-attribute lists.</p>
-<ul>
-<li>
-<p>
-<em>style</em> and <em>language</em> are mandatory.
-</p>
-</li>
-<li>
-<p>
-<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
- positional attributes in that order.
-</p>
-</li>
-<li>
-<p>
-The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
- dependent) command options.
-</p>
-</li>
-</ul>
-<dl>
-<dt>
-style
-</dt>
-<dd>
-<p>
- Set to <em>source</em>.
-</p>
-</dd>
-<dt>
-language
-</dt>
-<dd>
-<p>
- The source code language name.
-</p>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
-selected highlighter manual.</td></tr></table>
-</dd>
-<dt>
-src_numbered
-</dt>
-<dd>
-<p>
- Set to <em>numbered</em> to include line numbers.
-</p>
-</dd>
-<dt>
-src_tab
-</dt>
-<dd>
-<p>
- Set tab size (GNU source-highlight only).
-</p>
-</dd>
-<dt>
-args
-</dt>
-<dd>
-<p>
- Include this attribute value in the highlighter command-line (HTML
- outputs) or in the <code>programlisting</code> element (DocBook).
-</p>
-</dd>
-</dl>
-<hr>
-<h2><a name="_testing"></a>Testing</h2>
-<p>Test the filter by converting the test file to HTML with AsciiDoc:</p>
-<pre><code>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
-$ firefox ./filters/source/source-highlight-filter-test.html &amp;</code></pre>
-<hr>
-<h2><a name="_examples"></a>Examples</h2>
-<h3><a name="_source_code_paragraphs"></a>Source code paragraphs</h3>
-<p>The <code>source</code> paragraph style will highlight a paragraph of source
-code. These three code paragraphs:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[source,python]
-if n &lt; 0: print 'Hello World!'
-
-:language: python
-
-[source]
-if n &lt; 0: print 'Hello World!'
-
-[source,ruby,numbered]
-[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</code></pre>
-</td></tr></table>
-<p>Render this highlighted source code:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><font color="#000000"> 1:</font> <font color="#990000">[</font><b><font color="#0000FF">true</font></b><font color="#990000">,</font> <b><font color="#0000FF">false</font></b><font color="#990000">].</font>cycle<font color="#990000">([</font><font color="#993399">0</font><font color="#990000">,</font> <font color="#993399">1</font><font color="#990000">,</font> <font color="#993399">2</font><font color="#990000">,</font> <font color="#993399">3</font><font color="#990000">,</font> <font color="#993399">4</font><font color="#990000">])</font> <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>a<font color="#990000">,</font> b<font color="#990000">|</font>
-<font color="#000000"> 2:</font> puts <font color="#FF0000">"#{a.inspect} =&gt; #{b.inspect}"</font></tt></pre></td></tr></table>
-<h3><a name="_unnumbered_source_code_listing"></a>Unnumbered source code listing</h3>
-<p>This source-highlight filtered block:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code> [source,python]
- ---------------------------------------------------------------------
- ''' A multi-line
- comment.'''
- def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
- ---------------------------------------------------------------------</code></pre>
-</td></tr></table>
-<p>Renders this highlighted source code:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
-<i><font color="#9A1900"> comment.'''</font></i>
-<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
-<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
- word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font> <i><font color="#9A1900"># Inline comment</font></i>
- <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
- <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
- <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
- <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
-<h3><a name="_numbered_source_code_listing_with_callouts"></a>Numbered source code listing with callouts</h3>
-<p>This source-highlight filtered block:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code> [source,ruby,numbered]
- ---------------------------------------------------------------------
- #
- # Useful Ruby base class extensions.
- #
-
- class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
- end
-
- if $0 == __FILE__ # &lt;1&gt;
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # &lt;2&gt;
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
- end
- ---------------------------------------------------------------------
-
- &lt;1&gt; First callout.
- &lt;2&gt; Second callout.</code></pre>
-</td></tr></table>
-<p>Renders this highlighted source code:</p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><font color="#000000"> 1:</font> <i><font color="#9A1900">#</font></i>
-<font color="#000000"> 2:</font> <i><font color="#9A1900"># Useful Ruby base class extensions.</font></i>
-<font color="#000000"> 3:</font> <i><font color="#9A1900">#</font></i>
-<font color="#000000"> 4:</font>
-<font color="#000000"> 5:</font> <b><font color="#0000FF">class</font></b> Array
-<font color="#000000"> 6:</font>
-<font color="#000000"> 7:</font> <i><font color="#9A1900"># Execute a block passing it corresponding items in</font></i>
-<font color="#000000"> 8:</font> <i><font color="#9A1900"># +self+ and +other_array+.</font></i>
-<font color="#000000"> 9:</font> <i><font color="#9A1900"># If self has less items than other_array it is repeated.</font></i>
-<font color="#000000"> 10:</font>
-<font color="#000000"> 11:</font> <b><font color="#0000FF">def</font></b> cycle<font color="#990000">(</font>other_array<font color="#990000">)</font> <i><font color="#9A1900"># :yields: item, other_item</font></i>
-<font color="#000000"> 12:</font> other_array<font color="#990000">.</font>each_with_index <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>item<font color="#990000">,</font> index<font color="#990000">|</font>
-<font color="#000000"> 13:</font> <b><font color="#0000FF">yield</font></b><font color="#990000">(</font><b><font color="#0000FF">self</font></b><font color="#990000">[</font>index <font color="#990000">%</font> <b><font color="#0000FF">self</font></b><font color="#990000">.</font>length<font color="#990000">],</font> item<font color="#990000">)</font>
-<font color="#000000"> 14:</font> <b><font color="#0000FF">end</font></b>
-<font color="#000000"> 15:</font> <b><font color="#0000FF">end</font></b>
-<font color="#000000"> 16:</font>
-<font color="#000000"> 17:</font> <b><font color="#0000FF">end</font></b>
-<font color="#000000"> 18:</font>
-<font color="#000000"> 19:</font> <b><font color="#0000FF">if</font></b> <font color="#009900">$0</font> <font color="#990000">==</font> <b><font color="#0000FF">__FILE__</font></b> <i><font color="#9A1900"># <b>&lt;1&gt;</b></font></i>
-<font color="#000000"> 20:</font> <i><font color="#9A1900"># Array#cycle test</font></i>
-<font color="#000000"> 21:</font> <i><font color="#9A1900"># true =&gt; 0</font></i>
-<font color="#000000"> 22:</font> <i><font color="#9A1900"># false =&gt; 1</font></i>
-<font color="#000000"> 23:</font> <i><font color="#9A1900"># true =&gt; 2</font></i>
-<font color="#000000"> 24:</font> <i><font color="#9A1900"># false =&gt; 3</font></i>
-<font color="#000000"> 25:</font> <i><font color="#9A1900"># true =&gt; 4</font></i>
-<font color="#000000"> 26:</font> puts <font color="#FF0000">'Array#cycle test'</font> <i><font color="#9A1900"># <b>&lt;2&gt;</b></font></i>
-<font color="#000000"> 27:</font> <font color="#990000">[</font><b><font color="#0000FF">true</font></b><font color="#990000">,</font> <b><font color="#0000FF">false</font></b><font color="#990000">].</font>cycle<font color="#990000">([</font><font color="#993399">0</font><font color="#990000">,</font> <font color="#993399">1</font><font color="#990000">,</font> <font color="#993399">2</font><font color="#990000">,</font> <font color="#993399">3</font><font color="#990000">,</font> <font color="#993399">4</font><font color="#990000">])</font> <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>a<font color="#990000">,</font> b<font color="#990000">|</font>
-<font color="#000000"> 28:</font> puts <font color="#FF0000">"#{a.inspect} =&gt; #{b.inspect}"</font>
-<font color="#000000"> 29:</font> <b><font color="#0000FF">end</font></b>
-<font color="#000000"> 30:</font> <b><font color="#0000FF">end</font></b></tt></pre></td></tr></table>
-<ol>
-<li>
-<p>
-First callout.
-</p>
-</li>
-<li>
-<p>
-Second callout.
-</p>
-</li>
-</ol>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">
-<ul>
-<li>
-<p>
-If the source <em>language</em> attribute has been set (using an
- <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
- it in each source code block.
-</p>
-</li>
-<li>
-<p>
-You should place callout markers inside source code comments to
- ensure they are not misinterpreted and mangled by the highlighter.
-</p>
-</li>
-</ul>
-</td></tr></table>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Source Code Highlight Filter</title>
+</head>
+<body>
+<h1>Source Code Highlight Filter</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
+code syntax.</p>
+<hr>
+<h2><a name="_docbook_outputs"></a>DocBook Outputs</h2>
+<p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
+element and leaves source code highlighting to the DocBook toolchain
+(dblatex has a particularly nice programlisting highlighter). The
+DocBook programlisting element is assigned two attributes:</p>
+<ol type="1">
+<li>
+<p>
+The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
+ attribute.
+</p>
+</li>
+<li>
+<p>
+The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
+ attribute (<em>numbered</em> or <em>unnumbered</em>).
+</p>
+</li>
+</ol>
+<hr>
+<h2><a name="_html_outputs"></a>HTML Outputs</h2>
+<p>You have the choice of three HTML source code highlighters, your
+selection is determined by the <em>source-highlighter</em> attribute (defaults
+to <em>source-highlight</em>):</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Set the <em>source-highlighter</em> attribute from the <code>asciidoc(1)</code>
+command-line or in the document header (not in the document body,
+because the configuration file conditional macros are processed at
+load time).</td></tr></table>
+<h3><a name="_gnu_source_highlight"></a>GNU Source Highlight</h3>
+<p>The default highlighter is the
+<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
+can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
+source-highlight must be installed and the <em>source-highlight</em> command
+must reside in the shell search <em>PATH</em>.</p>
+<h3><a name="_highlight"></a>Highlight</h3>
+<p>You can use
+<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
+syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
+<em>source-highlighter</em> attribute to <em>highlighter</em>).</p>
+<ul>
+<li>
+<p>
+The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+To make Highlighter your default highlighter put the following line
+ your <code>~/.asciidoc/asciidoc.conf</code> file:
+</p>
+<pre><code>source-highlighter=highlight</code></pre>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
+ <code>--encoding</code> command-line option.
+</p>
+</li>
+</ul>
+<h3><a name="_pygments"></a>Pygments</h3>
+<p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
+<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
+to <em>pygments</em>).</p>
+<ul>
+<li>
+<p>
+The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+You can customize Pygments CSS styles by editing
+ <code>./stylesheets/pygments.css</code>. The <code>pygments.css</code> CSS file was
+ generated with:
+</p>
+<pre><code>from pygments.formatters import HtmlFormatter
+print HtmlFormatter().get_style_defs('.highlight')</code></pre>
+</li>
+<li>
+<p>
+To make Pygments your default highlighter put the following line
+ your <code>~/.asciidoc/asciidoc.conf</code> file:
+</p>
+<pre><code>source-highlighter=pygments</code></pre>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
+ <code>-O</code> command-line option.
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_block_attributes"></a>Block attributes</h2>
+<p>The following attributes can be included in source code block
+attribute lists.</p>
+<ul>
+<li>
+<p>
+<em>style</em> and <em>language</em> are mandatory.
+</p>
+</li>
+<li>
+<p>
+<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
+ positional attributes in that order.
+</p>
+</li>
+<li>
+<p>
+The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
+ dependent) command options.
+</p>
+</li>
+</ul>
+<dl>
+<dt>
+style
+</dt>
+<dd>
+<p>
+ Set to <em>source</em>.
+</p>
+</dd>
+<dt>
+language
+</dt>
+<dd>
+<p>
+ The source code language name.
+</p>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
+selected highlighter manual.</td></tr></table>
+</dd>
+<dt>
+src_numbered
+</dt>
+<dd>
+<p>
+ Set to <em>numbered</em> to include line numbers.
+</p>
+</dd>
+<dt>
+src_tab
+</dt>
+<dd>
+<p>
+ Set tab size (GNU source-highlight only).
+</p>
+</dd>
+<dt>
+args
+</dt>
+<dd>
+<p>
+ Include this attribute value in the highlighter command-line (HTML
+ outputs) or in the <code>programlisting</code> element (DocBook).
+</p>
+</dd>
+</dl>
+<hr>
+<h2><a name="_testing"></a>Testing</h2>
+<p>Test the filter by converting the test file to HTML with AsciiDoc:</p>
+<pre><code>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
+$ firefox ./filters/source/source-highlight-filter-test.html &amp;</code></pre>
+<hr>
+<h2><a name="_examples"></a>Examples</h2>
+<h3><a name="_source_code_paragraphs"></a>Source code paragraphs</h3>
+<p>The <code>source</code> paragraph style will highlight a paragraph of source
+code. These three code paragraphs:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[source,python]
+if n &lt; 0: print 'Hello World!'
+
+:language: python
+
+[source]
+if n &lt; 0: print 'Hello World!'
+
+[source,ruby,numbered]
+[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</code></pre>
+</td></tr></table>
+<p>Render this highlighted source code:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#000000"> 1:</font> <font color="#990000">[</font><b><font color="#0000FF">true</font></b><font color="#990000">,</font> <b><font color="#0000FF">false</font></b><font color="#990000">].</font>cycle<font color="#990000">([</font><font color="#993399">0</font><font color="#990000">,</font> <font color="#993399">1</font><font color="#990000">,</font> <font color="#993399">2</font><font color="#990000">,</font> <font color="#993399">3</font><font color="#990000">,</font> <font color="#993399">4</font><font color="#990000">])</font> <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>a<font color="#990000">,</font> b<font color="#990000">|</font>
+<font color="#000000"> 2:</font> puts <font color="#FF0000">"#{a.inspect} =&gt; #{b.inspect}"</font></tt></pre></td></tr></table>
+<h3><a name="_unnumbered_source_code_listing"></a>Unnumbered source code listing</h3>
+<p>This source-highlight filtered block:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code> [source,python]
+ ---------------------------------------------------------------------
+ ''' A multi-line
+ comment.'''
+ def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+ ---------------------------------------------------------------------</code></pre>
+</td></tr></table>
+<p>Renders this highlighted source code:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><i><font color="#9A1900">''' A multi-line</font></i>
+<i><font color="#9A1900"> comment.'''</font></i>
+<b><font color="#0000FF">def</font></b> <b><font color="#000000">sub_word</font></b><font color="#990000">(</font>mo<font color="#990000">):</font>
+<i><font color="#9A1900"> ''' Single line comment.'''</font></i>
+ word <font color="#990000">=</font> mo<font color="#990000">.</font><b><font color="#000000">group</font></b><font color="#990000">(</font><font color="#FF0000">'word'</font><font color="#990000">)</font> <i><font color="#9A1900"># Inline comment</font></i>
+ <b><font color="#0000FF">if</font></b> word <b><font color="#0000FF">in</font></b> keywords<font color="#990000">[</font>language<font color="#990000">]:</font>
+ <b><font color="#0000FF">return</font></b> quote <font color="#990000">+</font> word <font color="#990000">+</font> quote
+ <b><font color="#0000FF">else</font></b><font color="#990000">:</font>
+ <b><font color="#0000FF">return</font></b> word</tt></pre></td></tr></table>
+<h3><a name="_numbered_source_code_listing_with_callouts"></a>Numbered source code listing with callouts</h3>
+<p>This source-highlight filtered block:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code> [source,ruby,numbered]
+ ---------------------------------------------------------------------
+ #
+ # Useful Ruby base class extensions.
+ #
+
+ class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+ end
+
+ if $0 == __FILE__ # &lt;1&gt;
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # &lt;2&gt;
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+ end
+ ---------------------------------------------------------------------
+
+ &lt;1&gt; First callout.
+ &lt;2&gt; Second callout.</code></pre>
+</td></tr></table>
+<p>Renders this highlighted source code:</p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#000000"> 1:</font> <i><font color="#9A1900">#</font></i>
+<font color="#000000"> 2:</font> <i><font color="#9A1900"># Useful Ruby base class extensions.</font></i>
+<font color="#000000"> 3:</font> <i><font color="#9A1900">#</font></i>
+<font color="#000000"> 4:</font>
+<font color="#000000"> 5:</font> <b><font color="#0000FF">class</font></b> Array
+<font color="#000000"> 6:</font>
+<font color="#000000"> 7:</font> <i><font color="#9A1900"># Execute a block passing it corresponding items in</font></i>
+<font color="#000000"> 8:</font> <i><font color="#9A1900"># +self+ and +other_array+.</font></i>
+<font color="#000000"> 9:</font> <i><font color="#9A1900"># If self has less items than other_array it is repeated.</font></i>
+<font color="#000000"> 10:</font>
+<font color="#000000"> 11:</font> <b><font color="#0000FF">def</font></b> cycle<font color="#990000">(</font>other_array<font color="#990000">)</font> <i><font color="#9A1900"># :yields: item, other_item</font></i>
+<font color="#000000"> 12:</font> other_array<font color="#990000">.</font>each_with_index <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>item<font color="#990000">,</font> index<font color="#990000">|</font>
+<font color="#000000"> 13:</font> <b><font color="#0000FF">yield</font></b><font color="#990000">(</font><b><font color="#0000FF">self</font></b><font color="#990000">[</font>index <font color="#990000">%</font> <b><font color="#0000FF">self</font></b><font color="#990000">.</font>length<font color="#990000">],</font> item<font color="#990000">)</font>
+<font color="#000000"> 14:</font> <b><font color="#0000FF">end</font></b>
+<font color="#000000"> 15:</font> <b><font color="#0000FF">end</font></b>
+<font color="#000000"> 16:</font>
+<font color="#000000"> 17:</font> <b><font color="#0000FF">end</font></b>
+<font color="#000000"> 18:</font>
+<font color="#000000"> 19:</font> <b><font color="#0000FF">if</font></b> <font color="#009900">$0</font> <font color="#990000">==</font> <b><font color="#0000FF">__FILE__</font></b> <i><font color="#9A1900"># <b>&lt;1&gt;</b></font></i>
+<font color="#000000"> 20:</font> <i><font color="#9A1900"># Array#cycle test</font></i>
+<font color="#000000"> 21:</font> <i><font color="#9A1900"># true =&gt; 0</font></i>
+<font color="#000000"> 22:</font> <i><font color="#9A1900"># false =&gt; 1</font></i>
+<font color="#000000"> 23:</font> <i><font color="#9A1900"># true =&gt; 2</font></i>
+<font color="#000000"> 24:</font> <i><font color="#9A1900"># false =&gt; 3</font></i>
+<font color="#000000"> 25:</font> <i><font color="#9A1900"># true =&gt; 4</font></i>
+<font color="#000000"> 26:</font> puts <font color="#FF0000">'Array#cycle test'</font> <i><font color="#9A1900"># <b>&lt;2&gt;</b></font></i>
+<font color="#000000"> 27:</font> <font color="#990000">[</font><b><font color="#0000FF">true</font></b><font color="#990000">,</font> <b><font color="#0000FF">false</font></b><font color="#990000">].</font>cycle<font color="#990000">([</font><font color="#993399">0</font><font color="#990000">,</font> <font color="#993399">1</font><font color="#990000">,</font> <font color="#993399">2</font><font color="#990000">,</font> <font color="#993399">3</font><font color="#990000">,</font> <font color="#993399">4</font><font color="#990000">])</font> <b><font color="#0000FF">do</font></b> <font color="#990000">|</font>a<font color="#990000">,</font> b<font color="#990000">|</font>
+<font color="#000000"> 28:</font> puts <font color="#FF0000">"#{a.inspect} =&gt; #{b.inspect}"</font>
+<font color="#000000"> 29:</font> <b><font color="#0000FF">end</font></b>
+<font color="#000000"> 30:</font> <b><font color="#0000FF">end</font></b></tt></pre></td></tr></table>
+<ol>
+<li>
+<p>
+First callout.
+</p>
+</li>
+<li>
+<p>
+Second callout.
+</p>
+</li>
+</ol>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">
+<ul>
+<li>
+<p>
+If the source <em>language</em> attribute has been set (using an
+ <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
+ it in each source code block.
+</p>
+</li>
+<li>
+<p>
+You should place callout markers inside source code comments to
+ ensure they are not misinterpreted and mangled by the highlighter.
+</p>
+</li>
+</ul>
+</td></tr></table>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/source-highlight-filter-html5.html b/tests/data/source-highlight-filter-html5.html
index c309c2b..37e4dba 100644
--- a/tests/data/source-highlight-filter-html5.html
+++ b/tests/data/source-highlight-filter-html5.html
@@ -1,1156 +1,1156 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>Source Code Highlight Filter</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Source Code Highlight Filter</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
-code syntax.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_docbook_outputs">DocBook Outputs</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
-element and leaves source code highlighting to the DocBook toolchain
-(dblatex has a particularly nice programlisting highlighter). The
-DocBook programlisting element is assigned two attributes:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
- attribute.
-</p>
-</li>
-<li>
-<p>
-The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
- attribute (<em>numbered</em> or <em>unnumbered</em>).
-</p>
-</li>
-</ol></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_html_outputs">HTML Outputs</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>You have the choice of three HTML source code highlighters, your
-selection is determined by the <em>source-highlighter</em> attribute (defaults
-to <em>source-highlight</em>):</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Set the <em>source-highlighter</em> attribute from the <span class="monospaced">asciidoc(1)</span>
-command-line or in the document header (not in the document body,
-because the configuration file conditional macros are processed at
-load time).</td>
-</tr></table>
-</div>
-<div class="sect2">
-<h3 id="_gnu_source_highlight">GNU Source Highlight</h3>
-<div class="paragraph"><p>The default highlighter is the
-<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
-can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
-source-highlight must be installed and the <em>source-highlight</em> command
-must reside in the shell search <em>PATH</em>.</p></div>
-</div>
-<div class="sect2">
-<h3 id="_highlight">Highlight</h3>
-<div class="paragraph"><p>You can use
-<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
-syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
-<em>source-highlighter</em> attribute to <em>highlighter</em>).</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-To make Highlighter your default highlighter put the following line
- your <span class="monospaced">~/.asciidoc/asciidoc.conf</span> file:
-</p>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>source-highlighter=highlight</pre>
-</div></div>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
- <span class="monospaced">--encoding</span> command-line option.
-</p>
-</li>
-</ul></div>
-</div>
-<div class="sect2">
-<h3 id="_pygments">Pygments</h3>
-<div class="paragraph"><p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
-<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
-to <em>pygments</em>).</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-You can customize Pygments CSS styles by editing
- <span class="monospaced">./stylesheets/pygments.css</span>. The <span class="monospaced">pygments.css</span> CSS file was
- generated with:
-</p>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>from pygments.formatters import HtmlFormatter
-print HtmlFormatter().get_style_defs('.highlight')</pre>
-</div></div>
-</li>
-<li>
-<p>
-To make Pygments your default highlighter put the following line
- your <span class="monospaced">~/.asciidoc/asciidoc.conf</span> file:
-</p>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>source-highlighter=pygments</pre>
-</div></div>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
- <span class="monospaced">-O</span> command-line option.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_block_attributes">Block attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The following attributes can be included in source code block
-attribute lists.</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-<em>style</em> and <em>language</em> are mandatory.
-</p>
-</li>
-<li>
-<p>
-<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
- positional attributes in that order.
-</p>
-</li>
-<li>
-<p>
-The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
- dependent) command options.
-</p>
-</li>
-</ul></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-style
-</dt>
-<dd>
-<p>
- Set to <em>source</em>.
-</p>
-</dd>
-<dt class="hdlist1">
-language
-</dt>
-<dd>
-<p>
- The source code language name.
-</p>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
-selected highlighter manual.</td>
-</tr></table>
-</div>
-</dd>
-<dt class="hdlist1">
-src_numbered
-</dt>
-<dd>
-<p>
- Set to <em>numbered</em> to include line numbers.
-</p>
-</dd>
-<dt class="hdlist1">
-src_tab
-</dt>
-<dd>
-<p>
- Set tab size (GNU source-highlight only).
-</p>
-</dd>
-<dt class="hdlist1">
-args
-</dt>
-<dd>
-<p>
- Include this attribute value in the highlighter command-line (HTML
- outputs) or in the <span class="monospaced">programlisting</span> element (DocBook).
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_testing">Testing</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Test the filter by converting the test file to HTML with AsciiDoc:</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
-$ firefox ./filters/source/source-highlight-filter-test.html &amp;</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_examples">Examples</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_source_code_paragraphs">Source code paragraphs</h3>
-<div class="paragraph"><p>The <span class="monospaced">source</span> paragraph style will highlight a paragraph of source
-code. These three code paragraphs:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>[source,python]
-if n &lt; 0: print 'Hello World!'
-
-:language: python
-
-[source]
-if n &lt; 0: print 'Hello World!'
-
-[source,ruby,numbered]
-[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</pre>
-</div></div>
-<div class="paragraph"><p>Render this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="color: #000000"> 1:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
-<span style="color: #000000"> 2:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span></tt></pre></div></div>
-</div>
-<div class="sect2">
-<h3 id="_unnumbered_source_code_listing">Unnumbered source code listing</h3>
-<div class="paragraph"><p>This source-highlight filtered block:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre> [source,python]
- ---------------------------------------------------------------------
- ''' A multi-line
- comment.'''
- def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
- ---------------------------------------------------------------------</pre>
-</div></div>
-<div class="paragraph"><p>Renders this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-</div>
-<div class="sect2">
-<h3 id="_numbered_source_code_listing_with_callouts">Numbered source code listing with callouts</h3>
-<div class="paragraph"><p>This source-highlight filtered block:</p></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre> [source,ruby,numbered]
- ---------------------------------------------------------------------
- #
- # Useful Ruby base class extensions.
- #
-
- class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
- end
-
- if $0 == __FILE__ # &lt;1&gt;
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # &lt;2&gt;
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
- end
- ---------------------------------------------------------------------
-
- &lt;1&gt; First callout.
- &lt;2&gt; Second callout.</pre>
-</div></div>
-<div class="paragraph"><p>Renders this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="color: #000000"> 1:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
-<span style="color: #000000"> 2:</span> <span style="font-style: italic"><span style="color: #9A1900"># Useful Ruby base class extensions.</span></span>
-<span style="color: #000000"> 3:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
-<span style="color: #000000"> 4:</span>
-<span style="color: #000000"> 5:</span> <span style="font-weight: bold"><span style="color: #0000FF">class</span></span> Array
-<span style="color: #000000"> 6:</span>
-<span style="color: #000000"> 7:</span> <span style="font-style: italic"><span style="color: #9A1900"># Execute a block passing it corresponding items in</span></span>
-<span style="color: #000000"> 8:</span> <span style="font-style: italic"><span style="color: #9A1900"># +self+ and +other_array+.</span></span>
-<span style="color: #000000"> 9:</span> <span style="font-style: italic"><span style="color: #9A1900"># If self has less items than other_array it is repeated.</span></span>
-<span style="color: #000000"> 10:</span>
-<span style="color: #000000"> 11:</span> <span style="font-weight: bold"><span style="color: #0000FF">def</span></span> cycle<span style="color: #990000">(</span>other_array<span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># :yields: item, other_item</span></span>
-<span style="color: #000000"> 12:</span> other_array<span style="color: #990000">.</span>each_with_index <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>item<span style="color: #990000">,</span> index<span style="color: #990000">|</span>
-<span style="color: #000000"> 13:</span> <span style="font-weight: bold"><span style="color: #0000FF">yield</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">[</span>index <span style="color: #990000">%</span> <span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">.</span>length<span style="color: #990000">],</span> item<span style="color: #990000">)</span>
-<span style="color: #000000"> 14:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 15:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 16:</span>
-<span style="color: #000000"> 17:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 18:</span>
-<span style="color: #000000"> 19:</span> <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #009900">$0</span> <span style="color: #990000">==</span> <span style="font-weight: bold"><span style="color: #0000FF">__FILE__</span></span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;1&gt;</b></span></span>
-<span style="color: #000000"> 20:</span> <span style="font-style: italic"><span style="color: #9A1900"># Array#cycle test</span></span>
-<span style="color: #000000"> 21:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 0</span></span>
-<span style="color: #000000"> 22:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 1</span></span>
-<span style="color: #000000"> 23:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 2</span></span>
-<span style="color: #000000"> 24:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 3</span></span>
-<span style="color: #000000"> 25:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 4</span></span>
-<span style="color: #000000"> 26:</span> puts <span style="color: #FF0000">'Array#cycle test'</span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;2&gt;</b></span></span>
-<span style="color: #000000"> 27:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
-<span style="color: #000000"> 28:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span>
-<span style="color: #000000"> 29:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 30:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
-<div class="colist arabic"><ol>
-<li>
-<p>
-First callout.
-</p>
-</li>
-<li>
-<p>
-Second callout.
-</p>
-</li>
-</ol></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="ulist"><ul>
-<li>
-<p>
-If the source <em>language</em> attribute has been set (using an
- <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
- it in each source code block.
-</p>
-</li>
-<li>
-<p>
-You should place callout markers inside source code comments to
- ensure they are not misinterpreted and mangled by the highlighter.
-</p>
-</li>
-</ul></div>
-</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>Source Code Highlight Filter</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Source Code Highlight Filter</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
+code syntax.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_docbook_outputs">DocBook Outputs</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
+element and leaves source code highlighting to the DocBook toolchain
+(dblatex has a particularly nice programlisting highlighter). The
+DocBook programlisting element is assigned two attributes:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
+ attribute.
+</p>
+</li>
+<li>
+<p>
+The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
+ attribute (<em>numbered</em> or <em>unnumbered</em>).
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_html_outputs">HTML Outputs</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>You have the choice of three HTML source code highlighters, your
+selection is determined by the <em>source-highlighter</em> attribute (defaults
+to <em>source-highlight</em>):</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Set the <em>source-highlighter</em> attribute from the <span class="monospaced">asciidoc(1)</span>
+command-line or in the document header (not in the document body,
+because the configuration file conditional macros are processed at
+load time).</td>
+</tr></table>
+</div>
+<div class="sect2">
+<h3 id="_gnu_source_highlight">GNU Source Highlight</h3>
+<div class="paragraph"><p>The default highlighter is the
+<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
+can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
+source-highlight must be installed and the <em>source-highlight</em> command
+must reside in the shell search <em>PATH</em>.</p></div>
+</div>
+<div class="sect2">
+<h3 id="_highlight">Highlight</h3>
+<div class="paragraph"><p>You can use
+<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
+syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
+<em>source-highlighter</em> attribute to <em>highlighter</em>).</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+To make Highlighter your default highlighter put the following line
+ your <span class="monospaced">~/.asciidoc/asciidoc.conf</span> file:
+</p>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>source-highlighter=highlight</pre>
+</div></div>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
+ <span class="monospaced">--encoding</span> command-line option.
+</p>
+</li>
+</ul></div>
+</div>
+<div class="sect2">
+<h3 id="_pygments">Pygments</h3>
+<div class="paragraph"><p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
+<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
+to <em>pygments</em>).</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+You can customize Pygments CSS styles by editing
+ <span class="monospaced">./stylesheets/pygments.css</span>. The <span class="monospaced">pygments.css</span> CSS file was
+ generated with:
+</p>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>from pygments.formatters import HtmlFormatter
+print HtmlFormatter().get_style_defs('.highlight')</pre>
+</div></div>
+</li>
+<li>
+<p>
+To make Pygments your default highlighter put the following line
+ your <span class="monospaced">~/.asciidoc/asciidoc.conf</span> file:
+</p>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>source-highlighter=pygments</pre>
+</div></div>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
+ <span class="monospaced">-O</span> command-line option.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_block_attributes">Block attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The following attributes can be included in source code block
+attribute lists.</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>style</em> and <em>language</em> are mandatory.
+</p>
+</li>
+<li>
+<p>
+<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
+ positional attributes in that order.
+</p>
+</li>
+<li>
+<p>
+The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
+ dependent) command options.
+</p>
+</li>
+</ul></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+style
+</dt>
+<dd>
+<p>
+ Set to <em>source</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+language
+</dt>
+<dd>
+<p>
+ The source code language name.
+</p>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
+selected highlighter manual.</td>
+</tr></table>
+</div>
+</dd>
+<dt class="hdlist1">
+src_numbered
+</dt>
+<dd>
+<p>
+ Set to <em>numbered</em> to include line numbers.
+</p>
+</dd>
+<dt class="hdlist1">
+src_tab
+</dt>
+<dd>
+<p>
+ Set tab size (GNU source-highlight only).
+</p>
+</dd>
+<dt class="hdlist1">
+args
+</dt>
+<dd>
+<p>
+ Include this attribute value in the highlighter command-line (HTML
+ outputs) or in the <span class="monospaced">programlisting</span> element (DocBook).
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_testing">Testing</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Test the filter by converting the test file to HTML with AsciiDoc:</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
+$ firefox ./filters/source/source-highlight-filter-test.html &amp;</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">Examples</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_source_code_paragraphs">Source code paragraphs</h3>
+<div class="paragraph"><p>The <span class="monospaced">source</span> paragraph style will highlight a paragraph of source
+code. These three code paragraphs:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>[source,python]
+if n &lt; 0: print 'Hello World!'
+
+:language: python
+
+[source]
+if n &lt; 0: print 'Hello World!'
+
+[source,ruby,numbered]
+[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</pre>
+</div></div>
+<div class="paragraph"><p>Render this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="color: #000000"> 1:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
+<span style="color: #000000"> 2:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span></tt></pre></div></div>
+</div>
+<div class="sect2">
+<h3 id="_unnumbered_source_code_listing">Unnumbered source code listing</h3>
+<div class="paragraph"><p>This source-highlight filtered block:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre> [source,python]
+ ---------------------------------------------------------------------
+ ''' A multi-line
+ comment.'''
+ def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+ ---------------------------------------------------------------------</pre>
+</div></div>
+<div class="paragraph"><p>Renders this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+</div>
+<div class="sect2">
+<h3 id="_numbered_source_code_listing_with_callouts">Numbered source code listing with callouts</h3>
+<div class="paragraph"><p>This source-highlight filtered block:</p></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre> [source,ruby,numbered]
+ ---------------------------------------------------------------------
+ #
+ # Useful Ruby base class extensions.
+ #
+
+ class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+ end
+
+ if $0 == __FILE__ # &lt;1&gt;
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # &lt;2&gt;
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+ end
+ ---------------------------------------------------------------------
+
+ &lt;1&gt; First callout.
+ &lt;2&gt; Second callout.</pre>
+</div></div>
+<div class="paragraph"><p>Renders this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="color: #000000"> 1:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
+<span style="color: #000000"> 2:</span> <span style="font-style: italic"><span style="color: #9A1900"># Useful Ruby base class extensions.</span></span>
+<span style="color: #000000"> 3:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
+<span style="color: #000000"> 4:</span>
+<span style="color: #000000"> 5:</span> <span style="font-weight: bold"><span style="color: #0000FF">class</span></span> Array
+<span style="color: #000000"> 6:</span>
+<span style="color: #000000"> 7:</span> <span style="font-style: italic"><span style="color: #9A1900"># Execute a block passing it corresponding items in</span></span>
+<span style="color: #000000"> 8:</span> <span style="font-style: italic"><span style="color: #9A1900"># +self+ and +other_array+.</span></span>
+<span style="color: #000000"> 9:</span> <span style="font-style: italic"><span style="color: #9A1900"># If self has less items than other_array it is repeated.</span></span>
+<span style="color: #000000"> 10:</span>
+<span style="color: #000000"> 11:</span> <span style="font-weight: bold"><span style="color: #0000FF">def</span></span> cycle<span style="color: #990000">(</span>other_array<span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># :yields: item, other_item</span></span>
+<span style="color: #000000"> 12:</span> other_array<span style="color: #990000">.</span>each_with_index <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>item<span style="color: #990000">,</span> index<span style="color: #990000">|</span>
+<span style="color: #000000"> 13:</span> <span style="font-weight: bold"><span style="color: #0000FF">yield</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">[</span>index <span style="color: #990000">%</span> <span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">.</span>length<span style="color: #990000">],</span> item<span style="color: #990000">)</span>
+<span style="color: #000000"> 14:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 15:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 16:</span>
+<span style="color: #000000"> 17:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 18:</span>
+<span style="color: #000000"> 19:</span> <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #009900">$0</span> <span style="color: #990000">==</span> <span style="font-weight: bold"><span style="color: #0000FF">__FILE__</span></span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;1&gt;</b></span></span>
+<span style="color: #000000"> 20:</span> <span style="font-style: italic"><span style="color: #9A1900"># Array#cycle test</span></span>
+<span style="color: #000000"> 21:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 0</span></span>
+<span style="color: #000000"> 22:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 1</span></span>
+<span style="color: #000000"> 23:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 2</span></span>
+<span style="color: #000000"> 24:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 3</span></span>
+<span style="color: #000000"> 25:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 4</span></span>
+<span style="color: #000000"> 26:</span> puts <span style="color: #FF0000">'Array#cycle test'</span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;2&gt;</b></span></span>
+<span style="color: #000000"> 27:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
+<span style="color: #000000"> 28:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span>
+<span style="color: #000000"> 29:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 30:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+First callout.
+</p>
+</li>
+<li>
+<p>
+Second callout.
+</p>
+</li>
+</ol></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="ulist"><ul>
+<li>
+<p>
+If the source <em>language</em> attribute has been set (using an
+ <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
+ it in each source code block.
+</p>
+</li>
+<li>
+<p>
+You should place callout markers inside source code comments to
+ ensure they are not misinterpreted and mangled by the highlighter.
+</p>
+</li>
+</ul></div>
+</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/source-highlight-filter-xhtml11.html b/tests/data/source-highlight-filter-xhtml11.html
index bb7a91c..162f869 100644
--- a/tests/data/source-highlight-filter-xhtml11.html
+++ b/tests/data/source-highlight-filter-xhtml11.html
@@ -1,1158 +1,1158 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>Source Code Highlight Filter</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Source Code Highlight Filter</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
-code syntax.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_docbook_outputs">DocBook Outputs</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
-element and leaves source code highlighting to the DocBook toolchain
-(dblatex has a particularly nice programlisting highlighter). The
-DocBook programlisting element is assigned two attributes:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
- attribute.
-</p>
-</li>
-<li>
-<p>
-The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
- attribute (<em>numbered</em> or <em>unnumbered</em>).
-</p>
-</li>
-</ol></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_html_outputs">HTML Outputs</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>You have the choice of three HTML source code highlighters, your
-selection is determined by the <em>source-highlighter</em> attribute (defaults
-to <em>source-highlight</em>):</p></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Set the <em>source-highlighter</em> attribute from the <code>asciidoc(1)</code>
-command-line or in the document header (not in the document body,
-because the configuration file conditional macros are processed at
-load time).</td>
-</tr></table>
-</div>
-<div class="sect2">
-<h3 id="_gnu_source_highlight">GNU Source Highlight</h3>
-<div class="paragraph"><p>The default highlighter is the
-<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
-can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
-source-highlight must be installed and the <em>source-highlight</em> command
-must reside in the shell search <em>PATH</em>.</p></div>
-</div>
-<div class="sect2">
-<h3 id="_highlight">Highlight</h3>
-<div class="paragraph"><p>You can use
-<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
-syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
-<em>source-highlighter</em> attribute to <em>highlighter</em>).</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-To make Highlighter your default highlighter put the following line
- your <code>~/.asciidoc/asciidoc.conf</code> file:
-</p>
-<div class="literalblock">
-<div class="content">
-<pre><code>source-highlighter=highlight</code></pre>
-</div></div>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
- <code>--encoding</code> command-line option.
-</p>
-</li>
-</ul></div>
-</div>
-<div class="sect2">
-<h3 id="_pygments">Pygments</h3>
-<div class="paragraph"><p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
-<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
-to <em>pygments</em>).</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
-</p>
-</li>
-<li>
-<p>
-You can customize Pygments CSS styles by editing
- <code>./stylesheets/pygments.css</code>. The <code>pygments.css</code> CSS file was
- generated with:
-</p>
-<div class="literalblock">
-<div class="content">
-<pre><code>from pygments.formatters import HtmlFormatter
-print HtmlFormatter().get_style_defs('.highlight')</code></pre>
-</div></div>
-</li>
-<li>
-<p>
-To make Pygments your default highlighter put the following line
- your <code>~/.asciidoc/asciidoc.conf</code> file:
-</p>
-<div class="literalblock">
-<div class="content">
-<pre><code>source-highlighter=pygments</code></pre>
-</div></div>
-</li>
-<li>
-<p>
-The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
- <code>-O</code> command-line option.
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_block_attributes">Block attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The following attributes can be included in source code block
-attribute lists.</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-<em>style</em> and <em>language</em> are mandatory.
-</p>
-</li>
-<li>
-<p>
-<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
- positional attributes in that order.
-</p>
-</li>
-<li>
-<p>
-The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
- dependent) command options.
-</p>
-</li>
-</ul></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-style
-</dt>
-<dd>
-<p>
- Set to <em>source</em>.
-</p>
-</dd>
-<dt class="hdlist1">
-language
-</dt>
-<dd>
-<p>
- The source code language name.
-</p>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
-selected highlighter manual.</td>
-</tr></table>
-</div>
-</dd>
-<dt class="hdlist1">
-src_numbered
-</dt>
-<dd>
-<p>
- Set to <em>numbered</em> to include line numbers.
-</p>
-</dd>
-<dt class="hdlist1">
-src_tab
-</dt>
-<dd>
-<p>
- Set tab size (GNU source-highlight only).
-</p>
-</dd>
-<dt class="hdlist1">
-args
-</dt>
-<dd>
-<p>
- Include this attribute value in the highlighter command-line (HTML
- outputs) or in the <code>programlisting</code> element (DocBook).
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_testing">Testing</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Test the filter by converting the test file to HTML with AsciiDoc:</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
-$ firefox ./filters/source/source-highlight-filter-test.html &amp;</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_examples">Examples</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_source_code_paragraphs">Source code paragraphs</h3>
-<div class="paragraph"><p>The <code>source</code> paragraph style will highlight a paragraph of source
-code. These three code paragraphs:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>[source,python]
-if n &lt; 0: print 'Hello World!'
-
-:language: python
-
-[source]
-if n &lt; 0: print 'Hello World!'
-
-[source,ruby,numbered]
-[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"</code></pre>
-</div></div>
-<div class="paragraph"><p>Render this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="color: #000000"> 1:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
-<span style="color: #000000"> 2:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span></tt></pre></div></div>
-</div>
-<div class="sect2">
-<h3 id="_unnumbered_source_code_listing">Unnumbered source code listing</h3>
-<div class="paragraph"><p>This source-highlight filtered block:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code> [source,python]
- ---------------------------------------------------------------------
- ''' A multi-line
- comment.'''
- def sub_word(mo):
- ''' Single line comment.'''
- word = mo.group('word') # Inline comment
- if word in keywords[language]:
- return quote + word + quote
- else:
- return word
- ---------------------------------------------------------------------</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
-<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
-<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
-<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
- word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
- <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
- <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
- <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
-</div>
-<div class="sect2">
-<h3 id="_numbered_source_code_listing_with_callouts">Numbered source code listing with callouts</h3>
-<div class="paragraph"><p>This source-highlight filtered block:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><code> [source,ruby,numbered]
- ---------------------------------------------------------------------
- #
- # Useful Ruby base class extensions.
- #
-
- class Array
-
- # Execute a block passing it corresponding items in
- # +self+ and +other_array+.
- # If self has less items than other_array it is repeated.
-
- def cycle(other_array) # :yields: item, other_item
- other_array.each_with_index do |item, index|
- yield(self[index % self.length], item)
- end
- end
-
- end
-
- if $0 == __FILE__ # &lt;1&gt;
- # Array#cycle test
- # true =&gt; 0
- # false =&gt; 1
- # true =&gt; 2
- # false =&gt; 3
- # true =&gt; 4
- puts 'Array#cycle test' # &lt;2&gt;
- [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
- puts "#{a.inspect} =&gt; #{b.inspect}"
- end
- end
- ---------------------------------------------------------------------
-
- &lt;1&gt; First callout.
- &lt;2&gt; Second callout.</code></pre>
-</div></div>
-<div class="paragraph"><p>Renders this highlighted source code:</p></div>
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="color: #000000"> 1:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
-<span style="color: #000000"> 2:</span> <span style="font-style: italic"><span style="color: #9A1900"># Useful Ruby base class extensions.</span></span>
-<span style="color: #000000"> 3:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
-<span style="color: #000000"> 4:</span>
-<span style="color: #000000"> 5:</span> <span style="font-weight: bold"><span style="color: #0000FF">class</span></span> Array
-<span style="color: #000000"> 6:</span>
-<span style="color: #000000"> 7:</span> <span style="font-style: italic"><span style="color: #9A1900"># Execute a block passing it corresponding items in</span></span>
-<span style="color: #000000"> 8:</span> <span style="font-style: italic"><span style="color: #9A1900"># +self+ and +other_array+.</span></span>
-<span style="color: #000000"> 9:</span> <span style="font-style: italic"><span style="color: #9A1900"># If self has less items than other_array it is repeated.</span></span>
-<span style="color: #000000"> 10:</span>
-<span style="color: #000000"> 11:</span> <span style="font-weight: bold"><span style="color: #0000FF">def</span></span> cycle<span style="color: #990000">(</span>other_array<span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># :yields: item, other_item</span></span>
-<span style="color: #000000"> 12:</span> other_array<span style="color: #990000">.</span>each_with_index <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>item<span style="color: #990000">,</span> index<span style="color: #990000">|</span>
-<span style="color: #000000"> 13:</span> <span style="font-weight: bold"><span style="color: #0000FF">yield</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">[</span>index <span style="color: #990000">%</span> <span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">.</span>length<span style="color: #990000">],</span> item<span style="color: #990000">)</span>
-<span style="color: #000000"> 14:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 15:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 16:</span>
-<span style="color: #000000"> 17:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 18:</span>
-<span style="color: #000000"> 19:</span> <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #009900">$0</span> <span style="color: #990000">==</span> <span style="font-weight: bold"><span style="color: #0000FF">__FILE__</span></span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;1&gt;</b></span></span>
-<span style="color: #000000"> 20:</span> <span style="font-style: italic"><span style="color: #9A1900"># Array#cycle test</span></span>
-<span style="color: #000000"> 21:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 0</span></span>
-<span style="color: #000000"> 22:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 1</span></span>
-<span style="color: #000000"> 23:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 2</span></span>
-<span style="color: #000000"> 24:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 3</span></span>
-<span style="color: #000000"> 25:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 4</span></span>
-<span style="color: #000000"> 26:</span> puts <span style="color: #FF0000">'Array#cycle test'</span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;2&gt;</b></span></span>
-<span style="color: #000000"> 27:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
-<span style="color: #000000"> 28:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span>
-<span style="color: #000000"> 29:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
-<span style="color: #000000"> 30:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
-<div class="colist arabic"><ol>
-<li>
-<p>
-First callout.
-</p>
-</li>
-<li>
-<p>
-Second callout.
-</p>
-</li>
-</ol></div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">
-<div class="ulist"><ul>
-<li>
-<p>
-If the source <em>language</em> attribute has been set (using an
- <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
- it in each source code block.
-</p>
-</li>
-<li>
-<p>
-You should place callout markers inside source code comments to
- ensure they are not misinterpreted and mangled by the highlighter.
-</p>
-</li>
-</ul></div>
-</td>
-</tr></table>
-</div>
-</div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>Source Code Highlight Filter</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Source Code Highlight Filter</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>The AsciiDoc distribution includes a <em>source</em> filter for highlighting
+code syntax.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_docbook_outputs">DocBook Outputs</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>AsciiDoc encloses the source code in a DocBook <em>programlisting</em>
+element and leaves source code highlighting to the DocBook toolchain
+(dblatex has a particularly nice programlisting highlighter). The
+DocBook programlisting element is assigned two attributes:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+The <em>language</em> attribute is set to the AsciiDoc <em>language</em>
+ attribute.
+</p>
+</li>
+<li>
+<p>
+The <em>linenumbering</em> attribute is set to the AsciiDoc <em>src_numbered</em>
+ attribute (<em>numbered</em> or <em>unnumbered</em>).
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_html_outputs">HTML Outputs</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>You have the choice of three HTML source code highlighters, your
+selection is determined by the <em>source-highlighter</em> attribute (defaults
+to <em>source-highlight</em>):</p></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Set the <em>source-highlighter</em> attribute from the <code>asciidoc(1)</code>
+command-line or in the document header (not in the document body,
+because the configuration file conditional macros are processed at
+load time).</td>
+</tr></table>
+</div>
+<div class="sect2">
+<h3 id="_gnu_source_highlight">GNU Source Highlight</h3>
+<div class="paragraph"><p>The default highlighter is the
+<a href="http://www.gnu.org/software/src-highlite/">GNU source-highlight</a> which
+can highlight <em>html4</em>, <em>html5</em> and <em>xhtml11</em> outputs. The GNU
+source-highlight must be installed and the <em>source-highlight</em> command
+must reside in the shell search <em>PATH</em>.</p></div>
+</div>
+<div class="sect2">
+<h3 id="_highlight">Highlight</h3>
+<div class="paragraph"><p>You can use
+<a href="http://www.andre-simon.de/doku/highlight/en/highlight.html">Highlight</a>
+syntax highlighter for <em>xhtml11</em>, <em>html5</em> and <em>html4</em> outputs (set the
+<em>source-highlighter</em> attribute to <em>highlighter</em>).</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+The <em>highlight</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+To make Highlighter your default highlighter put the following line
+ your <code>~/.asciidoc/asciidoc.conf</code> file:
+</p>
+<div class="literalblock">
+<div class="content">
+<pre><code>source-highlighter=highlight</code></pre>
+</div></div>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Highlighter using the
+ <code>--encoding</code> command-line option.
+</p>
+</li>
+</ul></div>
+</div>
+<div class="sect2">
+<h3 id="_pygments">Pygments</h3>
+<div class="paragraph"><p>The <a href="http://pygments.org/">Pygments</a> syntax highlighter can be used for
+<em>xhtml11</em> and <em>html5</em> outputs (set the <em>source-highlighter</em> attribute
+to <em>pygments</em>).</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+The <em>pygmentize</em> command must reside in the shell search <em>PATH</em>.
+</p>
+</li>
+<li>
+<p>
+You can customize Pygments CSS styles by editing
+ <code>./stylesheets/pygments.css</code>. The <code>pygments.css</code> CSS file was
+ generated with:
+</p>
+<div class="literalblock">
+<div class="content">
+<pre><code>from pygments.formatters import HtmlFormatter
+print HtmlFormatter().get_style_defs('.highlight')</code></pre>
+</div></div>
+</li>
+<li>
+<p>
+To make Pygments your default highlighter put the following line
+ your <code>~/.asciidoc/asciidoc.conf</code> file:
+</p>
+<div class="literalblock">
+<div class="content">
+<pre><code>source-highlighter=pygments</code></pre>
+</div></div>
+</li>
+<li>
+<p>
+The AsciiDoc <em>encoding</em> attribute is passed to Pygments using the
+ <code>-O</code> command-line option.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_block_attributes">Block attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The following attributes can be included in source code block
+attribute lists.</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>style</em> and <em>language</em> are mandatory.
+</p>
+</li>
+<li>
+<p>
+<em>style</em>, <em>language</em> and <em>src_numbered</em> are the first three
+ positional attributes in that order.
+</p>
+</li>
+<li>
+<p>
+The <em>args</em> attribute allows the inclusion of arbitrary (highlighter
+ dependent) command options.
+</p>
+</li>
+</ul></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+style
+</dt>
+<dd>
+<p>
+ Set to <em>source</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+language
+</dt>
+<dd>
+<p>
+ The source code language name.
+</p>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">The language names vary between highlighters&#8201;&#8212;&#8201;consult the
+selected highlighter manual.</td>
+</tr></table>
+</div>
+</dd>
+<dt class="hdlist1">
+src_numbered
+</dt>
+<dd>
+<p>
+ Set to <em>numbered</em> to include line numbers.
+</p>
+</dd>
+<dt class="hdlist1">
+src_tab
+</dt>
+<dd>
+<p>
+ Set tab size (GNU source-highlight only).
+</p>
+</dd>
+<dt class="hdlist1">
+args
+</dt>
+<dd>
+<p>
+ Include this attribute value in the highlighter command-line (HTML
+ outputs) or in the <code>programlisting</code> element (DocBook).
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_testing">Testing</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Test the filter by converting the test file to HTML with AsciiDoc:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>$ asciidoc -v ./filters/source/source-highlight-filter-test.txt
+$ firefox ./filters/source/source-highlight-filter-test.html &amp;</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">Examples</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_source_code_paragraphs">Source code paragraphs</h3>
+<div class="paragraph"><p>The <code>source</code> paragraph style will highlight a paragraph of source
+code. These three code paragraphs:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>[source,python]
+if n &lt; 0: print 'Hello World!'
+
+:language: python
+
+[source]
+if n &lt; 0: print 'Hello World!'
+
+[source,ruby,numbered]
+[true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"</code></pre>
+</div></div>
+<div class="paragraph"><p>Render this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="color: #000000"> 1:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
+<span style="color: #000000"> 2:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span></tt></pre></div></div>
+</div>
+<div class="sect2">
+<h3 id="_unnumbered_source_code_listing">Unnumbered source code listing</h3>
+<div class="paragraph"><p>This source-highlight filtered block:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code> [source,python]
+ ---------------------------------------------------------------------
+ ''' A multi-line
+ comment.'''
+ def sub_word(mo):
+ ''' Single line comment.'''
+ word = mo.group('word') # Inline comment
+ if word in keywords[language]:
+ return quote + word + quote
+ else:
+ return word
+ ---------------------------------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-style: italic"><span style="color: #9A1900">''' A multi-line</span></span>
+<span style="font-style: italic"><span style="color: #9A1900"> comment.'''</span></span>
+<span style="font-weight: bold"><span style="color: #0000FF">def</span></span> <span style="font-weight: bold"><span style="color: #000000">sub_word</span></span><span style="color: #990000">(</span>mo<span style="color: #990000">):</span>
+<span style="font-style: italic"><span style="color: #9A1900"> ''' Single line comment.'''</span></span>
+ word <span style="color: #990000">=</span> mo<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">group</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'word'</span><span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># Inline comment</span></span>
+ <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> word <span style="font-weight: bold"><span style="color: #0000FF">in</span></span> keywords<span style="color: #990000">[</span>language<span style="color: #990000">]:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> quote <span style="color: #990000">+</span> word <span style="color: #990000">+</span> quote
+ <span style="font-weight: bold"><span style="color: #0000FF">else</span></span><span style="color: #990000">:</span>
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> word</tt></pre></div></div>
+</div>
+<div class="sect2">
+<h3 id="_numbered_source_code_listing_with_callouts">Numbered source code listing with callouts</h3>
+<div class="paragraph"><p>This source-highlight filtered block:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code> [source,ruby,numbered]
+ ---------------------------------------------------------------------
+ #
+ # Useful Ruby base class extensions.
+ #
+
+ class Array
+
+ # Execute a block passing it corresponding items in
+ # +self+ and +other_array+.
+ # If self has less items than other_array it is repeated.
+
+ def cycle(other_array) # :yields: item, other_item
+ other_array.each_with_index do |item, index|
+ yield(self[index % self.length], item)
+ end
+ end
+
+ end
+
+ if $0 == __FILE__ # &lt;1&gt;
+ # Array#cycle test
+ # true =&gt; 0
+ # false =&gt; 1
+ # true =&gt; 2
+ # false =&gt; 3
+ # true =&gt; 4
+ puts 'Array#cycle test' # &lt;2&gt;
+ [true, false].cycle([0, 1, 2, 3, 4]) do |a, b|
+ puts "#{a.inspect} =&gt; #{b.inspect}"
+ end
+ end
+ ---------------------------------------------------------------------
+
+ &lt;1&gt; First callout.
+ &lt;2&gt; Second callout.</code></pre>
+</div></div>
+<div class="paragraph"><p>Renders this highlighted source code:</p></div>
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="color: #000000"> 1:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
+<span style="color: #000000"> 2:</span> <span style="font-style: italic"><span style="color: #9A1900"># Useful Ruby base class extensions.</span></span>
+<span style="color: #000000"> 3:</span> <span style="font-style: italic"><span style="color: #9A1900">#</span></span>
+<span style="color: #000000"> 4:</span>
+<span style="color: #000000"> 5:</span> <span style="font-weight: bold"><span style="color: #0000FF">class</span></span> Array
+<span style="color: #000000"> 6:</span>
+<span style="color: #000000"> 7:</span> <span style="font-style: italic"><span style="color: #9A1900"># Execute a block passing it corresponding items in</span></span>
+<span style="color: #000000"> 8:</span> <span style="font-style: italic"><span style="color: #9A1900"># +self+ and +other_array+.</span></span>
+<span style="color: #000000"> 9:</span> <span style="font-style: italic"><span style="color: #9A1900"># If self has less items than other_array it is repeated.</span></span>
+<span style="color: #000000"> 10:</span>
+<span style="color: #000000"> 11:</span> <span style="font-weight: bold"><span style="color: #0000FF">def</span></span> cycle<span style="color: #990000">(</span>other_array<span style="color: #990000">)</span> <span style="font-style: italic"><span style="color: #9A1900"># :yields: item, other_item</span></span>
+<span style="color: #000000"> 12:</span> other_array<span style="color: #990000">.</span>each_with_index <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>item<span style="color: #990000">,</span> index<span style="color: #990000">|</span>
+<span style="color: #000000"> 13:</span> <span style="font-weight: bold"><span style="color: #0000FF">yield</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">[</span>index <span style="color: #990000">%</span> <span style="font-weight: bold"><span style="color: #0000FF">self</span></span><span style="color: #990000">.</span>length<span style="color: #990000">],</span> item<span style="color: #990000">)</span>
+<span style="color: #000000"> 14:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 15:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 16:</span>
+<span style="color: #000000"> 17:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 18:</span>
+<span style="color: #000000"> 19:</span> <span style="font-weight: bold"><span style="color: #0000FF">if</span></span> <span style="color: #009900">$0</span> <span style="color: #990000">==</span> <span style="font-weight: bold"><span style="color: #0000FF">__FILE__</span></span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;1&gt;</b></span></span>
+<span style="color: #000000"> 20:</span> <span style="font-style: italic"><span style="color: #9A1900"># Array#cycle test</span></span>
+<span style="color: #000000"> 21:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 0</span></span>
+<span style="color: #000000"> 22:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 1</span></span>
+<span style="color: #000000"> 23:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 2</span></span>
+<span style="color: #000000"> 24:</span> <span style="font-style: italic"><span style="color: #9A1900"># false =&gt; 3</span></span>
+<span style="color: #000000"> 25:</span> <span style="font-style: italic"><span style="color: #9A1900"># true =&gt; 4</span></span>
+<span style="color: #000000"> 26:</span> puts <span style="color: #FF0000">'Array#cycle test'</span> <span style="font-style: italic"><span style="color: #9A1900"># <b>&lt;2&gt;</b></span></span>
+<span style="color: #000000"> 27:</span> <span style="color: #990000">[</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">,</span> <span style="font-weight: bold"><span style="color: #0000FF">false</span></span><span style="color: #990000">].</span>cycle<span style="color: #990000">([</span><span style="color: #993399">0</span><span style="color: #990000">,</span> <span style="color: #993399">1</span><span style="color: #990000">,</span> <span style="color: #993399">2</span><span style="color: #990000">,</span> <span style="color: #993399">3</span><span style="color: #990000">,</span> <span style="color: #993399">4</span><span style="color: #990000">])</span> <span style="font-weight: bold"><span style="color: #0000FF">do</span></span> <span style="color: #990000">|</span>a<span style="color: #990000">,</span> b<span style="color: #990000">|</span>
+<span style="color: #000000"> 28:</span> puts <span style="color: #FF0000">"#{a.inspect} =&gt; #{b.inspect}"</span>
+<span style="color: #000000"> 29:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span>
+<span style="color: #000000"> 30:</span> <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
+<div class="colist arabic"><ol>
+<li>
+<p>
+First callout.
+</p>
+</li>
+<li>
+<p>
+Second callout.
+</p>
+</li>
+</ol></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+<div class="ulist"><ul>
+<li>
+<p>
+If the source <em>language</em> attribute has been set (using an
+ <em>AttributeEntry</em> or from the command-line) you don&#8217;t have to specify
+ it in each source code block.
+</p>
+</li>
+<li>
+<p>
+You should place callout markers inside source code comments to
+ ensure they are not misinterpreted and mangled by the highlighter.
+</p>
+</li>
+</ul></div>
+</td>
+</tr></table>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/testcases-docbook.xml b/tests/data/testcases-docbook.xml
index ced6dbd..fb088f1 100644
--- a/tests/data/testcases-docbook.xml
+++ b/tests/data/testcases-docbook.xml
@@ -1,1027 +1,1027 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>Test <emphasis>Cases</emphasis></title>
- <author>
- <firstname>Joe</firstname>
- <surname>Bloggs</surname>
- </author>
- <authorinitials>JB</authorinitials>
-</articleinfo>
-<section id="_passthrough_attributes">
-<title>Passthrough attributes</title>
-<simpara><emphasis>*lorum ipsum*</emphasis></simpara>
-<simpara>&lt;emphasis&gt;*lorum ipsum*&lt;/emphasis&gt;</simpara>
-</section>
-<section id="_author_attributes">
-<title>Author attributes</title>
-<simpara>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</simpara>
-<simpara>Hello <emphasis role="strong">Joe Bloggs</emphasis> (Joe Bloggs, JB).</simpara>
-<simpara>first name or last name or surname.</simpara>
-<simpara></simpara>
-<simpara>first name and last name.</simpara>
-</section>
-<section id="_system_attributes">
-<title>System attributes</title>
-<simpara>1 99 A</simpara>
-<simpara>1 = 1, 99 = 99, A = A</simpara>
-<simpara>2 100 B
-2 100 B</simpara>
-<simpara>2 = 2, 100 = 100, B = B</simpara>
-<simpara>y: Foobar</simpara>
-<simpara></simpara>
-<simpara></simpara>
-<simpara>3, 7</simpara>
-<simpara></simpara>
-<simpara>3, 3</simpara>
-</section>
-<section id="_quoted_text_attributes">
-<title>Quoted text attributes</title>
-<simpara>A=<emphasis>X</emphasis>, (<emphasis>X</emphasis>), <emphasis>X</emphasis>, [<emphasis>X</emphasis>] <emphasis>X</emphasis></simpara>
-<simpara>A=<emphasis role="strong"><emphasis>X</emphasis></emphasis>, (<literal>_X_</literal>), <emphasis><literal>X</literal></emphasis>, [<emphasis role="strong"><emphasis>X</emphasis></emphasis>] <literal><emphasis>X</emphasis></literal> <emphasis>X</emphasis></simpara>
-<simpara>[<emphasis>*X*</emphasis>] <emphasis>+X+</emphasis></simpara>
-<simpara id="_intro"><xref linkend="_intro"/> <link linkend="_intro">intro</link> <xref linkend="_intro"/> <emphasis>intro</emphasis></simpara>
-<simpara><phrase role="foo">fun with text</phrase>.
-<emphasis role="strong"><phrase role="foo bar">fun with text</phrase></emphasis>.
-<literal><phrase role="foo">fun with text</phrase></literal>.
-<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
-<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
-&#8220;<phrase role="foo">fun with text</phrase>&#8221;.
-&#8216;<phrase role="foo">fun with text</phrase>&#8217;.</simpara>
-<simpara><phrase role="foo">fun with text</phrase>.</simpara>
-<simpara><phrase role="foo">fun with text</phrase>.</simpara>
-<simpara><phrase role="red">Obvious</phrase> and <emphasis role="strong"><phrase role="big red yellow-background">very obvious</phrase></emphasis>.</simpara>
-<simpara><phrase role="underline">Underline text</phrase>, <phrase role="overline">overline text</phrase>
-and <phrase role="line-through">line-through text</phrase>.</simpara>
-<simpara><phrase role="firstletter">T</phrase>esting 123 &#8230;</simpara>
-<simpara>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</simpara>
-<simpara>(&#8220;<literal>1\n</literal>&#8221;) if (usually &#8220;<literal>-1\n</literal>&#8221;)</simpara>
-<simpara>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</simpara>
-</section>
-<section id="_configuration_attribute_entries">
-<title>Configuration attribute entries</title>
-<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
-<row>
-<entry>
-<simpara>
-term
-</simpara>
-</entry>
-<entry>
-<simpara>
-definition
-</simpara>
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-<variablelist>
-<varlistentry>
-<term>
-term
-</term>
-<listitem>
-<simpara>
-definition
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section id="_role_attribute">
-<title>role attribute</title>
-<simpara role="test">Paragraph with a role attribute.</simpara>
-<itemizedlist role="test">
-<listitem>
-<simpara>
-first
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-second
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-third
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section id="_break_list_nesting">
-<title>Break list nesting</title>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-List 1.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List 1.
-</simpara>
-</listitem>
-</orderedlist>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-List 2.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List 2.
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section id="_listing_blocks">
-<title>Listing Blocks</title>
-<screen>$ ls <emphasis role="strong">-al</emphasis></screen>
-<screen>[subs="quotes"]
-------------------------------------------
-$ ls *-al*
-------------------------------------------</screen>
-<formalpara><title>Listing</title><para>
-<screen>$ ls -al</screen>
-</para></formalpara>
-<example>
-<title>Listing example</title>
-<screen>$ ls -al</screen>
-</example>
-<formalpara><title>Python paragraph</title><para>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</para></formalpara>
-<formalpara><title>Titled Python listing</title><para>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</para></formalpara>
-<example>
-<title>Python listing example</title>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</example>
-</section>
-<section id="X1" xreflabel="anchor reftext">
-<title>Links</title>
-<simpara>An <anchor id="X2" xreflabel="[X2]"/> inline anchor.
-An <anchor id="X3" xreflabel="anchor reftext"/> inline anchor with reftext.</simpara>
-<simpara><xref linkend="X1"/>; captioned link to <link linkend="X1">this test case</link>.</simpara>
-<simpara><xref linkend="X2"/> link to inline anchor; captioned link to <link linkend="X2">inline anchor</link>.</simpara>
-<simpara>Link to <xref linkend="X3"/> anchor.</simpara>
-<simpara>An example link to a bibliography entry <xref linkend="Test::Unit"/>.</simpara>
-<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
-<row>
-<entry>
-<simpara>
-<anchor id="Test::Unit" xreflabel="[Test::Unit]"/>[Test::Unit]
-</simpara>
-</entry>
-<entry>
-<simpara>
-<ulink url="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</ulink>
-</simpara>
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-</section>
-<section id="_titles">
-<title>Titles</title>
-<bridgehead id="_level_4" renderas="sect4">Level 4</bridgehead>
-<bridgehead id="_level_3" renderas="sect3">Level 3</bridgehead>
-<bridgehead id="_level_2" renderas="sect2">Level 2</bridgehead>
-<bridgehead id="_level_1" renderas="sect1">Level 1</bridgehead>
-<bridgehead id="_level_4_2" renderas="sect4">Level 4</bridgehead>
-<bridgehead id="_level_3_2" renderas="sect3">Level 3</bridgehead>
-<bridgehead id="_level_2_2" renderas="sect2">Level 2</bridgehead>
-<bridgehead id="_level_1_2" renderas="sect1">Level 1</bridgehead>
-<formalpara><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-</section>
-<section id="_lists">
-<title>Lists</title>
-<simpara>Bulleted:</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-<simpara>Numbered:</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-arabic (decimal) numbering
-</simpara>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-loweralpha numbering
-</simpara>
-<orderedlist numeration="upperalpha">
-<listitem>
-<simpara>
-upperalpha numbering
-</simpara>
-<orderedlist numeration="lowerroman">
-<listitem>
-<simpara>
-lowerroman numbering
-</simpara>
-<orderedlist numeration="upperroman">
-<listitem>
-<simpara>
-upperroman numbering
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-arabic (decimal) numbering
-</simpara>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-loweralpha numbering
-</simpara>
-<orderedlist numeration="lowerroman">
-<listitem>
-<simpara>
-lowerroman numbering
-</simpara>
-<orderedlist numeration="upperalpha">
-<listitem>
-<simpara>
-upperalpha numbering
-</simpara>
-<orderedlist numeration="upperroman">
-<listitem>
-<simpara>
-upperroman numbering
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-<simpara>Labeled:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-<simpara>With item anchor:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-one
-</term>
-<listitem>
-<simpara>
-Item one.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<anchor id="item_two" xreflabel="[item_two]"/>two
-</term>
-<listitem>
-<simpara>
-Item two.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-three
-</term>
-<listitem>
-<simpara>
-Item three.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section id="_inline_passthroughs">
-<title>Inline passthroughs</title>
-<itemizedlist>
-<listitem>
-<simpara>
-Test `ABC`.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Test <literal>ABC</literal>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>++i</literal> and <literal>++j</literal> auto-increments.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Paths <literal>~/.vim</literal> and <literal>~/docs</literal>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>__init__</literal> method.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>{id}</literal> attribute.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>List start number test:</simpara>
-<orderedlist numeration="arabic"><?dbfo start="7"?><?dbhtml start="7"?>
-<listitem>
-<simpara>
-List item 7.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List item 8.
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section id="_images">
-<title>Images</title>
-<section id="_block_images">
-<title>Block images</title>
-<figure id="tiger_image"><title>Tyger tyger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tyger tyger</phrase></textobject>
-</mediaobject>
-</figure>
-<figure><title>Tyger tyger two</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png" contentwidth="350" contentdepth="250" align="center"/>
- </imageobject>
- <textobject><phrase>Tiger</phrase></textobject>
-</mediaobject>
-</figure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../doc/music2.png"/>
- </imageobject>
- <textobject><phrase>music2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<note><simpara>Lorum ipsum.</simpara></note>
-</section>
-<section id="_inline_images">
-<title>Inline images</title>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>smallnew.png</phrase></textobject>
-</inlinemediaobject></simpara>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>NEW!</phrase></textobject>
-</inlinemediaobject></simpara>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>NEW!</phrase></textobject>
-</inlinemediaobject></simpara>
-</section>
-</section>
-<section id="_admonishments">
-<title>Admonishments</title>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-</section>
-<section id="_backslash_escapes">
-<title>Backslash escapes</title>
-<formalpara><title>Apostrophe</title><para>Don&#8217;t vs don't.</para></formalpara>
-<formalpara><title>Exceptions</title><para>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
-ambiguity. Here are some non-standard escape examples:</para></formalpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<?dbhtml table-width="40%"?>
-<?dbfo table-width="40%"?>
-<?dblatex table-width="40%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="85*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<thead>
-<row>
-<entry align="left" valign="top">AsciiDoc </entry>
-<entry align="left" valign="top"> Renders</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">\joe.bloggs@example.com
-&lt;\joe.bloggs@example.com&gt;
-\mailto:[\joe.bloggs@example.com]</literallayout></entry>
-<entry align="left" valign="top"><literallayout>joe.bloggs@example.com
-&lt;joe.bloggs@example.com&gt;
-mailto:[joe.bloggs@example.com]</literallayout></entry>
-</row>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">\http://www.example.com
-\\http://www.example.com[]
-\\http://www.example.com[Foobar Limited]</literallayout></entry>
-<entry align="left" valign="top"><literallayout>http://www.example.com
-http://www.example.com[]
-http://www.example.com[Foobar Limited]</literallayout></entry>
-</row>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">A C\++ Library for C++
-\\``double-quotes''
-\*\*F**ile Open\...</literallayout></entry>
-<entry align="left" valign="top"><literallayout>A C++ Library for C++
-``double-quotes''
-**F**ile Open...</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="_paragraphs">
-<title>Paragraphs</title>
-<formalpara><title>Normal paragraph</title><para>This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</para></formalpara>
-<formalpara><title>Literal paragraph</title><para>
-<literallayout class="monospaced">This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</literallayout>
-</para></formalpara>
-<blockquote>
-<title>Verse paragraph</title>
-<literallayout>This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</blockquote>
-<formalpara><title>Indented (literal) paragraph</title><para>
-<literallayout class="monospaced">This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</literallayout>
-</para></formalpara>
-<formalpara><title>Indented with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<formalpara><title>Literal paragraph with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<formalpara><title>Literal block with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<blockquote>
-<attribution>
-William Blake
-<citetitle>from Auguries of Innocence</citetitle>
-</attribution>
-<literallayout>To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</literallayout>
-</blockquote>
-<blockquote>
-<attribution>
-Bertrand Russell
-<citetitle>The World of Mathematics (1956)</citetitle>
-</attribution>
-<simpara>A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.</simpara>
-</blockquote>
-</section>
-<section id="_urls">
-<title>URLs</title>
-<section id="_mail_addresses">
-<title>Mail Addresses</title>
-<simpara><ulink url="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</ulink></simpara>
-<simpara><ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>.</simpara>
-<simpara><ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>,<ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>,</simpara>
-<simpara><ulink url="mailto:joe-bloggs@mail-server.com">Mail</ulink></simpara>
-<simpara><ulink url="mailto:joe_bloggs@mail_server.com">Mail</ulink></simpara>
-<simpara><ulink url="mailto:joe.bloggs@mail.server.com">Mail</ulink></simpara>
-<simpara><ulink url="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</ulink><?asciidoc-br?>
-lorum ipsum.</simpara>
-</section>
-</section>
-<section id="_comments">
-<title>Comments</title>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
-<remark> This comment line will be displayed in the output.</remark>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-<remark> Visible inline comment line.</remark>
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
-<formalpara id="comment_macro"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-<formalpara id="comment_block"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-</section>
-<glossary id="_list_of_terms">
-<title>List of terms</title>
-<simpara>Using positional attribute to specify section template.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<glossary id="_list_of_terms_2">
-<title>List of terms</title>
-<simpara>Using named <emphasis>template</emphasis> attribute to specify section template.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<section id="_index_terms">
-<title>Index Terms</title>
-<simpara>Test 1 <indexterm><primary>test1</primary></indexterm>test1.</simpara>
-<simpara>Test 2 <indexterm>
- <primary>test2</primary>
-</indexterm>.</simpara>
-<simpara>Test 3 <indexterm>
- <primary>test3</primary><secondary>secondary</secondary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary>
-</indexterm>.</simpara>
-<simpara>Test 4 <indexterm>
- <primary>test4</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary><secondary>tertiary</secondary>
-</indexterm>
-<indexterm>
- <primary>tertiary</primary>
-</indexterm>.</simpara>
-<simpara>Test 5 <indexterm><primary>test5</primary></indexterm>test5.</simpara>
-<simpara>Test 6 <indexterm>
- <primary>test6</primary>
-</indexterm>.</simpara>
-<simpara>Test 7 <indexterm>
- <primary>test7</primary><secondary>secondary</secondary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary>
-</indexterm>.</simpara>
-<simpara>Test 8 <indexterm>
- <primary>test8</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary><secondary>tertiary</secondary>
-</indexterm>
-<indexterm>
- <primary>tertiary</primary>
-</indexterm>.</simpara>
-<simpara>Multi-passthough substitution (see
-<ulink url="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</ulink>)
-<indexterm><primary><literal>foo</literal></primary></indexterm><literal>foo</literal>
-<indexterm>
- <primary>foo</primary><secondary><literal>bar</literal></secondary>
-</indexterm>
-<indexterm>
- <primary><literal>bar</literal></primary>
-</indexterm>
-<indexterm>
- <primary>foo</primary><secondary><literal>bar</literal></secondary><tertiary><literal>two</literal></tertiary>
-</indexterm>
-<indexterm>
- <primary><literal>bar</literal></primary><secondary><literal>two</literal></secondary>
-</indexterm>
-<indexterm>
- <primary><literal>two</literal></primary>
-</indexterm></simpara>
-</section>
-<section id="_table_with_fractional_column_width_units">
-<title>Table with fractional column width units</title>
-<note><simpara><emphasis>pagewidth</emphasis> and <emphasis>pageunits</emphasis> only apply to DocBook outputs.</simpara></note>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertical source data</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="1.54cm"/>
-<colspec colname="col_2" colwidth="1.03cm"/>
-<colspec colname="col_3" colwidth="1.03cm"/>
-<colspec colname="col_4" colwidth="5.15cm"/>
-<thead>
-<row>
-<entry align="left" valign="top">Date </entry>
-<entry align="center" valign="top">Duration </entry>
-<entry align="center" valign="top">Avg HR </entry>
-<entry align="left" valign="top">Notes</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>10:24</simpara></entry>
-<entry align="center" valign="top"><simpara>157</simpara></entry>
-<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>23:03</simpara></entry>
-<entry align="center" valign="top"><simpara>152</simpara></entry>
-<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>40:00</simpara></entry>
-<entry align="center" valign="top"><simpara>145</simpara></entry>
-<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-</section>
-<section id="_table_with_parent_configuration_file_and_header_attribute_entry">
-<title>Table with parent configuration file and header attribute entry</title>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="1">
-<colspec colname="col_1" colwidth="100*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><itemizedlist>
-<listitem>
-<simpara>
-Attribute entry from header: TEST_ATTRIBUTE
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Replacement from <literal>testcases.conf</literal> configuration file: TEST_REPLACEMENT
-</simpara>
-</listitem>
-</itemizedlist></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="_table_column_specifiers_with_merged_cells">
-<title>Table column specifiers with merged cells</title>
-<simpara>See
-<ulink url="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</ulink></simpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="25*"/>
-<colspec colname="col_2" colwidth="25*"/>
-<colspec colname="col_3" colwidth="25*"/>
-<colspec colname="col_4" colwidth="25*"/>
-<tbody>
-<row>
-<entry align="left" valign="top" morerows="1"><simpara><literal></literal></simpara></entry>
-<entry align="right" valign="top" morerows="1"><simpara>1- A</simpara></entry>
-<entry align="center" valign="top" namest="col_3" nameend="col_4"><simpara><emphasis role="strong">2- B</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis role="strong">i- a</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>ii- b</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><literal>Values 1</literal></simpara></entry>
-<entry align="right" valign="top"><simpara>v1</simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis role="strong">v2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>v3</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><literal>Values 2</literal></simpara></entry>
-<entry align="right" valign="top"><simpara>v4</simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis role="strong">v5</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>v6</emphasis></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section id="_floating_tables_and_images">
-<title>Floating tables and images</title>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Simple table</title>
-<?dbhtml table-width="15%"?>
-<?dbfo table-width="15%"?>
-<?dblatex table-width="15%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="0.87cm"/>
-<colspec colname="col_2" colwidth="0.87cm"/>
-<colspec colname="col_3" colwidth="0.87cm"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>A</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>B</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>C</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<figure floatstyle="[htbp]"><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-<section id="_section_level_offsets">
-<title>Section level offsets</title>
-<simpara>At level 1</simpara>
-<section id="_section_title">
-<title>Section title</title>
-<simpara>At level 2</simpara>
-</section>
-<section id="_section_title_2">
-<title>Section title</title>
-<simpara>At level 2</simpara>
-<section id="_section_title_3">
-<title>Section title</title>
-<simpara>At level 3</simpara>
-</section>
-</section>
-</section>
-<section id="_section_level_offsets_2">
-<title>Section level offsets</title>
-<simpara>At level 1</simpara>
-</section>
-<section id="_single_quoted_attributes">
-<title>Single-quoted attributes</title>
-<blockquote>
-<attribution>
-<ulink url="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</ulink>
-</attribution>
-<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</simpara>
-</blockquote>
-<blockquote>
-<attribution>
-<ulink url="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</ulink>
-</attribution>
-<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</simpara>
-</blockquote>
-</section>
-<section id="_footnotes">
-<title>Footnotes</title>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara>footnote one.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote id="F2"><simpara>footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
-<footnoteref linkend="F2" />.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara><ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink> Qui in magna commodo,
-est labitur dolorum an. Est ne magna primis adolescens. Sit munere
-ponderum dignissim et. Minim luptatum et vel
-<inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject></simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara><ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink></simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-vel <footnote><simpara><ulink url="https://asciidoc.org/">AsciiDoc website</ulink>.</simpara></footnote>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-<footnote id="F3"><simpara>A footnote&#44; &#34;with an image&#34; <inlinemediaobject> <imageobject> <imagedata fileref="../../images/images/smallnew.png"/> </imageobject> <textobject><phrase>images/smallnew.png</phrase></textobject> </inlinemediaobject></simpara></footnote>.
-<footnote><simpara>With [square brackets]</simpara></footnote> Qui in magna commodo, est labitur
-dolorum an. Est ne magna primis.</simpara>
-</section>
-<section id="_rulers_and_page_breaks">
-<title>Rulers and page breaks</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara><?asciidoc-hr?></simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara><?asciidoc-pagebreak?></simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section id="_这是一个测试">
-<title>这是一个测试</title>
-<simpara>Double-with character titles.
-<link linkend="_这是一个测试">link to auto-generated section ID</link>.</simpara>
-</section>
-<section id="_block_macros">
-<title>Block macros</title>
-<simpara>RS458 is 2.</simpara>
-</section>
-<simpara>Template line 1.
-Template line 2.</simpara>
-<section id="_an_id_without_accents">
-<title>àn îd without accénts</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section id="_àn_îd_with_accénts">
-<title>àn îd with accénts</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section id="_inline_macros">
-<title>Inline macros</title>
-<simpara><ulink url="http://groups.google.com/group/asciidoc/">A URL with [square
-brackets]</ulink>.</simpara>
-</section>
-<section id="_equation">
-<title>Equation</title>
-<equation floatstyle="[htbp]"><title>Equation</title>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-</section>
-<section id="_example">
-<title>Example</title>
-Formal figures, tables, equations and examples can float in docbook backend
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>Test <emphasis>Cases</emphasis></title>
+ <author>
+ <firstname>Joe</firstname>
+ <surname>Bloggs</surname>
+ </author>
+ <authorinitials>JB</authorinitials>
+</articleinfo>
+<section id="_passthrough_attributes">
+<title>Passthrough attributes</title>
+<simpara><emphasis>*lorum ipsum*</emphasis></simpara>
+<simpara>&lt;emphasis&gt;*lorum ipsum*&lt;/emphasis&gt;</simpara>
+</section>
+<section id="_author_attributes">
+<title>Author attributes</title>
+<simpara>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</simpara>
+<simpara>Hello <emphasis role="strong">Joe Bloggs</emphasis> (Joe Bloggs, JB).</simpara>
+<simpara>first name or last name or surname.</simpara>
+<simpara></simpara>
+<simpara>first name and last name.</simpara>
+</section>
+<section id="_system_attributes">
+<title>System attributes</title>
+<simpara>1 99 A</simpara>
+<simpara>1 = 1, 99 = 99, A = A</simpara>
+<simpara>2 100 B
+2 100 B</simpara>
+<simpara>2 = 2, 100 = 100, B = B</simpara>
+<simpara>y: Foobar</simpara>
+<simpara></simpara>
+<simpara></simpara>
+<simpara>3, 7</simpara>
+<simpara></simpara>
+<simpara>3, 3</simpara>
+</section>
+<section id="_quoted_text_attributes">
+<title>Quoted text attributes</title>
+<simpara>A=<emphasis>X</emphasis>, (<emphasis>X</emphasis>), <emphasis>X</emphasis>, [<emphasis>X</emphasis>] <emphasis>X</emphasis></simpara>
+<simpara>A=<emphasis role="strong"><emphasis>X</emphasis></emphasis>, (<literal>_X_</literal>), <emphasis><literal>X</literal></emphasis>, [<emphasis role="strong"><emphasis>X</emphasis></emphasis>] <literal><emphasis>X</emphasis></literal> <emphasis>X</emphasis></simpara>
+<simpara>[<emphasis>*X*</emphasis>] <emphasis>+X+</emphasis></simpara>
+<simpara id="_intro"><xref linkend="_intro"/> <link linkend="_intro">intro</link> <xref linkend="_intro"/> <emphasis>intro</emphasis></simpara>
+<simpara><phrase role="foo">fun with text</phrase>.
+<emphasis role="strong"><phrase role="foo bar">fun with text</phrase></emphasis>.
+<literal><phrase role="foo">fun with text</phrase></literal>.
+<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
+<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
+&#8220;<phrase role="foo">fun with text</phrase>&#8221;.
+&#8216;<phrase role="foo">fun with text</phrase>&#8217;.</simpara>
+<simpara><phrase role="foo">fun with text</phrase>.</simpara>
+<simpara><phrase role="foo">fun with text</phrase>.</simpara>
+<simpara><phrase role="red">Obvious</phrase> and <emphasis role="strong"><phrase role="big red yellow-background">very obvious</phrase></emphasis>.</simpara>
+<simpara><phrase role="underline">Underline text</phrase>, <phrase role="overline">overline text</phrase>
+and <phrase role="line-through">line-through text</phrase>.</simpara>
+<simpara><phrase role="firstletter">T</phrase>esting 123 &#8230;</simpara>
+<simpara>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</simpara>
+<simpara>(&#8220;<literal>1\n</literal>&#8221;) if (usually &#8220;<literal>-1\n</literal>&#8221;)</simpara>
+<simpara>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</simpara>
+</section>
+<section id="_configuration_attribute_entries">
+<title>Configuration attribute entries</title>
+<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
+<row>
+<entry>
+<simpara>
+term
+</simpara>
+</entry>
+<entry>
+<simpara>
+definition
+</simpara>
+</entry>
+</row>
+</tbody></tgroup></informaltable>
+<variablelist>
+<varlistentry>
+<term>
+term
+</term>
+<listitem>
+<simpara>
+definition
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section id="_role_attribute">
+<title>role attribute</title>
+<simpara role="test">Paragraph with a role attribute.</simpara>
+<itemizedlist role="test">
+<listitem>
+<simpara>
+first
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+second
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+third
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section id="_break_list_nesting">
+<title>Break list nesting</title>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+List 1.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List 1.
+</simpara>
+</listitem>
+</orderedlist>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+List 2.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List 2.
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section id="_listing_blocks">
+<title>Listing Blocks</title>
+<screen>$ ls <emphasis role="strong">-al</emphasis></screen>
+<screen>[subs="quotes"]
+------------------------------------------
+$ ls *-al*
+------------------------------------------</screen>
+<formalpara><title>Listing</title><para>
+<screen>$ ls -al</screen>
+</para></formalpara>
+<example>
+<title>Listing example</title>
+<screen>$ ls -al</screen>
+</example>
+<formalpara><title>Python paragraph</title><para>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</para></formalpara>
+<formalpara><title>Titled Python listing</title><para>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</para></formalpara>
+<example>
+<title>Python listing example</title>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</example>
+</section>
+<section id="X1" xreflabel="anchor reftext">
+<title>Links</title>
+<simpara>An <anchor id="X2" xreflabel="[X2]"/> inline anchor.
+An <anchor id="X3" xreflabel="anchor reftext"/> inline anchor with reftext.</simpara>
+<simpara><xref linkend="X1"/>; captioned link to <link linkend="X1">this test case</link>.</simpara>
+<simpara><xref linkend="X2"/> link to inline anchor; captioned link to <link linkend="X2">inline anchor</link>.</simpara>
+<simpara>Link to <xref linkend="X3"/> anchor.</simpara>
+<simpara>An example link to a bibliography entry <xref linkend="Test::Unit"/>.</simpara>
+<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
+<row>
+<entry>
+<simpara>
+<anchor id="Test::Unit" xreflabel="[Test::Unit]"/>[Test::Unit]
+</simpara>
+</entry>
+<entry>
+<simpara>
+<ulink url="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</ulink>
+</simpara>
+</entry>
+</row>
+</tbody></tgroup></informaltable>
+</section>
+<section id="_titles">
+<title>Titles</title>
+<bridgehead id="_level_4" renderas="sect4">Level 4</bridgehead>
+<bridgehead id="_level_3" renderas="sect3">Level 3</bridgehead>
+<bridgehead id="_level_2" renderas="sect2">Level 2</bridgehead>
+<bridgehead id="_level_1" renderas="sect1">Level 1</bridgehead>
+<bridgehead id="_level_4_2" renderas="sect4">Level 4</bridgehead>
+<bridgehead id="_level_3_2" renderas="sect3">Level 3</bridgehead>
+<bridgehead id="_level_2_2" renderas="sect2">Level 2</bridgehead>
+<bridgehead id="_level_1_2" renderas="sect1">Level 1</bridgehead>
+<formalpara><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+</section>
+<section id="_lists">
+<title>Lists</title>
+<simpara>Bulleted:</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+<simpara>Numbered:</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+arabic (decimal) numbering
+</simpara>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+loweralpha numbering
+</simpara>
+<orderedlist numeration="upperalpha">
+<listitem>
+<simpara>
+upperalpha numbering
+</simpara>
+<orderedlist numeration="lowerroman">
+<listitem>
+<simpara>
+lowerroman numbering
+</simpara>
+<orderedlist numeration="upperroman">
+<listitem>
+<simpara>
+upperroman numbering
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+arabic (decimal) numbering
+</simpara>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+loweralpha numbering
+</simpara>
+<orderedlist numeration="lowerroman">
+<listitem>
+<simpara>
+lowerroman numbering
+</simpara>
+<orderedlist numeration="upperalpha">
+<listitem>
+<simpara>
+upperalpha numbering
+</simpara>
+<orderedlist numeration="upperroman">
+<listitem>
+<simpara>
+upperroman numbering
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+<simpara>Labeled:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+<simpara>With item anchor:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+one
+</term>
+<listitem>
+<simpara>
+Item one.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<anchor id="item_two" xreflabel="[item_two]"/>two
+</term>
+<listitem>
+<simpara>
+Item two.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+three
+</term>
+<listitem>
+<simpara>
+Item three.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section id="_inline_passthroughs">
+<title>Inline passthroughs</title>
+<itemizedlist>
+<listitem>
+<simpara>
+Test `ABC`.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Test <literal>ABC</literal>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>++i</literal> and <literal>++j</literal> auto-increments.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Paths <literal>~/.vim</literal> and <literal>~/docs</literal>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>__init__</literal> method.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>{id}</literal> attribute.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>List start number test:</simpara>
+<orderedlist numeration="arabic"><?dbfo start="7"?><?dbhtml start="7"?>
+<listitem>
+<simpara>
+List item 7.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List item 8.
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section id="_images">
+<title>Images</title>
+<section id="_block_images">
+<title>Block images</title>
+<figure id="tiger_image"><title>Tyger tyger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tyger tyger</phrase></textobject>
+</mediaobject>
+</figure>
+<figure><title>Tyger tyger two</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png" contentwidth="350" contentdepth="250" align="center"/>
+ </imageobject>
+ <textobject><phrase>Tiger</phrase></textobject>
+</mediaobject>
+</figure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../doc/music2.png"/>
+ </imageobject>
+ <textobject><phrase>music2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<note><simpara>Lorum ipsum.</simpara></note>
+</section>
+<section id="_inline_images">
+<title>Inline images</title>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>smallnew.png</phrase></textobject>
+</inlinemediaobject></simpara>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>NEW!</phrase></textobject>
+</inlinemediaobject></simpara>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>NEW!</phrase></textobject>
+</inlinemediaobject></simpara>
+</section>
+</section>
+<section id="_admonishments">
+<title>Admonishments</title>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+</section>
+<section id="_backslash_escapes">
+<title>Backslash escapes</title>
+<formalpara><title>Apostrophe</title><para>Don&#8217;t vs don't.</para></formalpara>
+<formalpara><title>Exceptions</title><para>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
+ambiguity. Here are some non-standard escape examples:</para></formalpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<?dbhtml table-width="40%"?>
+<?dbfo table-width="40%"?>
+<?dblatex table-width="40%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="85*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<thead>
+<row>
+<entry align="left" valign="top">AsciiDoc </entry>
+<entry align="left" valign="top"> Renders</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">\joe.bloggs@example.com
+&lt;\joe.bloggs@example.com&gt;
+\mailto:[\joe.bloggs@example.com]</literallayout></entry>
+<entry align="left" valign="top"><literallayout>joe.bloggs@example.com
+&lt;joe.bloggs@example.com&gt;
+mailto:[joe.bloggs@example.com]</literallayout></entry>
+</row>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">\http://www.example.com
+\\http://www.example.com[]
+\\http://www.example.com[Foobar Limited]</literallayout></entry>
+<entry align="left" valign="top"><literallayout>http://www.example.com
+http://www.example.com[]
+http://www.example.com[Foobar Limited]</literallayout></entry>
+</row>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">A C\++ Library for C++
+\\``double-quotes''
+\*\*F**ile Open\...</literallayout></entry>
+<entry align="left" valign="top"><literallayout>A C++ Library for C++
+``double-quotes''
+**F**ile Open...</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section id="_paragraphs">
+<title>Paragraphs</title>
+<formalpara><title>Normal paragraph</title><para>This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</para></formalpara>
+<formalpara><title>Literal paragraph</title><para>
+<literallayout class="monospaced">This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</literallayout>
+</para></formalpara>
+<blockquote>
+<title>Verse paragraph</title>
+<literallayout>This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</blockquote>
+<formalpara><title>Indented (literal) paragraph</title><para>
+<literallayout class="monospaced">This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</literallayout>
+</para></formalpara>
+<formalpara><title>Indented with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<formalpara><title>Literal paragraph with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<formalpara><title>Literal block with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<blockquote>
+<attribution>
+William Blake
+<citetitle>from Auguries of Innocence</citetitle>
+</attribution>
+<literallayout>To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</literallayout>
+</blockquote>
+<blockquote>
+<attribution>
+Bertrand Russell
+<citetitle>The World of Mathematics (1956)</citetitle>
+</attribution>
+<simpara>A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.</simpara>
+</blockquote>
+</section>
+<section id="_urls">
+<title>URLs</title>
+<section id="_mail_addresses">
+<title>Mail Addresses</title>
+<simpara><ulink url="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</ulink></simpara>
+<simpara><ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>.</simpara>
+<simpara><ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>,<ulink url="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</ulink>,</simpara>
+<simpara><ulink url="mailto:joe-bloggs@mail-server.com">Mail</ulink></simpara>
+<simpara><ulink url="mailto:joe_bloggs@mail_server.com">Mail</ulink></simpara>
+<simpara><ulink url="mailto:joe.bloggs@mail.server.com">Mail</ulink></simpara>
+<simpara><ulink url="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</ulink><?asciidoc-br?>
+lorum ipsum.</simpara>
+</section>
+</section>
+<section id="_comments">
+<title>Comments</title>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
+<remark> This comment line will be displayed in the output.</remark>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+<remark> Visible inline comment line.</remark>
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
+<formalpara id="comment_macro"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+<formalpara id="comment_block"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+</section>
+<glossary id="_list_of_terms">
+<title>List of terms</title>
+<simpara>Using positional attribute to specify section template.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<glossary id="_list_of_terms_2">
+<title>List of terms</title>
+<simpara>Using named <emphasis>template</emphasis> attribute to specify section template.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<section id="_index_terms">
+<title>Index Terms</title>
+<simpara>Test 1 <indexterm><primary>test1</primary></indexterm>test1.</simpara>
+<simpara>Test 2 <indexterm>
+ <primary>test2</primary>
+</indexterm>.</simpara>
+<simpara>Test 3 <indexterm>
+ <primary>test3</primary><secondary>secondary</secondary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary>
+</indexterm>.</simpara>
+<simpara>Test 4 <indexterm>
+ <primary>test4</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary><secondary>tertiary</secondary>
+</indexterm>
+<indexterm>
+ <primary>tertiary</primary>
+</indexterm>.</simpara>
+<simpara>Test 5 <indexterm><primary>test5</primary></indexterm>test5.</simpara>
+<simpara>Test 6 <indexterm>
+ <primary>test6</primary>
+</indexterm>.</simpara>
+<simpara>Test 7 <indexterm>
+ <primary>test7</primary><secondary>secondary</secondary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary>
+</indexterm>.</simpara>
+<simpara>Test 8 <indexterm>
+ <primary>test8</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary><secondary>tertiary</secondary>
+</indexterm>
+<indexterm>
+ <primary>tertiary</primary>
+</indexterm>.</simpara>
+<simpara>Multi-passthough substitution (see
+<ulink url="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</ulink>)
+<indexterm><primary><literal>foo</literal></primary></indexterm><literal>foo</literal>
+<indexterm>
+ <primary>foo</primary><secondary><literal>bar</literal></secondary>
+</indexterm>
+<indexterm>
+ <primary><literal>bar</literal></primary>
+</indexterm>
+<indexterm>
+ <primary>foo</primary><secondary><literal>bar</literal></secondary><tertiary><literal>two</literal></tertiary>
+</indexterm>
+<indexterm>
+ <primary><literal>bar</literal></primary><secondary><literal>two</literal></secondary>
+</indexterm>
+<indexterm>
+ <primary><literal>two</literal></primary>
+</indexterm></simpara>
+</section>
+<section id="_table_with_fractional_column_width_units">
+<title>Table with fractional column width units</title>
+<note><simpara><emphasis>pagewidth</emphasis> and <emphasis>pageunits</emphasis> only apply to DocBook outputs.</simpara></note>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertical source data</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="1.54cm"/>
+<colspec colname="col_2" colwidth="1.03cm"/>
+<colspec colname="col_3" colwidth="1.03cm"/>
+<colspec colname="col_4" colwidth="5.15cm"/>
+<thead>
+<row>
+<entry align="left" valign="top">Date </entry>
+<entry align="center" valign="top">Duration </entry>
+<entry align="center" valign="top">Avg HR </entry>
+<entry align="left" valign="top">Notes</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>10:24</simpara></entry>
+<entry align="center" valign="top"><simpara>157</simpara></entry>
+<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>23:03</simpara></entry>
+<entry align="center" valign="top"><simpara>152</simpara></entry>
+<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>40:00</simpara></entry>
+<entry align="center" valign="top"><simpara>145</simpara></entry>
+<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</section>
+<section id="_table_with_parent_configuration_file_and_header_attribute_entry">
+<title>Table with parent configuration file and header attribute entry</title>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="1">
+<colspec colname="col_1" colwidth="100*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><itemizedlist>
+<listitem>
+<simpara>
+Attribute entry from header: TEST_ATTRIBUTE
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Replacement from <literal>testcases.conf</literal> configuration file: TEST_REPLACEMENT
+</simpara>
+</listitem>
+</itemizedlist></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section id="_table_column_specifiers_with_merged_cells">
+<title>Table column specifiers with merged cells</title>
+<simpara>See
+<ulink url="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</ulink></simpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="25*"/>
+<colspec colname="col_2" colwidth="25*"/>
+<colspec colname="col_3" colwidth="25*"/>
+<colspec colname="col_4" colwidth="25*"/>
+<tbody>
+<row>
+<entry align="left" valign="top" morerows="1"><simpara><literal></literal></simpara></entry>
+<entry align="right" valign="top" morerows="1"><simpara>1- A</simpara></entry>
+<entry align="center" valign="top" namest="col_3" nameend="col_4"><simpara><emphasis role="strong">2- B</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis role="strong">i- a</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>ii- b</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><literal>Values 1</literal></simpara></entry>
+<entry align="right" valign="top"><simpara>v1</simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis role="strong">v2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>v3</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><literal>Values 2</literal></simpara></entry>
+<entry align="right" valign="top"><simpara>v4</simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis role="strong">v5</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>v6</emphasis></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section id="_floating_tables_and_images">
+<title>Floating tables and images</title>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Simple table</title>
+<?dbhtml table-width="15%"?>
+<?dbfo table-width="15%"?>
+<?dblatex table-width="15%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="0.87cm"/>
+<colspec colname="col_2" colwidth="0.87cm"/>
+<colspec colname="col_3" colwidth="0.87cm"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>A</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>B</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>C</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<figure floatstyle="[htbp]"><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+<section id="_section_level_offsets">
+<title>Section level offsets</title>
+<simpara>At level 1</simpara>
+<section id="_section_title">
+<title>Section title</title>
+<simpara>At level 2</simpara>
+</section>
+<section id="_section_title_2">
+<title>Section title</title>
+<simpara>At level 2</simpara>
+<section id="_section_title_3">
+<title>Section title</title>
+<simpara>At level 3</simpara>
+</section>
+</section>
+</section>
+<section id="_section_level_offsets_2">
+<title>Section level offsets</title>
+<simpara>At level 1</simpara>
+</section>
+<section id="_single_quoted_attributes">
+<title>Single-quoted attributes</title>
+<blockquote>
+<attribution>
+<ulink url="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</ulink>
+</attribution>
+<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</simpara>
+</blockquote>
+<blockquote>
+<attribution>
+<ulink url="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</ulink>
+</attribution>
+<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</simpara>
+</blockquote>
+</section>
+<section id="_footnotes">
+<title>Footnotes</title>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara>footnote one.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote id="F2"><simpara>footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
+<footnoteref linkend="F2" />.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara><ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink> Qui in magna commodo,
+est labitur dolorum an. Est ne magna primis adolescens. Sit munere
+ponderum dignissim et. Minim luptatum et vel
+<inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject></simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara><ulink url="https://asciidoc.org/">https://asciidoc.org/</ulink></simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+vel <footnote><simpara><ulink url="https://asciidoc.org/">AsciiDoc website</ulink>.</simpara></footnote>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+<footnote id="F3"><simpara>A footnote&#44; &#34;with an image&#34; <inlinemediaobject> <imageobject> <imagedata fileref="../../images/images/smallnew.png"/> </imageobject> <textobject><phrase>images/smallnew.png</phrase></textobject> </inlinemediaobject></simpara></footnote>.
+<footnote><simpara>With [square brackets]</simpara></footnote> Qui in magna commodo, est labitur
+dolorum an. Est ne magna primis.</simpara>
+</section>
+<section id="_rulers_and_page_breaks">
+<title>Rulers and page breaks</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara><?asciidoc-hr?></simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara><?asciidoc-pagebreak?></simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section id="_这是一个测试">
+<title>这是一个测试</title>
+<simpara>Double-with character titles.
+<link linkend="_这是一个测试">link to auto-generated section ID</link>.</simpara>
+</section>
+<section id="_block_macros">
+<title>Block macros</title>
+<simpara>RS458 is 2.</simpara>
+</section>
+<simpara>Template line 1.
+Template line 2.</simpara>
+<section id="_an_id_without_accents">
+<title>àn îd without accénts</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section id="_àn_îd_with_accénts">
+<title>àn îd with accénts</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section id="_inline_macros">
+<title>Inline macros</title>
+<simpara><ulink url="http://groups.google.com/group/asciidoc/">A URL with [square
+brackets]</ulink>.</simpara>
+</section>
+<section id="_equation">
+<title>Equation</title>
+<equation floatstyle="[htbp]"><title>Equation</title>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+</section>
+<section id="_example">
+<title>Example</title>
+Formal figures, tables, equations and examples can float in docbook backend
+</section>
+</article>
diff --git a/tests/data/testcases-docbook5.xml b/tests/data/testcases-docbook5.xml
index 6ceaf15..0dad3df 100644
--- a/tests/data/testcases-docbook5.xml
+++ b/tests/data/testcases-docbook5.xml
@@ -1,1028 +1,1028 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>Test <emphasis>Cases</emphasis></title>
- <author>
- <personname>
- <firstname>Joe</firstname>
- <surname>Bloggs</surname>
- </personname>
- </author>
- <authorinitials>JB</authorinitials>
-</info>
-<section xml:id="_passthrough_attributes">
-<title>Passthrough attributes</title>
-<simpara><emphasis>*lorum ipsum*</emphasis></simpara>
-<simpara>&lt;emphasis&gt;*lorum ipsum*&lt;/emphasis&gt;</simpara>
-</section>
-<section xml:id="_author_attributes">
-<title>Author attributes</title>
-<simpara>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</simpara>
-<simpara>Hello <emphasis role="strong">Joe Bloggs</emphasis> (Joe Bloggs, JB).</simpara>
-<simpara>first name or last name or surname.</simpara>
-<simpara></simpara>
-<simpara>first name and last name.</simpara>
-</section>
-<section xml:id="_system_attributes">
-<title>System attributes</title>
-<simpara>1 99 A</simpara>
-<simpara>1 = 1, 99 = 99, A = A</simpara>
-<simpara>2 100 B
-2 100 B</simpara>
-<simpara>2 = 2, 100 = 100, B = B</simpara>
-<simpara>y: Foobar</simpara>
-<simpara></simpara>
-<simpara></simpara>
-<simpara>3, 7</simpara>
-<simpara></simpara>
-<simpara>3, 3</simpara>
-</section>
-<section xml:id="_quoted_text_attributes">
-<title>Quoted text attributes</title>
-<simpara>A=<emphasis>X</emphasis>, (<emphasis>X</emphasis>), <emphasis>X</emphasis>, [<emphasis>X</emphasis>] <emphasis>X</emphasis></simpara>
-<simpara>A=<emphasis role="strong"><emphasis>X</emphasis></emphasis>, (<literal>_X_</literal>), <emphasis><literal>X</literal></emphasis>, [<emphasis role="strong"><emphasis>X</emphasis></emphasis>] <literal><emphasis>X</emphasis></literal> <emphasis>X</emphasis></simpara>
-<simpara>[<emphasis>*X*</emphasis>] <emphasis>+X+</emphasis></simpara>
-<simpara xml:id="_intro"><xref linkend="_intro"/> <link linkend="_intro">intro</link> <xref linkend="_intro"/> <emphasis>intro</emphasis></simpara>
-<simpara><phrase role="foo">fun with text</phrase>.
-<emphasis role="strong"><phrase role="foo bar">fun with text</phrase></emphasis>.
-<literal><phrase role="foo">fun with text</phrase></literal>.
-<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
-<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
-&#8220;<phrase role="foo">fun with text</phrase>&#8221;.
-&#8216;<phrase role="foo">fun with text</phrase>&#8217;.</simpara>
-<simpara><phrase role="foo">fun with text</phrase>.</simpara>
-<simpara><phrase role="foo">fun with text</phrase>.</simpara>
-<simpara><phrase role="red">Obvious</phrase> and <emphasis role="strong"><phrase role="big red yellow-background">very obvious</phrase></emphasis>.</simpara>
-<simpara><phrase role="underline">Underline text</phrase>, <phrase role="overline">overline text</phrase>
-and <phrase role="line-through">line-through text</phrase>.</simpara>
-<simpara><phrase role="firstletter">T</phrase>esting 123 &#8230;</simpara>
-<simpara>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</simpara>
-<simpara>(&#8220;<literal>1\n</literal>&#8221;) if (usually &#8220;<literal>-1\n</literal>&#8221;)</simpara>
-<simpara>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</simpara>
-</section>
-<section xml:id="_configuration_attribute_entries">
-<title>Configuration attribute entries</title>
-<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
-<row>
-<entry>
-<simpara>
-term
-</simpara>
-</entry>
-<entry>
-<simpara>
-definition
-</simpara>
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-<variablelist>
-<varlistentry>
-<term>
-term
-</term>
-<listitem>
-<simpara>
-definition
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section xml:id="_role_attribute">
-<title>role attribute</title>
-<simpara role="test">Paragraph with a role attribute.</simpara>
-<itemizedlist role="test">
-<listitem>
-<simpara>
-first
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-second
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-third
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section xml:id="_break_list_nesting">
-<title>Break list nesting</title>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-List 1.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List 1.
-</simpara>
-</listitem>
-</orderedlist>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-List 2.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List 2.
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section xml:id="_listing_blocks">
-<title>Listing Blocks</title>
-<screen>$ ls <emphasis role="strong">-al</emphasis></screen>
-<screen>[subs="quotes"]
-------------------------------------------
-$ ls *-al*
-------------------------------------------</screen>
-<formalpara><title>Listing</title><para>
-<screen>$ ls -al</screen>
-</para></formalpara>
-<example>
-<title>Listing example</title>
-<screen>$ ls -al</screen>
-</example>
-<formalpara><title>Python paragraph</title><para>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</para></formalpara>
-<formalpara><title>Titled Python listing</title><para>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</para></formalpara>
-<example>
-<title>Python listing example</title>
-<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
-</example>
-</section>
-<section xml:id="X1" xreflabel="anchor reftext">
-<title>Links</title>
-<simpara>An <anchor xml:id="X2" xreflabel="[X2]"/> inline anchor.
-An <anchor xml:id="X3" xreflabel="anchor reftext"/> inline anchor with reftext.</simpara>
-<simpara><xref linkend="X1"/>; captioned link to <link linkend="X1">this test case</link>.</simpara>
-<simpara><xref linkend="X2"/> link to inline anchor; captioned link to <link linkend="X2">inline anchor</link>.</simpara>
-<simpara>Link to <xref linkend="X3"/> anchor.</simpara>
-<simpara>An example link to a bibliography entry <xref linkend="Test::Unit"/>.</simpara>
-<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
-<row>
-<entry>
-<simpara>
-<anchor xml:id="Test::Unit" xreflabel="[Test::Unit]"/>[Test::Unit]
-</simpara>
-</entry>
-<entry>
-<simpara>
-<link xlink:href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</link>
-</simpara>
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-</section>
-<section xml:id="_titles">
-<title>Titles</title>
-<bridgehead xml:id="_level_4" renderas="sect4">Level 4</bridgehead>
-<bridgehead xml:id="_level_3" renderas="sect3">Level 3</bridgehead>
-<bridgehead xml:id="_level_2" renderas="sect2">Level 2</bridgehead>
-<bridgehead xml:id="_level_1" renderas="sect1">Level 1</bridgehead>
-<bridgehead xml:id="_level_4_2" renderas="sect4">Level 4</bridgehead>
-<bridgehead xml:id="_level_3_2" renderas="sect3">Level 3</bridgehead>
-<bridgehead xml:id="_level_2_2" renderas="sect2">Level 2</bridgehead>
-<bridgehead xml:id="_level_1_2" renderas="sect1">Level 1</bridgehead>
-<formalpara><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-</section>
-<section xml:id="_lists">
-<title>Lists</title>
-<simpara>Bulleted:</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-<itemizedlist>
-<listitem>
-<simpara>
-item text
-</simpara>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-</listitem>
-</itemizedlist>
-<simpara>Numbered:</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-arabic (decimal) numbering
-</simpara>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-loweralpha numbering
-</simpara>
-<orderedlist numeration="upperalpha">
-<listitem>
-<simpara>
-upperalpha numbering
-</simpara>
-<orderedlist numeration="lowerroman">
-<listitem>
-<simpara>
-lowerroman numbering
-</simpara>
-<orderedlist numeration="upperroman">
-<listitem>
-<simpara>
-upperroman numbering
-</simpara>
-<orderedlist numeration="arabic">
-<listitem>
-<simpara>
-arabic (decimal) numbering
-</simpara>
-<orderedlist numeration="loweralpha">
-<listitem>
-<simpara>
-loweralpha numbering
-</simpara>
-<orderedlist numeration="lowerroman">
-<listitem>
-<simpara>
-lowerroman numbering
-</simpara>
-<orderedlist numeration="upperalpha">
-<listitem>
-<simpara>
-upperalpha numbering
-</simpara>
-<orderedlist numeration="upperroman">
-<listitem>
-<simpara>
-upperroman numbering
-</simpara>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-</listitem>
-</orderedlist>
-<simpara>Labeled:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-<variablelist>
-<varlistentry>
-<term>
-label
-</term>
-<listitem>
-<simpara>
-item text
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-</listitem>
-</varlistentry>
-</variablelist>
-<simpara>With item anchor:</simpara>
-<variablelist>
-<varlistentry>
-<term>
-one
-</term>
-<listitem>
-<simpara>
-Item one.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-<anchor xml:id="item_two" xreflabel="[item_two]"/>two
-</term>
-<listitem>
-<simpara>
-Item two.
-</simpara>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term>
-three
-</term>
-<listitem>
-<simpara>
-Item three.
-</simpara>
-</listitem>
-</varlistentry>
-</variablelist>
-</section>
-<section xml:id="_inline_passthroughs">
-<title>Inline passthroughs</title>
-<itemizedlist>
-<listitem>
-<simpara>
-Test `ABC`.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Test <literal>ABC</literal>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>++i</literal> and <literal>++j</literal> auto-increments.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Paths <literal>~/.vim</literal> and <literal>~/docs</literal>.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>__init__</literal> method.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-The <literal>{id}</literal> attribute.
-</simpara>
-</listitem>
-</itemizedlist>
-<simpara>List start number test:</simpara>
-<orderedlist numeration="arabic"><?dbfo start="7"?><?dbhtml start="7"?>
-<listitem>
-<simpara>
-List item 7.
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-List item 8.
-</simpara>
-</listitem>
-</orderedlist>
-</section>
-<section xml:id="_images">
-<title>Images</title>
-<section xml:id="_block_images">
-<title>Block images</title>
-<figure xml:id="tiger_image"><title>Tyger tyger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tyger tyger</phrase></textobject>
-</mediaobject>
-</figure>
-<figure><title>Tyger tyger two</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/tiger.png" contentwidth="350" contentdepth="250" align="center"/>
- </imageobject>
- <textobject><phrase>Tiger</phrase></textobject>
-</mediaobject>
-</figure>
-<informalfigure>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../doc/music2.png"/>
- </imageobject>
- <textobject><phrase>music2.png</phrase></textobject>
-</mediaobject>
-</informalfigure>
-<note><simpara>Lorum ipsum.</simpara></note>
-</section>
-<section xml:id="_inline_images">
-<title>Inline images</title>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>smallnew.png</phrase></textobject>
-</inlinemediaobject></simpara>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>NEW!</phrase></textobject>
-</inlinemediaobject></simpara>
-<simpara>Inline image <inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>NEW!</phrase></textobject>
-</inlinemediaobject></simpara>
-</section>
-</section>
-<section xml:id="_admonishments">
-<title>Admonishments</title>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-<note><simpara>Lorum ipsum.</simpara></note>
-<tip><simpara>Lorum ipsum.</simpara></tip>
-<warning><simpara>Lorum ipsum.</simpara></warning>
-<caution><simpara>Lorum ipsum.</simpara></caution>
-<important><simpara>Lorum ipsum.</simpara></important>
-</section>
-<section xml:id="_backslash_escapes">
-<title>Backslash escapes</title>
-<formalpara><title>Apostrophe</title><para>Don&#8217;t vs don't.</para></formalpara>
-<formalpara><title>Exceptions</title><para>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
-ambiguity. Here are some non-standard escape examples:</para></formalpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<?dbhtml table-width="40%"?>
-<?dbfo table-width="40%"?>
-<?dblatex table-width="40%"?>
-<tgroup cols="2">
-<colspec colname="col_1" colwidth="85*"/>
-<colspec colname="col_2" colwidth="85*"/>
-<thead>
-<row>
-<entry align="left" valign="top">AsciiDoc </entry>
-<entry align="left" valign="top"> Renders</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">\joe.bloggs@example.com
-&lt;\joe.bloggs@example.com&gt;
-\mailto:[\joe.bloggs@example.com]</literallayout></entry>
-<entry align="left" valign="top"><literallayout>joe.bloggs@example.com
-&lt;joe.bloggs@example.com&gt;
-mailto:[joe.bloggs@example.com]</literallayout></entry>
-</row>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">\http://www.example.com
-\\http://www.example.com[]
-\\http://www.example.com[Foobar Limited]</literallayout></entry>
-<entry align="left" valign="top"><literallayout>http://www.example.com
-http://www.example.com[]
-http://www.example.com[Foobar Limited]</literallayout></entry>
-</row>
-<row>
-<entry align="left" valign="top"><literallayout class="monospaced">A C\++ Library for C++
-\\``double-quotes''
-\*\*F**ile Open\...</literallayout></entry>
-<entry align="left" valign="top"><literallayout>A C++ Library for C++
-``double-quotes''
-**F**ile Open...</literallayout></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section xml:id="_paragraphs">
-<title>Paragraphs</title>
-<formalpara><title>Normal paragraph</title><para>This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</para></formalpara>
-<formalpara><title>Literal paragraph</title><para>
-<literallayout class="monospaced">This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</literallayout>
-</para></formalpara>
-<blockquote>
-<title>Verse paragraph</title>
-<literallayout>This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</blockquote>
-<formalpara><title>Indented (literal) paragraph</title><para>
-<literallayout class="monospaced">This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</literallayout>
-</para></formalpara>
-<formalpara><title>Indented with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<formalpara><title>Literal paragraph with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<formalpara><title>Literal block with quotes substitution</title><para>
-<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
-This is a <emphasis>strong</emphasis> line
-This is another <emphasis>strong</emphasis> line</literallayout>
-</para></formalpara>
-<blockquote>
-<attribution>
-William Blake
-<citetitle>from Auguries of Innocence</citetitle>
-</attribution>
-<literallayout>To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</literallayout>
-</blockquote>
-<blockquote>
-<attribution>
-Bertrand Russell
-<citetitle>The World of Mathematics (1956)</citetitle>
-</attribution>
-<simpara>A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.</simpara>
-</blockquote>
-</section>
-<section xml:id="_urls">
-<title>URLs</title>
-<section xml:id="_mail_addresses">
-<title>Mail Addresses</title>
-<simpara><link xlink:href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</link></simpara>
-<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>.</simpara>
-<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>,<link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>,</simpara>
-<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">Mail</link></simpara>
-<simpara><link xlink:href="mailto:joe_bloggs@mail_server.com">Mail</link></simpara>
-<simpara><link xlink:href="mailto:joe.bloggs@mail.server.com">Mail</link></simpara>
-<simpara><link xlink:href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</link><?asciidoc-br?>
-lorum ipsum.</simpara>
-</section>
-</section>
-<section xml:id="_comments">
-<title>Comments</title>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
-<remark> This comment line will be displayed in the output.</remark>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-<remark> Visible inline comment line.</remark>
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
-<formalpara xml:id="comment_macro"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-<formalpara xml:id="comment_block"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
-</section>
-<glossary xml:id="_list_of_terms">
-<title>List of terms</title>
-<simpara>Using positional attribute to specify section template.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<glossary xml:id="_list_of_terms_2">
-<title>List of terms</title>
-<simpara>Using named <emphasis>template</emphasis> attribute to specify section template.</simpara>
-<glossentry>
-<glossterm>
-A glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-<glossentry>
-<glossterm>
-A second glossary term
-</glossterm>
-<glossdef>
-<simpara>
- The corresponding (indented) definition.
-</simpara>
-</glossdef>
-</glossentry>
-</glossary>
-<section xml:id="_index_terms">
-<title>Index Terms</title>
-<simpara>Test 1 <indexterm><primary>test1</primary></indexterm>test1.</simpara>
-<simpara>Test 2 <indexterm>
- <primary>test2</primary>
-</indexterm>.</simpara>
-<simpara>Test 3 <indexterm>
- <primary>test3</primary><secondary>secondary</secondary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary>
-</indexterm>.</simpara>
-<simpara>Test 4 <indexterm>
- <primary>test4</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary><secondary>tertiary</secondary>
-</indexterm>
-<indexterm>
- <primary>tertiary</primary>
-</indexterm>.</simpara>
-<simpara>Test 5 <indexterm><primary>test5</primary></indexterm>test5.</simpara>
-<simpara>Test 6 <indexterm>
- <primary>test6</primary>
-</indexterm>.</simpara>
-<simpara>Test 7 <indexterm>
- <primary>test7</primary><secondary>secondary</secondary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary>
-</indexterm>.</simpara>
-<simpara>Test 8 <indexterm>
- <primary>test8</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
-</indexterm>
-<indexterm>
- <primary>secondary</primary><secondary>tertiary</secondary>
-</indexterm>
-<indexterm>
- <primary>tertiary</primary>
-</indexterm>.</simpara>
-<simpara>Multi-passthough substitution (see
-<link xlink:href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</link>)
-<indexterm><primary><literal>foo</literal></primary></indexterm><literal>foo</literal>
-<indexterm>
- <primary>foo</primary><secondary><literal>bar</literal></secondary>
-</indexterm>
-<indexterm>
- <primary><literal>bar</literal></primary>
-</indexterm>
-<indexterm>
- <primary>foo</primary><secondary><literal>bar</literal></secondary><tertiary><literal>two</literal></tertiary>
-</indexterm>
-<indexterm>
- <primary><literal>bar</literal></primary><secondary><literal>two</literal></secondary>
-</indexterm>
-<indexterm>
- <primary><literal>two</literal></primary>
-</indexterm></simpara>
-</section>
-<section xml:id="_table_with_fractional_column_width_units">
-<title>Table with fractional column width units</title>
-<note><simpara><emphasis>pagewidth</emphasis> and <emphasis>pageunits</emphasis> only apply to DocBook outputs.</simpara></note>
-<table
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Horizontal and vertical source data</title>
-<?dbhtml table-width="50%"?>
-<?dbfo table-width="50%"?>
-<?dblatex table-width="50%"?>
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="1.54cm"/>
-<colspec colname="col_2" colwidth="1.03cm"/>
-<colspec colname="col_3" colwidth="1.03cm"/>
-<colspec colname="col_4" colwidth="5.15cm"/>
-<thead>
-<row>
-<entry align="left" valign="top">Date </entry>
-<entry align="center" valign="top">Duration </entry>
-<entry align="center" valign="top">Avg HR </entry>
-<entry align="left" valign="top">Notes</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>10:24</simpara></entry>
-<entry align="center" valign="top"><simpara>157</simpara></entry>
-<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>23:03</simpara></entry>
-<entry align="center" valign="top"><simpara>152</simpara></entry>
-<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
-<entry align="center" valign="top"><simpara>40:00</simpara></entry>
-<entry align="center" valign="top"><simpara>145</simpara></entry>
-<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-</section>
-<section xml:id="_table_with_parent_configuration_file_and_header_attribute_entry">
-<title>Table with parent configuration file and header attribute entry</title>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="1">
-<colspec colname="col_1" colwidth="100*"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><itemizedlist>
-<listitem>
-<simpara>
-Attribute entry from header: TEST_ATTRIBUTE
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Replacement from <literal>testcases.conf</literal> configuration file: TEST_REPLACEMENT
-</simpara>
-</listitem>
-</itemizedlist></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section xml:id="_table_column_specifiers_with_merged_cells">
-<title>Table column specifiers with merged cells</title>
-<simpara>See
-<link xlink:href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</link></simpara>
-<informaltable
-frame="all"
-rowsep="1" colsep="1"
->
-<tgroup cols="4">
-<colspec colname="col_1" colwidth="25*"/>
-<colspec colname="col_2" colwidth="25*"/>
-<colspec colname="col_3" colwidth="25*"/>
-<colspec colname="col_4" colwidth="25*"/>
-<tbody>
-<row>
-<entry align="left" valign="top" morerows="1"><simpara><literal></literal></simpara></entry>
-<entry align="right" valign="top" morerows="1"><simpara>1- A</simpara></entry>
-<entry align="center" valign="top" namest="col_3" nameend="col_4"><simpara><emphasis role="strong">2- B</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="center" valign="top"><simpara><emphasis role="strong">i- a</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>ii- b</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><literal>Values 1</literal></simpara></entry>
-<entry align="right" valign="top"><simpara>v1</simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis role="strong">v2</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>v3</emphasis></simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara><literal>Values 2</literal></simpara></entry>
-<entry align="right" valign="top"><simpara>v4</simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis role="strong">v5</emphasis></simpara></entry>
-<entry align="center" valign="top"><simpara><emphasis>v6</emphasis></simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</informaltable>
-</section>
-<section xml:id="_floating_tables_and_images">
-<title>Floating tables and images</title>
-<table floatstyle="[htbp]"
-frame="all"
-rowsep="1" colsep="1"
->
-<title>Simple table</title>
-<?dbhtml table-width="15%"?>
-<?dbfo table-width="15%"?>
-<?dblatex table-width="15%"?>
-<tgroup cols="3">
-<colspec colname="col_1" colwidth="0.87cm"/>
-<colspec colname="col_2" colwidth="0.87cm"/>
-<colspec colname="col_3" colwidth="0.87cm"/>
-<tbody>
-<row>
-<entry align="left" valign="top"><simpara>1</simpara></entry>
-<entry align="left" valign="top"><simpara>2</simpara></entry>
-<entry align="left" valign="top"><simpara>A</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>3</simpara></entry>
-<entry align="left" valign="top"><simpara>4</simpara></entry>
-<entry align="left" valign="top"><simpara>B</simpara></entry>
-</row>
-<row>
-<entry align="left" valign="top"><simpara>5</simpara></entry>
-<entry align="left" valign="top"><simpara>6</simpara></entry>
-<entry align="left" valign="top"><simpara>C</simpara></entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-<figure floatstyle="[htbp]"><title>Tiger</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="../../images/images/tiger.png"/>
- </imageobject>
- <textobject><phrase>Tiger image</phrase></textobject>
-</mediaobject>
-</figure>
-</section>
-<section xml:id="_section_level_offsets">
-<title>Section level offsets</title>
-<simpara>At level 1</simpara>
-<section xml:id="_section_title">
-<title>Section title</title>
-<simpara>At level 2</simpara>
-</section>
-<section xml:id="_section_title_2">
-<title>Section title</title>
-<simpara>At level 2</simpara>
-<section xml:id="_section_title_3">
-<title>Section title</title>
-<simpara>At level 3</simpara>
-</section>
-</section>
-</section>
-<section xml:id="_section_level_offsets_2">
-<title>Section level offsets</title>
-<simpara>At level 1</simpara>
-</section>
-<section xml:id="_single_quoted_attributes">
-<title>Single-quoted attributes</title>
-<blockquote>
-<attribution>
-<link xlink:href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</link>
-</attribution>
-<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</simpara>
-</blockquote>
-<blockquote>
-<attribution>
-<link xlink:href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</link>
-</attribution>
-<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</simpara>
-</blockquote>
-</section>
-<section xml:id="_footnotes">
-<title>Footnotes</title>
-<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara>footnote one.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote xml:id="F2"><simpara>footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
-<footnoteref linkend="F2" />.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara><link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link> Qui in magna commodo,
-est labitur dolorum an. Est ne magna primis adolescens. Sit munere
-ponderum dignissim et. Minim luptatum et vel
-<inlinemediaobject>
- <imageobject>
- <imagedata fileref="../../images/images/smallnew.png"/>
- </imageobject>
- <textobject><phrase>images/smallnew.png</phrase></textobject>
-</inlinemediaobject></simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<footnote><simpara><link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link></simpara></footnote>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-vel <footnote><simpara><link xlink:href="https://asciidoc.org/">AsciiDoc website</link>.</simpara></footnote>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-<footnote xml:id="F3"><simpara>A footnote&#44; &#34;with an image&#34; <inlinemediaobject> <imageobject> <imagedata fileref="../../images/images/smallnew.png"/> </imageobject> <textobject><phrase>images/smallnew.png</phrase></textobject> </inlinemediaobject></simpara></footnote>.
-<footnote><simpara>With [square brackets]</simpara></footnote> Qui in magna commodo, est labitur
-dolorum an. Est ne magna primis.</simpara>
-</section>
-<section xml:id="_rulers_and_page_breaks">
-<title>Rulers and page breaks</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara><?asciidoc-hr?></simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara><?asciidoc-pagebreak?></simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section xml:id="_这是一个测试">
-<title>这是一个测试</title>
-<simpara>Double-with character titles.
-<link linkend="_这是一个测试">link to auto-generated section ID</link>.</simpara>
-</section>
-<section xml:id="_block_macros">
-<title>Block macros</title>
-<simpara>RS458 is 2.</simpara>
-</section>
-<simpara>Template line 1.
-Template line 2.</simpara>
-<section xml:id="_an_id_without_accents">
-<title>àn îd without accénts</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section xml:id="_àn_îd_with_accénts">
-<title>àn îd with accénts</title>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-<section xml:id="_inline_macros">
-<title>Inline macros</title>
-<simpara><link xlink:href="http://groups.google.com/group/asciidoc/">A URL with [square
-brackets]</link>.</simpara>
-</section>
-<section xml:id="_equation">
-<title>Equation</title>
-<equation floatstyle="[htbp]"><title>Equation</title>
-<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
-<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
-</equation>
-</section>
-<section xml:id="_example">
-<title>Example</title>
-Formal figures, tables, equations and examples can float in docbook backend
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>Test <emphasis>Cases</emphasis></title>
+ <author>
+ <personname>
+ <firstname>Joe</firstname>
+ <surname>Bloggs</surname>
+ </personname>
+ </author>
+ <authorinitials>JB</authorinitials>
+</info>
+<section xml:id="_passthrough_attributes">
+<title>Passthrough attributes</title>
+<simpara><emphasis>*lorum ipsum*</emphasis></simpara>
+<simpara>&lt;emphasis&gt;*lorum ipsum*&lt;/emphasis&gt;</simpara>
+</section>
+<section xml:id="_author_attributes">
+<title>Author attributes</title>
+<simpara>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</simpara>
+<simpara>Hello <emphasis role="strong">Joe Bloggs</emphasis> (Joe Bloggs, JB).</simpara>
+<simpara>first name or last name or surname.</simpara>
+<simpara></simpara>
+<simpara>first name and last name.</simpara>
+</section>
+<section xml:id="_system_attributes">
+<title>System attributes</title>
+<simpara>1 99 A</simpara>
+<simpara>1 = 1, 99 = 99, A = A</simpara>
+<simpara>2 100 B
+2 100 B</simpara>
+<simpara>2 = 2, 100 = 100, B = B</simpara>
+<simpara>y: Foobar</simpara>
+<simpara></simpara>
+<simpara></simpara>
+<simpara>3, 7</simpara>
+<simpara></simpara>
+<simpara>3, 3</simpara>
+</section>
+<section xml:id="_quoted_text_attributes">
+<title>Quoted text attributes</title>
+<simpara>A=<emphasis>X</emphasis>, (<emphasis>X</emphasis>), <emphasis>X</emphasis>, [<emphasis>X</emphasis>] <emphasis>X</emphasis></simpara>
+<simpara>A=<emphasis role="strong"><emphasis>X</emphasis></emphasis>, (<literal>_X_</literal>), <emphasis><literal>X</literal></emphasis>, [<emphasis role="strong"><emphasis>X</emphasis></emphasis>] <literal><emphasis>X</emphasis></literal> <emphasis>X</emphasis></simpara>
+<simpara>[<emphasis>*X*</emphasis>] <emphasis>+X+</emphasis></simpara>
+<simpara xml:id="_intro"><xref linkend="_intro"/> <link linkend="_intro">intro</link> <xref linkend="_intro"/> <emphasis>intro</emphasis></simpara>
+<simpara><phrase role="foo">fun with text</phrase>.
+<emphasis role="strong"><phrase role="foo bar">fun with text</phrase></emphasis>.
+<literal><phrase role="foo">fun with text</phrase></literal>.
+<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
+<emphasis><phrase role="foo">fun with text</phrase></emphasis>.
+&#8220;<phrase role="foo">fun with text</phrase>&#8221;.
+&#8216;<phrase role="foo">fun with text</phrase>&#8217;.</simpara>
+<simpara><phrase role="foo">fun with text</phrase>.</simpara>
+<simpara><phrase role="foo">fun with text</phrase>.</simpara>
+<simpara><phrase role="red">Obvious</phrase> and <emphasis role="strong"><phrase role="big red yellow-background">very obvious</phrase></emphasis>.</simpara>
+<simpara><phrase role="underline">Underline text</phrase>, <phrase role="overline">overline text</phrase>
+and <phrase role="line-through">line-through text</phrase>.</simpara>
+<simpara><phrase role="firstletter">T</phrase>esting 123 &#8230;</simpara>
+<simpara>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</simpara>
+<simpara>(&#8220;<literal>1\n</literal>&#8221;) if (usually &#8220;<literal>-1\n</literal>&#8221;)</simpara>
+<simpara>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</simpara>
+</section>
+<section xml:id="_configuration_attribute_entries">
+<title>Configuration attribute entries</title>
+<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
+<row>
+<entry>
+<simpara>
+term
+</simpara>
+</entry>
+<entry>
+<simpara>
+definition
+</simpara>
+</entry>
+</row>
+</tbody></tgroup></informaltable>
+<variablelist>
+<varlistentry>
+<term>
+term
+</term>
+<listitem>
+<simpara>
+definition
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section xml:id="_role_attribute">
+<title>role attribute</title>
+<simpara role="test">Paragraph with a role attribute.</simpara>
+<itemizedlist role="test">
+<listitem>
+<simpara>
+first
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+second
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+third
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section xml:id="_break_list_nesting">
+<title>Break list nesting</title>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+List 1.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List 1.
+</simpara>
+</listitem>
+</orderedlist>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+List 2.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List 2.
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section xml:id="_listing_blocks">
+<title>Listing Blocks</title>
+<screen>$ ls <emphasis role="strong">-al</emphasis></screen>
+<screen>[subs="quotes"]
+------------------------------------------
+$ ls *-al*
+------------------------------------------</screen>
+<formalpara><title>Listing</title><para>
+<screen>$ ls -al</screen>
+</para></formalpara>
+<example>
+<title>Listing example</title>
+<screen>$ ls -al</screen>
+</example>
+<formalpara><title>Python paragraph</title><para>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</para></formalpara>
+<formalpara><title>Titled Python listing</title><para>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</para></formalpara>
+<example>
+<title>Python listing example</title>
+<programlisting language="python" linenumbering="unnumbered">if n &lt; 0: print 'Hello World!'</programlisting>
+</example>
+</section>
+<section xml:id="X1" xreflabel="anchor reftext">
+<title>Links</title>
+<simpara>An <anchor xml:id="X2" xreflabel="[X2]"/> inline anchor.
+An <anchor xml:id="X3" xreflabel="anchor reftext"/> inline anchor with reftext.</simpara>
+<simpara><xref linkend="X1"/>; captioned link to <link linkend="X1">this test case</link>.</simpara>
+<simpara><xref linkend="X2"/> link to inline anchor; captioned link to <link linkend="X2">inline anchor</link>.</simpara>
+<simpara>Link to <xref linkend="X3"/> anchor.</simpara>
+<simpara>An example link to a bibliography entry <xref linkend="Test::Unit"/>.</simpara>
+<informaltable tabstyle="horizontal" frame="none" colsep="0" rowsep="0"><tgroup cols="2"><colspec colwidth="15*"/><colspec colwidth="85*"/><tbody valign="top">
+<row>
+<entry>
+<simpara>
+<anchor xml:id="Test::Unit" xreflabel="[Test::Unit]"/>[Test::Unit]
+</simpara>
+</entry>
+<entry>
+<simpara>
+<link xlink:href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</link>
+</simpara>
+</entry>
+</row>
+</tbody></tgroup></informaltable>
+</section>
+<section xml:id="_titles">
+<title>Titles</title>
+<bridgehead xml:id="_level_4" renderas="sect4">Level 4</bridgehead>
+<bridgehead xml:id="_level_3" renderas="sect3">Level 3</bridgehead>
+<bridgehead xml:id="_level_2" renderas="sect2">Level 2</bridgehead>
+<bridgehead xml:id="_level_1" renderas="sect1">Level 1</bridgehead>
+<bridgehead xml:id="_level_4_2" renderas="sect4">Level 4</bridgehead>
+<bridgehead xml:id="_level_3_2" renderas="sect3">Level 3</bridgehead>
+<bridgehead xml:id="_level_2_2" renderas="sect2">Level 2</bridgehead>
+<bridgehead xml:id="_level_1_2" renderas="sect1">Level 1</bridgehead>
+<formalpara><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+</section>
+<section xml:id="_lists">
+<title>Lists</title>
+<simpara>Bulleted:</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+<itemizedlist>
+<listitem>
+<simpara>
+item text
+</simpara>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+<simpara>Numbered:</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+arabic (decimal) numbering
+</simpara>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+loweralpha numbering
+</simpara>
+<orderedlist numeration="upperalpha">
+<listitem>
+<simpara>
+upperalpha numbering
+</simpara>
+<orderedlist numeration="lowerroman">
+<listitem>
+<simpara>
+lowerroman numbering
+</simpara>
+<orderedlist numeration="upperroman">
+<listitem>
+<simpara>
+upperroman numbering
+</simpara>
+<orderedlist numeration="arabic">
+<listitem>
+<simpara>
+arabic (decimal) numbering
+</simpara>
+<orderedlist numeration="loweralpha">
+<listitem>
+<simpara>
+loweralpha numbering
+</simpara>
+<orderedlist numeration="lowerroman">
+<listitem>
+<simpara>
+lowerroman numbering
+</simpara>
+<orderedlist numeration="upperalpha">
+<listitem>
+<simpara>
+upperalpha numbering
+</simpara>
+<orderedlist numeration="upperroman">
+<listitem>
+<simpara>
+upperroman numbering
+</simpara>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+</listitem>
+</orderedlist>
+<simpara>Labeled:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+<variablelist>
+<varlistentry>
+<term>
+label
+</term>
+<listitem>
+<simpara>
+item text
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+<simpara>With item anchor:</simpara>
+<variablelist>
+<varlistentry>
+<term>
+one
+</term>
+<listitem>
+<simpara>
+Item one.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+<anchor xml:id="item_two" xreflabel="[item_two]"/>two
+</term>
+<listitem>
+<simpara>
+Item two.
+</simpara>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>
+three
+</term>
+<listitem>
+<simpara>
+Item three.
+</simpara>
+</listitem>
+</varlistentry>
+</variablelist>
+</section>
+<section xml:id="_inline_passthroughs">
+<title>Inline passthroughs</title>
+<itemizedlist>
+<listitem>
+<simpara>
+Test `ABC`.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Test <literal>ABC</literal>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>++i</literal> and <literal>++j</literal> auto-increments.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Paths <literal>~/.vim</literal> and <literal>~/docs</literal>.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>__init__</literal> method.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+The <literal>{id}</literal> attribute.
+</simpara>
+</listitem>
+</itemizedlist>
+<simpara>List start number test:</simpara>
+<orderedlist numeration="arabic"><?dbfo start="7"?><?dbhtml start="7"?>
+<listitem>
+<simpara>
+List item 7.
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+List item 8.
+</simpara>
+</listitem>
+</orderedlist>
+</section>
+<section xml:id="_images">
+<title>Images</title>
+<section xml:id="_block_images">
+<title>Block images</title>
+<figure xml:id="tiger_image"><title>Tyger tyger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tyger tyger</phrase></textobject>
+</mediaobject>
+</figure>
+<figure><title>Tyger tyger two</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/tiger.png" contentwidth="350" contentdepth="250" align="center"/>
+ </imageobject>
+ <textobject><phrase>Tiger</phrase></textobject>
+</mediaobject>
+</figure>
+<informalfigure>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../doc/music2.png"/>
+ </imageobject>
+ <textobject><phrase>music2.png</phrase></textobject>
+</mediaobject>
+</informalfigure>
+<note><simpara>Lorum ipsum.</simpara></note>
+</section>
+<section xml:id="_inline_images">
+<title>Inline images</title>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>smallnew.png</phrase></textobject>
+</inlinemediaobject></simpara>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>NEW!</phrase></textobject>
+</inlinemediaobject></simpara>
+<simpara>Inline image <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>NEW!</phrase></textobject>
+</inlinemediaobject></simpara>
+</section>
+</section>
+<section xml:id="_admonishments">
+<title>Admonishments</title>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+<note><simpara>Lorum ipsum.</simpara></note>
+<tip><simpara>Lorum ipsum.</simpara></tip>
+<warning><simpara>Lorum ipsum.</simpara></warning>
+<caution><simpara>Lorum ipsum.</simpara></caution>
+<important><simpara>Lorum ipsum.</simpara></important>
+</section>
+<section xml:id="_backslash_escapes">
+<title>Backslash escapes</title>
+<formalpara><title>Apostrophe</title><para>Don&#8217;t vs don't.</para></formalpara>
+<formalpara><title>Exceptions</title><para>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
+ambiguity. Here are some non-standard escape examples:</para></formalpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<?dbhtml table-width="40%"?>
+<?dbfo table-width="40%"?>
+<?dblatex table-width="40%"?>
+<tgroup cols="2">
+<colspec colname="col_1" colwidth="85*"/>
+<colspec colname="col_2" colwidth="85*"/>
+<thead>
+<row>
+<entry align="left" valign="top">AsciiDoc </entry>
+<entry align="left" valign="top"> Renders</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">\joe.bloggs@example.com
+&lt;\joe.bloggs@example.com&gt;
+\mailto:[\joe.bloggs@example.com]</literallayout></entry>
+<entry align="left" valign="top"><literallayout>joe.bloggs@example.com
+&lt;joe.bloggs@example.com&gt;
+mailto:[joe.bloggs@example.com]</literallayout></entry>
+</row>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">\http://www.example.com
+\\http://www.example.com[]
+\\http://www.example.com[Foobar Limited]</literallayout></entry>
+<entry align="left" valign="top"><literallayout>http://www.example.com
+http://www.example.com[]
+http://www.example.com[Foobar Limited]</literallayout></entry>
+</row>
+<row>
+<entry align="left" valign="top"><literallayout class="monospaced">A C\++ Library for C++
+\\``double-quotes''
+\*\*F**ile Open\...</literallayout></entry>
+<entry align="left" valign="top"><literallayout>A C++ Library for C++
+``double-quotes''
+**F**ile Open...</literallayout></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section xml:id="_paragraphs">
+<title>Paragraphs</title>
+<formalpara><title>Normal paragraph</title><para>This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</para></formalpara>
+<formalpara><title>Literal paragraph</title><para>
+<literallayout class="monospaced">This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</literallayout>
+</para></formalpara>
+<blockquote>
+<title>Verse paragraph</title>
+<literallayout>This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</blockquote>
+<formalpara><title>Indented (literal) paragraph</title><para>
+<literallayout class="monospaced">This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</literallayout>
+</para></formalpara>
+<formalpara><title>Indented with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<formalpara><title>Literal paragraph with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<formalpara><title>Literal block with quotes substitution</title><para>
+<literallayout class="monospaced">This is a <emphasis role="strong">bold</emphasis> a line
+This is a <emphasis>strong</emphasis> line
+This is another <emphasis>strong</emphasis> line</literallayout>
+</para></formalpara>
+<blockquote>
+<attribution>
+William Blake
+<citetitle>from Auguries of Innocence</citetitle>
+</attribution>
+<literallayout>To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</literallayout>
+</blockquote>
+<blockquote>
+<attribution>
+Bertrand Russell
+<citetitle>The World of Mathematics (1956)</citetitle>
+</attribution>
+<simpara>A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.</simpara>
+</blockquote>
+</section>
+<section xml:id="_urls">
+<title>URLs</title>
+<section xml:id="_mail_addresses">
+<title>Mail Addresses</title>
+<simpara><link xlink:href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</link></simpara>
+<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>.</simpara>
+<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>,<link xlink:href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</link>,</simpara>
+<simpara><link xlink:href="mailto:joe-bloggs@mail-server.com">Mail</link></simpara>
+<simpara><link xlink:href="mailto:joe_bloggs@mail_server.com">Mail</link></simpara>
+<simpara><link xlink:href="mailto:joe.bloggs@mail.server.com">Mail</link></simpara>
+<simpara><link xlink:href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</link><?asciidoc-br?>
+lorum ipsum.</simpara>
+</section>
+</section>
+<section xml:id="_comments">
+<title>Comments</title>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
+<remark> This comment line will be displayed in the output.</remark>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+<remark> Visible inline comment line.</remark>
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</simpara>
+<formalpara xml:id="comment_macro"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+<formalpara xml:id="comment_block"><title>Block title</title><para>Lorum ipsum.</para></formalpara>
+</section>
+<glossary xml:id="_list_of_terms">
+<title>List of terms</title>
+<simpara>Using positional attribute to specify section template.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<glossary xml:id="_list_of_terms_2">
+<title>List of terms</title>
+<simpara>Using named <emphasis>template</emphasis> attribute to specify section template.</simpara>
+<glossentry>
+<glossterm>
+A glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+<glossentry>
+<glossterm>
+A second glossary term
+</glossterm>
+<glossdef>
+<simpara>
+ The corresponding (indented) definition.
+</simpara>
+</glossdef>
+</glossentry>
+</glossary>
+<section xml:id="_index_terms">
+<title>Index Terms</title>
+<simpara>Test 1 <indexterm><primary>test1</primary></indexterm>test1.</simpara>
+<simpara>Test 2 <indexterm>
+ <primary>test2</primary>
+</indexterm>.</simpara>
+<simpara>Test 3 <indexterm>
+ <primary>test3</primary><secondary>secondary</secondary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary>
+</indexterm>.</simpara>
+<simpara>Test 4 <indexterm>
+ <primary>test4</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary><secondary>tertiary</secondary>
+</indexterm>
+<indexterm>
+ <primary>tertiary</primary>
+</indexterm>.</simpara>
+<simpara>Test 5 <indexterm><primary>test5</primary></indexterm>test5.</simpara>
+<simpara>Test 6 <indexterm>
+ <primary>test6</primary>
+</indexterm>.</simpara>
+<simpara>Test 7 <indexterm>
+ <primary>test7</primary><secondary>secondary</secondary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary>
+</indexterm>.</simpara>
+<simpara>Test 8 <indexterm>
+ <primary>test8</primary><secondary>secondary</secondary><tertiary>tertiary</tertiary>
+</indexterm>
+<indexterm>
+ <primary>secondary</primary><secondary>tertiary</secondary>
+</indexterm>
+<indexterm>
+ <primary>tertiary</primary>
+</indexterm>.</simpara>
+<simpara>Multi-passthough substitution (see
+<link xlink:href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</link>)
+<indexterm><primary><literal>foo</literal></primary></indexterm><literal>foo</literal>
+<indexterm>
+ <primary>foo</primary><secondary><literal>bar</literal></secondary>
+</indexterm>
+<indexterm>
+ <primary><literal>bar</literal></primary>
+</indexterm>
+<indexterm>
+ <primary>foo</primary><secondary><literal>bar</literal></secondary><tertiary><literal>two</literal></tertiary>
+</indexterm>
+<indexterm>
+ <primary><literal>bar</literal></primary><secondary><literal>two</literal></secondary>
+</indexterm>
+<indexterm>
+ <primary><literal>two</literal></primary>
+</indexterm></simpara>
+</section>
+<section xml:id="_table_with_fractional_column_width_units">
+<title>Table with fractional column width units</title>
+<note><simpara><emphasis>pagewidth</emphasis> and <emphasis>pageunits</emphasis> only apply to DocBook outputs.</simpara></note>
+<table
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Horizontal and vertical source data</title>
+<?dbhtml table-width="50%"?>
+<?dbfo table-width="50%"?>
+<?dblatex table-width="50%"?>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="1.54cm"/>
+<colspec colname="col_2" colwidth="1.03cm"/>
+<colspec colname="col_3" colwidth="1.03cm"/>
+<colspec colname="col_4" colwidth="5.15cm"/>
+<thead>
+<row>
+<entry align="left" valign="top">Date </entry>
+<entry align="center" valign="top">Duration </entry>
+<entry align="center" valign="top">Avg HR </entry>
+<entry align="left" valign="top">Notes</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>10:24</simpara></entry>
+<entry align="center" valign="top"><simpara>157</simpara></entry>
+<entry align="left" valign="top"><simpara>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>22-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>23:03</simpara></entry>
+<entry align="center" valign="top"><simpara>152</simpara></entry>
+<entry align="left" valign="top"><simpara>Back-to-back with previous interval.</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>24-Aug-08</simpara></entry>
+<entry align="center" valign="top"><simpara>40:00</simpara></entry>
+<entry align="center" valign="top"><simpara>145</simpara></entry>
+<entry align="left" valign="top"><simpara>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</section>
+<section xml:id="_table_with_parent_configuration_file_and_header_attribute_entry">
+<title>Table with parent configuration file and header attribute entry</title>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="1">
+<colspec colname="col_1" colwidth="100*"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><itemizedlist>
+<listitem>
+<simpara>
+Attribute entry from header: TEST_ATTRIBUTE
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Replacement from <literal>testcases.conf</literal> configuration file: TEST_REPLACEMENT
+</simpara>
+</listitem>
+</itemizedlist></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section xml:id="_table_column_specifiers_with_merged_cells">
+<title>Table column specifiers with merged cells</title>
+<simpara>See
+<link xlink:href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</link></simpara>
+<informaltable
+frame="all"
+rowsep="1" colsep="1"
+>
+<tgroup cols="4">
+<colspec colname="col_1" colwidth="25*"/>
+<colspec colname="col_2" colwidth="25*"/>
+<colspec colname="col_3" colwidth="25*"/>
+<colspec colname="col_4" colwidth="25*"/>
+<tbody>
+<row>
+<entry align="left" valign="top" morerows="1"><simpara><literal></literal></simpara></entry>
+<entry align="right" valign="top" morerows="1"><simpara>1- A</simpara></entry>
+<entry align="center" valign="top" namest="col_3" nameend="col_4"><simpara><emphasis role="strong">2- B</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="center" valign="top"><simpara><emphasis role="strong">i- a</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>ii- b</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><literal>Values 1</literal></simpara></entry>
+<entry align="right" valign="top"><simpara>v1</simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis role="strong">v2</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>v3</emphasis></simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara><literal>Values 2</literal></simpara></entry>
+<entry align="right" valign="top"><simpara>v4</simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis role="strong">v5</emphasis></simpara></entry>
+<entry align="center" valign="top"><simpara><emphasis>v6</emphasis></simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</section>
+<section xml:id="_floating_tables_and_images">
+<title>Floating tables and images</title>
+<table floatstyle="[htbp]"
+frame="all"
+rowsep="1" colsep="1"
+>
+<title>Simple table</title>
+<?dbhtml table-width="15%"?>
+<?dbfo table-width="15%"?>
+<?dblatex table-width="15%"?>
+<tgroup cols="3">
+<colspec colname="col_1" colwidth="0.87cm"/>
+<colspec colname="col_2" colwidth="0.87cm"/>
+<colspec colname="col_3" colwidth="0.87cm"/>
+<tbody>
+<row>
+<entry align="left" valign="top"><simpara>1</simpara></entry>
+<entry align="left" valign="top"><simpara>2</simpara></entry>
+<entry align="left" valign="top"><simpara>A</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>3</simpara></entry>
+<entry align="left" valign="top"><simpara>4</simpara></entry>
+<entry align="left" valign="top"><simpara>B</simpara></entry>
+</row>
+<row>
+<entry align="left" valign="top"><simpara>5</simpara></entry>
+<entry align="left" valign="top"><simpara>6</simpara></entry>
+<entry align="left" valign="top"><simpara>C</simpara></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<figure floatstyle="[htbp]"><title>Tiger</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/images/tiger.png"/>
+ </imageobject>
+ <textobject><phrase>Tiger image</phrase></textobject>
+</mediaobject>
+</figure>
+</section>
+<section xml:id="_section_level_offsets">
+<title>Section level offsets</title>
+<simpara>At level 1</simpara>
+<section xml:id="_section_title">
+<title>Section title</title>
+<simpara>At level 2</simpara>
+</section>
+<section xml:id="_section_title_2">
+<title>Section title</title>
+<simpara>At level 2</simpara>
+<section xml:id="_section_title_3">
+<title>Section title</title>
+<simpara>At level 3</simpara>
+</section>
+</section>
+</section>
+<section xml:id="_section_level_offsets_2">
+<title>Section level offsets</title>
+<simpara>At level 1</simpara>
+</section>
+<section xml:id="_single_quoted_attributes">
+<title>Single-quoted attributes</title>
+<blockquote>
+<attribution>
+<link xlink:href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</link>
+</attribution>
+<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</simpara>
+</blockquote>
+<blockquote>
+<attribution>
+<link xlink:href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</link>
+</attribution>
+<simpara>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</simpara>
+</blockquote>
+</section>
+<section xml:id="_footnotes">
+<title>Footnotes</title>
+<simpara>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara>footnote one.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote xml:id="F2"><simpara>footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.</simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
+<footnoteref linkend="F2" />.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara><link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link> Qui in magna commodo,
+est labitur dolorum an. Est ne magna primis adolescens. Sit munere
+ponderum dignissim et. Minim luptatum et vel
+<inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/images/smallnew.png"/>
+ </imageobject>
+ <textobject><phrase>images/smallnew.png</phrase></textobject>
+</inlinemediaobject></simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<footnote><simpara><link xlink:href="https://asciidoc.org/">https://asciidoc.org/</link></simpara></footnote>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+vel <footnote><simpara><link xlink:href="https://asciidoc.org/">AsciiDoc website</link>.</simpara></footnote>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+<footnote xml:id="F3"><simpara>A footnote&#44; &#34;with an image&#34; <inlinemediaobject> <imageobject> <imagedata fileref="../../images/images/smallnew.png"/> </imageobject> <textobject><phrase>images/smallnew.png</phrase></textobject> </inlinemediaobject></simpara></footnote>.
+<footnote><simpara>With [square brackets]</simpara></footnote> Qui in magna commodo, est labitur
+dolorum an. Est ne magna primis.</simpara>
+</section>
+<section xml:id="_rulers_and_page_breaks">
+<title>Rulers and page breaks</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara><?asciidoc-hr?></simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara><?asciidoc-pagebreak?></simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section xml:id="_这是一个测试">
+<title>这是一个测试</title>
+<simpara>Double-with character titles.
+<link linkend="_这是一个测试">link to auto-generated section ID</link>.</simpara>
+</section>
+<section xml:id="_block_macros">
+<title>Block macros</title>
+<simpara>RS458 is 2.</simpara>
+</section>
+<simpara>Template line 1.
+Template line 2.</simpara>
+<section xml:id="_an_id_without_accents">
+<title>àn îd without accénts</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section xml:id="_àn_îd_with_accénts">
+<title>àn îd with accénts</title>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+<section xml:id="_inline_macros">
+<title>Inline macros</title>
+<simpara><link xlink:href="http://groups.google.com/group/asciidoc/">A URL with [square
+brackets]</link>.</simpara>
+</section>
+<section xml:id="_equation">
+<title>Equation</title>
+<equation floatstyle="[htbp]"><title>Equation</title>
+<alt><![CDATA[\[C = \alpha + \beta Y^{\gamma} + \epsilon\]]]></alt>
+<mediaobject><textobject><phrase></phrase></textobject></mediaobject>
+</equation>
+</section>
+<section xml:id="_example">
+<title>Example</title>
+Formal figures, tables, equations and examples can float in docbook backend
+</section>
+</article>
diff --git a/tests/data/testcases-html4.html b/tests/data/testcases-html4.html
index e1f8230..8447752 100644
--- a/tests/data/testcases-html4.html
+++ b/tests/data/testcases-html4.html
@@ -1,896 +1,896 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages.">
-<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow">
-<title>Test Cases</title>
-</head>
-<body>
-<h1>Test <em>Cases</em></h1>
-<p>
-<strong>Joe Bloggs</strong><br>
-</p>
-<hr>
-<h2><a name="_passthrough_attributes"></a>Passthrough attributes</h2>
-<p><b>*lorum ipsum*</b></p>
-<p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p>
-<hr>
-<h2><a name="_author_attributes"></a>Author attributes</h2>
-<p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p>
-<p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p>
-<p>first name or last name or surname.</p>
-<p></p>
-<p>first name and last name.</p>
-<hr>
-<h2><a name="_system_attributes"></a>System attributes</h2>
-<p>1 99 A</p>
-<p>1 = 1, 99 = 99, A = A</p>
-<p>2 100 B
-2 100 B</p>
-<p>2 = 2, 100 = 100, B = B</p>
-<p>y: Foobar</p>
-<p></p>
-<p></p>
-<p>3, 7</p>
-<p></p>
-<p>3, 3</p>
-<hr>
-<h2><a name="_quoted_text_attributes"></a>Quoted text attributes</h2>
-<p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p>
-<p>A=<strong><em>X</em></strong>, (<code>_X_</code>), <em><code>X</code></em>, [<strong><em>X</em></strong>] <code><em>X</em></code> <em>X</em></p>
-<p>[<em>*X*</em>] <em>+X+</em></p>
-<p><a name="_intro"></a><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p>
-<p><span class="foo">fun with text</span>.
-<strong><span class="foo bar">fun with text</span></strong>.
-<code><span class="foo">fun with text</span></code>.
-<em><span class="foo">fun with text</span></em>.
-<em><span class="foo">fun with text</span></em>.
-&#8220;<span class="foo">fun with text</span>&#8221;.
-&#8216;<span class="foo">fun with text</span>&#8217;.</p>
-<p><span class="foo">fun with text</span>.</p>
-<p><span class="foo">fun with text</span>.</p>
-<p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p>
-<p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
-and <span class="line-through">line-through text</span>.</p>
-<p><span class="firstletter">T</span>esting 123 &#8230;</p>
-<p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p>
-<p>(&#8220;<code>1\n</code>&#8221;) if (usually &#8220;<code>-1\n</code>&#8221;)</p>
-<p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p>
-<hr>
-<h2><a name="_configuration_attribute_entries"></a>Configuration attribute entries</h2>
-<table cellpadding="4">
-<tr valign="top">
-<td>
-term
-<br>
-</td>
-<td>
-<p>
-definition
-</p>
-</td>
-</tr>
-</table>
-<dl>
-<dt>
-term
-</dt>
-<dd>
-<p>
-definition
-</p>
-</dd>
-</dl>
-<hr>
-<h2><a name="_role_attribute"></a>role attribute</h2>
-<p class="test">Paragraph with a role attribute.</p>
-<ul class="test">
-<li>
-<p>
-first
-</p>
-</li>
-<li>
-<p>
-second
-</p>
-</li>
-<li>
-<p>
-third
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_break_list_nesting"></a>Break list nesting</h2>
-<ol type="1">
-<li>
-<p>
-List 1.
-</p>
-</li>
-<li>
-<p>
-List 1.
-</p>
-</li>
-</ol>
-<ol type="a">
-<li>
-<p>
-List 2.
-</p>
-</li>
-<li>
-<p>
-List 2.
-</p>
-</li>
-</ol>
-<hr>
-<h2><a name="_listing_blocks"></a>Listing Blocks</h2>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>$ ls <strong>-al</strong></code></pre>
-</td></tr></table>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>[subs="quotes"]
-------------------------------------------
-$ ls *-al*
-------------------------------------------</code></pre>
-</td></tr></table>
-<p><b>Listing</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>$ ls -al</code></pre>
-</td></tr></table>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code>$ ls -al</code></pre>
-</td></tr></table>
-</td></tr></table>
-<p><b>Example 1. </b>Listing example</p>
-<p><b>Python paragraph</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
-<p><b>Titled Python listing</b></p>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
-<table frame="void" width="100%" cellpadding="4">
-<tr><td style="border-left: 2px solid silver;">
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
-</td></tr></table>
-<p><b>Example 2. </b>Python listing example</p>
-<hr>
-<h2><a name="X1"></a>Links</h2>
-<p>An <a name="X2"></a> inline anchor.
-An <a name="X3"></a> inline anchor with reftext.</p>
-<p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p>
-<p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p>
-<p>Link to <a href="#X3">[X3]</a> anchor.</p>
-<p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p>
-<table cellpadding="4">
-<tr valign="top">
-<td>
-<a name="Test::Unit"></a>[Test::Unit]
-<br>
-</td>
-<td>
-<p>
-<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
-</p>
-</td>
-</tr>
-</table>
-<hr>
-<h2><a name="_titles"></a>Titles</h2>
-<h5><a name="_level_4"></a>Level 4</h5>
-<h4><a name="_level_3"></a>Level 3</h4>
-<h3><a name="_level_2"></a>Level 2</h3>
-<h2><a name="_level_1"></a>Level 1</h2>
-<h5><a name="_level_4_2"></a>Level 4</h5>
-<h4><a name="_level_3_2"></a>Level 3</h4>
-<h3><a name="_level_2_2"></a>Level 2</h3>
-<h2><a name="_level_1_2"></a>Level 1</h2>
-<p><b>Block title</b><br>Lorum ipsum.</p>
-<hr>
-<h2><a name="_lists"></a>Lists</h2>
-<p>Bulleted:</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-<ul>
-<li>
-<p>
-item text
-</p>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<p>Numbered:</p>
-<ol type="1">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<ol type="a">
-<li>
-<p>
-loweralpha numbering
-</p>
-<ol type="A">
-<li>
-<p>
-upperalpha numbering
-</p>
-<ol type="i">
-<li>
-<p>
-lowerroman numbering
-</p>
-<ol type="I">
-<li>
-<p>
-upperroman numbering
-</p>
-<ol type="1">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<ol type="a">
-<li>
-<p>
-loweralpha numbering
-</p>
-<ol type="i">
-<li>
-<p>
-lowerroman numbering
-</p>
-<ol type="A">
-<li>
-<p>
-upperalpha numbering
-</p>
-<ol type="I">
-<li>
-<p>
-upperroman numbering
-</p>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-</li>
-</ol>
-<p>Labeled:</p>
-<dl>
-<dt>
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<dl>
-<dt>
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<dl>
-<dt>
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<dl>
-<dt>
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-<p>With item anchor:</p>
-<dl>
-<dt>
-one
-</dt>
-<dd>
-<p>
-Item one.
-</p>
-</dd>
-<dt>
-<a name="item_two"></a>two
-</dt>
-<dd>
-<p>
-Item two.
-</p>
-</dd>
-<dt>
-three
-</dt>
-<dd>
-<p>
-Item three.
-</p>
-</dd>
-</dl>
-<hr>
-<h2><a name="_inline_passthroughs"></a>Inline passthroughs</h2>
-<ul>
-<li>
-<p>
-Test `ABC`.
-</p>
-</li>
-<li>
-<p>
-Test <code>ABC</code>.
-</p>
-</li>
-<li>
-<p>
-The <code>++i</code> and <code>++j</code> auto-increments.
-</p>
-</li>
-<li>
-<p>
-Paths <code>~/.vim</code> and <code>~/docs</code>.
-</p>
-</li>
-<li>
-<p>
-The <code>__init__</code> method.
-</p>
-</li>
-<li>
-<p>
-The <code>{id}</code> attribute.
-</p>
-</li>
-</ul>
-<p>List start number test:</p>
-<ol type="1" start="7">
-<li>
-<p>
-List item 7.
-</p>
-</li>
-<li>
-<p>
-List item 8.
-</p>
-</li>
-</ol>
-<hr>
-<h2><a name="_images"></a>Images</h2>
-<h3><a name="_block_images"></a>Block images</h3>
-<div>
-<a name="tiger_image"></a>
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tyger tyger">
-<p><b>Figure 1. </b>Tyger tyger</p>
-</div>
-<div align="center">
-<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger" width="350" height="250">
-<p><b>Figure 2: </b>Tyger tyger two</p>
-</div>
-<div>
-<img src="../../doc/music2.png" style="border-width: 0;" alt="music2.png">
-</div>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/note.png" alt="Note">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<h3><a name="_inline_images"></a>Inline images</h3>
-<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="smallnew.png"></p>
-<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="NEW!"></p>
-<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="NEW!" title="Small new"></p>
-<hr>
-<h2><a name="_admonishments"></a>Admonishments</h2>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Tip</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Warning</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Caution</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Important</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/note.png" alt="Note">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/tip.png" alt="Tip">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/warning.png" alt="Warning">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/caution.png" alt="Caution">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<img src="../../images/icons/important.png" alt="Important">
-</td>
-<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
-<hr>
-<h2><a name="_backslash_escapes"></a>Backslash escapes</h2>
-<p><b>Apostrophe</b><br>Don&#8217;t vs don't.</p>
-<p><b>Exceptions</b><br>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
-ambiguity. Here are some non-standard escape examples:</p>
-<div>
-<table rules="all"
-width="40%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="50%" valign="top">AsciiDoc </th>
-<th align="left" width="50%" valign="top"> Renders</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="50%" valign="top"><pre><code>\joe.bloggs@example.com
-&lt;\joe.bloggs@example.com&gt;
-\mailto:[\joe.bloggs@example.com]</code></pre></td>
-<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">joe.bloggs@example.com
-&lt;joe.bloggs@example.com&gt;
-mailto:[joe.bloggs@example.com]</pre></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><pre><code>\http://www.example.com
-\\http://www.example.com[]
-\\http://www.example.com[Foobar Limited]</code></pre></td>
-<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">http://www.example.com
-http://www.example.com[]
-http://www.example.com[Foobar Limited]</pre></td>
-</tr>
-<tr>
-<td align="left" width="50%" valign="top"><pre><code>A C\++ Library for C++
-\\``double-quotes''
-\*\*F**ile Open\...</code></pre></td>
-<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">A C++ Library for C++
-``double-quotes''
-**F**ile Open...</pre></td>
-</tr>
-</tbody>
-</table>
-</div>
-<hr>
-<h2><a name="_paragraphs"></a>Paragraphs</h2>
-<p><b>Normal paragraph</b><br>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</p>
-<p><b>Literal paragraph</b></p>
-<pre><code>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</code></pre>
-<blockquote>
-<p><b>Verse paragraph</b></p>
-<pre style="font-family: inherit;">This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-<p align="left">
-</p>
-</blockquote>
-<p><b>Indented (literal) paragraph</b></p>
-<pre><code>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</code></pre>
-<p><b>Indented with quotes substitution</b></p>
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-<p><b>Literal paragraph with quotes substitution</b></p>
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-<p><b>Monospaced paragraph with line breaks</b><br><code>This is a <strong>bold</strong> line</code><br>
-<code>This is a <em>strong</em> line</code><br>
-<code>This is another <em>strong</em> line</code></p>
-<p><b>Another monospaced paragraph with line breaks</b><br><code>This is a <strong>bold</strong> a line<br>
-This is a <em>strong</em> line<br>
-This is another <em>strong</em> line</code></p>
-<p><b>Literal block with quotes substitution</b></p>
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-<blockquote>
-<pre style="font-family: inherit;">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<p align="left">
-<em>from Auguries of Innocence</em><br>
-&#8212; William Blake
-</p>
-</blockquote>
-<blockquote>A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.<p align="right">
-<em>The World of Mathematics (1956)</em><br>
-&#8212; Bertrand Russell
-</p>
-</blockquote>
-<hr>
-<h2><a name="_urls"></a>URLs</h2>
-<h3><a name="_mail_addresses"></a>Mail Addresses</h3>
-<p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p>
-<p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p>
-<p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p>
-<p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p>
-<p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p>
-<p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p>
-<p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br>
-lorum ipsum.</p>
-<hr>
-<h2><a name="_comments"></a>Comments</h2>
-<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p>
-<p><span style="background:yellow;"> This comment line will be displayed in the output.</span></p>
-<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-<br><span style="background:yellow;"> Visible inline comment line.</span><br>
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p>
-<p><a name="comment_macro"></a><b>Block title</b><br>Lorum ipsum.</p>
-<p><a name="comment_block"></a><b>Block title</b><br>Lorum ipsum.</p>
-<hr>
-<h2><a name="_index_terms"></a>Index Terms</h2>
-<p>Test 1 test1.</p>
-<p>Test 2 .</p>
-<p>Test 3 .</p>
-<p>Test 4 .</p>
-<p>Test 5 test5.</p>
-<p>Test 6 .</p>
-<p>Test 7 .</p>
-<p>Test 8 .</p>
-<p>Multi-passthough substitution (see
-<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
-<code>foo</code></p>
-<hr>
-<h2><a name="_table_with_fractional_column_width_units"></a>Table with fractional column width units</h2>
-<table frame="void" cellpadding="4">
-<tr valign="top">
-<td>
-<p><b><u>Note</u></b></p>
-</td>
-<td style="border-left: 1px solid silver;"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td></tr></table>
-<div>
-<table rules="all"
-width="50%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<thead>
-<tr>
-<th align="left" width="17%" valign="top">Date </th>
-<th align="center" width="11%" valign="top">Duration </th>
-<th align="center" width="11%" valign="top">Avg HR </th>
-<th align="left" width="58%" valign="top">Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>10:24</p></td>
-<td align="center" width="11%" valign="top"><p>157</p></td>
-<td align="left" width="58%" valign="top"><p>Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>23:03</p></td>
-<td align="center" width="11%" valign="top"><p>152</p></td>
-<td align="left" width="58%" valign="top"><p>Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td align="left" width="17%" valign="top"><p>24-Aug-08</p></td>
-<td align="center" width="11%" valign="top"><p>40:00</p></td>
-<td align="center" width="11%" valign="top"><p>145</p></td>
-<td align="left" width="58%" valign="top"><p>Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 1. </b>Horizontal and vertical source data</p>
-</div>
-<hr>
-<h2><a name="_table_with_parent_configuration_file_and_header_attribute_entry"></a>Table with parent configuration file and header attribute entry</h2>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="100%" valign="top"><div><ul>
-<li>
-<p>
-Attribute entry from header: TEST_ATTRIBUTE
-</p>
-</li>
-<li>
-<p>
-Replacement from <code>testcases.conf</code> configuration file: TEST_REPLACEMENT
-</p>
-</li>
-</ul></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-<hr>
-<h2><a name="_table_column_specifiers_with_merged_cells"></a>Table column specifiers with merged cells</h2>
-<p>See
-<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p>
-<div>
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td rowspan="2" align="left" width="25%" valign="top"><p><code></code></p></td>
-<td rowspan="2" align="right" width="25%" valign="top"><p>1- A</p></td>
-<td colspan="2" align="center" width="25%" valign="top"><p><strong>2- B</strong></p></td>
-</tr>
-<tr>
-<td align="center" width="25%" valign="top"><p><strong>i- a</strong></p></td>
-<td align="center" width="25%" valign="top"><p><em>ii- b</em></p></td>
-</tr>
-<tr>
-<td align="left" width="25%" valign="top"><p><code>Values 1</code></p></td>
-<td align="right" width="25%" valign="top"><p>v1</p></td>
-<td align="center" width="25%" valign="top"><p><strong>v2</strong></p></td>
-<td align="center" width="25%" valign="top"><p><em>v3</em></p></td>
-</tr>
-<tr>
-<td align="left" width="25%" valign="top"><p><code>Values 2</code></p></td>
-<td align="right" width="25%" valign="top"><p>v4</p></td>
-<td align="center" width="25%" valign="top"><p><strong>v5</strong></p></td>
-<td align="center" width="25%" valign="top"><p><em>v6</em></p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<hr>
-<h2><a name="_floating_tables_and_images"></a>Floating tables and images</h2>
-<div>
-<table rules="all"
-style="float:left;"
-width="15%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<tbody>
-<tr>
-<td align="left" width="33%" valign="top"><p>1</p></td>
-<td align="left" width="33%" valign="top"><p>2</p></td>
-<td align="left" width="33%" valign="top"><p>A</p></td>
-</tr>
-<tr>
-<td align="left" width="33%" valign="top"><p>3</p></td>
-<td align="left" width="33%" valign="top"><p>4</p></td>
-<td align="left" width="33%" valign="top"><p>B</p></td>
-</tr>
-<tr>
-<td align="left" width="33%" valign="top"><p>5</p></td>
-<td align="left" width="33%" valign="top"><p>6</p></td>
-<td align="left" width="33%" valign="top"><p>C</p></td>
-</tr>
-</tbody>
-</table>
-<p><b>Table 2. </b>Simple table</p>
-</div>
-<div style="float:right;">
-<img src="../../images/images/tiger.png" style="border-width: 0;" alt="Tiger image">
-<p><b>Figure 2. </b>Tiger</p>
-</div>
-<br clear="all">
-<hr>
-<h2><a name="_section_level_offsets"></a>Section level offsets</h2>
-<p>At level 1</p>
-<h3><a name="_section_title"></a>Section title</h3>
-<p>At level 2</p>
-<h3><a name="_section_title_2"></a>Section title</h3>
-<p>At level 2</p>
-<h4><a name="_section_title_3"></a>Section title</h4>
-<p>At level 3</p>
-<hr>
-<h2><a name="_section_level_offsets_2"></a>Section level offsets</h2>
-<p>At level 1</p>
-<hr>
-<h2><a name="_single_quoted_attributes"></a>Single-quoted attributes</h2>
-<blockquote>
-<p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p>
-<p align="right">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</p>
-</blockquote>
-<blockquote>
-<p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p>
-<p align="right">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</p>
-</blockquote>
-<hr>
-<h2><a name="_footnotes"></a>Footnotes</h2>
-<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<br><i>[footnote one.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]</i><br>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<br><i><a name="_footnote_F2">[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]</a></i><br>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
-<br><i><a href="#_footnote_F2">[F2]</a></i><br>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<br><i>[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
-est labitur dolorum an. Est ne magna primis adolescens. Sit munere
-ponderum dignissim et. Minim luptatum et vel
-<img src="../../images/images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">]</i><br>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<br><i>[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]</i><br>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-vel <br><i>[<a href="https://asciidoc.org/">AsciiDoc website</a>.]</i><br>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-<br><i><a name="_footnote_F3">[A footnote&#44; &#34;with an image&#34; <img src="../../images/images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">]</a></i><br>.
-<br><i>[With [square brackets]]</i><br> Qui in magna commodo, est labitur
-dolorum an. Est ne magna primis.</p>
-<hr>
-<h2><a name="_rulers_and_page_breaks"></a>Rulers and page breaks</h2>
-<p>Lorum ipsum&#8230;</p>
-<hr>
-<p>Lorum ipsum&#8230;</p>
-<div style="page-break-after:always"></div>
-<p>Lorum ipsum&#8230;</p>
-<hr>
-<h2><a name="_这是一个测试"></a>这是一个测试</h2>
-<p>Double-with character titles.
-<a href="#_这是一个测试">link to auto-generated section ID</a>.</p>
-<hr>
-<h2><a name="_block_macros"></a>Block macros</h2>
-<p>RS458 is 2.</p>
-<p>Template line 1.
-Template line 2.</p>
-<hr>
-<h2><a name="_an_id_without_accents"></a>àn îd without accénts</h2>
-<p>Lorum ipsum&#8230;</p>
-<hr>
-<h2><a name="_àn_îd_with_accénts"></a>àn îd with accénts</h2>
-<p>Lorum ipsum&#8230;</p>
-<hr>
-<h2><a name="_inline_macros"></a>Inline macros</h2>
-<p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
-brackets]</a>.</p>
-<hr>
-<h2><a name="_equation"></a>Equation</h2>
-\[C = \alpha + \beta Y^{gamma} + \epsilon\]
-<hr>
-<h2><a name="_example"></a>Example</h2>
-Formal figures, tables, equations and examples can float in docbook backend
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages.">
+<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow">
+<title>Test Cases</title>
+</head>
+<body>
+<h1>Test <em>Cases</em></h1>
+<p>
+<strong>Joe Bloggs</strong><br>
+</p>
+<hr>
+<h2><a name="_passthrough_attributes"></a>Passthrough attributes</h2>
+<p><b>*lorum ipsum*</b></p>
+<p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p>
+<hr>
+<h2><a name="_author_attributes"></a>Author attributes</h2>
+<p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p>
+<p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p>
+<p>first name or last name or surname.</p>
+<p></p>
+<p>first name and last name.</p>
+<hr>
+<h2><a name="_system_attributes"></a>System attributes</h2>
+<p>1 99 A</p>
+<p>1 = 1, 99 = 99, A = A</p>
+<p>2 100 B
+2 100 B</p>
+<p>2 = 2, 100 = 100, B = B</p>
+<p>y: Foobar</p>
+<p></p>
+<p></p>
+<p>3, 7</p>
+<p></p>
+<p>3, 3</p>
+<hr>
+<h2><a name="_quoted_text_attributes"></a>Quoted text attributes</h2>
+<p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p>
+<p>A=<strong><em>X</em></strong>, (<code>_X_</code>), <em><code>X</code></em>, [<strong><em>X</em></strong>] <code><em>X</em></code> <em>X</em></p>
+<p>[<em>*X*</em>] <em>+X+</em></p>
+<p><a name="_intro"></a><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p>
+<p><span class="foo">fun with text</span>.
+<strong><span class="foo bar">fun with text</span></strong>.
+<code><span class="foo">fun with text</span></code>.
+<em><span class="foo">fun with text</span></em>.
+<em><span class="foo">fun with text</span></em>.
+&#8220;<span class="foo">fun with text</span>&#8221;.
+&#8216;<span class="foo">fun with text</span>&#8217;.</p>
+<p><span class="foo">fun with text</span>.</p>
+<p><span class="foo">fun with text</span>.</p>
+<p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p>
+<p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
+and <span class="line-through">line-through text</span>.</p>
+<p><span class="firstletter">T</span>esting 123 &#8230;</p>
+<p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p>
+<p>(&#8220;<code>1\n</code>&#8221;) if (usually &#8220;<code>-1\n</code>&#8221;)</p>
+<p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p>
+<hr>
+<h2><a name="_configuration_attribute_entries"></a>Configuration attribute entries</h2>
+<table cellpadding="4">
+<tr valign="top">
+<td>
+term
+<br>
+</td>
+<td>
+<p>
+definition
+</p>
+</td>
+</tr>
+</table>
+<dl>
+<dt>
+term
+</dt>
+<dd>
+<p>
+definition
+</p>
+</dd>
+</dl>
+<hr>
+<h2><a name="_role_attribute"></a>role attribute</h2>
+<p class="test">Paragraph with a role attribute.</p>
+<ul class="test">
+<li>
+<p>
+first
+</p>
+</li>
+<li>
+<p>
+second
+</p>
+</li>
+<li>
+<p>
+third
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_break_list_nesting"></a>Break list nesting</h2>
+<ol type="1">
+<li>
+<p>
+List 1.
+</p>
+</li>
+<li>
+<p>
+List 1.
+</p>
+</li>
+</ol>
+<ol type="a">
+<li>
+<p>
+List 2.
+</p>
+</li>
+<li>
+<p>
+List 2.
+</p>
+</li>
+</ol>
+<hr>
+<h2><a name="_listing_blocks"></a>Listing Blocks</h2>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>$ ls <strong>-al</strong></code></pre>
+</td></tr></table>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>[subs="quotes"]
+------------------------------------------
+$ ls *-al*
+------------------------------------------</code></pre>
+</td></tr></table>
+<p><b>Listing</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>$ ls -al</code></pre>
+</td></tr></table>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code>$ ls -al</code></pre>
+</td></tr></table>
+</td></tr></table>
+<p><b>Example 1. </b>Listing example</p>
+<p><b>Python paragraph</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
+<p><b>Titled Python listing</b></p>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
+<table frame="void" width="100%" cellpadding="4">
+<tr><td style="border-left: 2px solid silver;">
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#0000FF">if</font></b> n <font color="#990000">&lt;</font> <font color="#993399">0</font><font color="#990000">:</font> <b><font color="#0000FF">print</font></b> <font color="#FF0000">'Hello World!'</font></tt></pre></td></tr></table>
+</td></tr></table>
+<p><b>Example 2. </b>Python listing example</p>
+<hr>
+<h2><a name="X1"></a>Links</h2>
+<p>An <a name="X2"></a> inline anchor.
+An <a name="X3"></a> inline anchor with reftext.</p>
+<p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p>
+<p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p>
+<p>Link to <a href="#X3">[X3]</a> anchor.</p>
+<p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p>
+<table cellpadding="4">
+<tr valign="top">
+<td>
+<a name="Test::Unit"></a>[Test::Unit]
+<br>
+</td>
+<td>
+<p>
+<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
+</p>
+</td>
+</tr>
+</table>
+<hr>
+<h2><a name="_titles"></a>Titles</h2>
+<h5><a name="_level_4"></a>Level 4</h5>
+<h4><a name="_level_3"></a>Level 3</h4>
+<h3><a name="_level_2"></a>Level 2</h3>
+<h2><a name="_level_1"></a>Level 1</h2>
+<h5><a name="_level_4_2"></a>Level 4</h5>
+<h4><a name="_level_3_2"></a>Level 3</h4>
+<h3><a name="_level_2_2"></a>Level 2</h3>
+<h2><a name="_level_1_2"></a>Level 1</h2>
+<p><b>Block title</b><br>Lorum ipsum.</p>
+<hr>
+<h2><a name="_lists"></a>Lists</h2>
+<p>Bulleted:</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+<ul>
+<li>
+<p>
+item text
+</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p>Numbered:</p>
+<ol type="1">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<ol type="a">
+<li>
+<p>
+loweralpha numbering
+</p>
+<ol type="A">
+<li>
+<p>
+upperalpha numbering
+</p>
+<ol type="i">
+<li>
+<p>
+lowerroman numbering
+</p>
+<ol type="I">
+<li>
+<p>
+upperroman numbering
+</p>
+<ol type="1">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<ol type="a">
+<li>
+<p>
+loweralpha numbering
+</p>
+<ol type="i">
+<li>
+<p>
+lowerroman numbering
+</p>
+<ol type="A">
+<li>
+<p>
+upperalpha numbering
+</p>
+<ol type="I">
+<li>
+<p>
+upperroman numbering
+</p>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+</li>
+</ol>
+<p>Labeled:</p>
+<dl>
+<dt>
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<dl>
+<dt>
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<dl>
+<dt>
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<dl>
+<dt>
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+</dd>
+</dl>
+</dd>
+</dl>
+</dd>
+</dl>
+</dd>
+</dl>
+<p>With item anchor:</p>
+<dl>
+<dt>
+one
+</dt>
+<dd>
+<p>
+Item one.
+</p>
+</dd>
+<dt>
+<a name="item_two"></a>two
+</dt>
+<dd>
+<p>
+Item two.
+</p>
+</dd>
+<dt>
+three
+</dt>
+<dd>
+<p>
+Item three.
+</p>
+</dd>
+</dl>
+<hr>
+<h2><a name="_inline_passthroughs"></a>Inline passthroughs</h2>
+<ul>
+<li>
+<p>
+Test `ABC`.
+</p>
+</li>
+<li>
+<p>
+Test <code>ABC</code>.
+</p>
+</li>
+<li>
+<p>
+The <code>++i</code> and <code>++j</code> auto-increments.
+</p>
+</li>
+<li>
+<p>
+Paths <code>~/.vim</code> and <code>~/docs</code>.
+</p>
+</li>
+<li>
+<p>
+The <code>__init__</code> method.
+</p>
+</li>
+<li>
+<p>
+The <code>{id}</code> attribute.
+</p>
+</li>
+</ul>
+<p>List start number test:</p>
+<ol type="1" start="7">
+<li>
+<p>
+List item 7.
+</p>
+</li>
+<li>
+<p>
+List item 8.
+</p>
+</li>
+</ol>
+<hr>
+<h2><a name="_images"></a>Images</h2>
+<h3><a name="_block_images"></a>Block images</h3>
+<div>
+<a name="tiger_image"></a>
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tyger tyger">
+<p><b>Figure 1. </b>Tyger tyger</p>
+</div>
+<div align="center">
+<img src="../../images/tiger.png" style="border-width: 0;" alt="Tiger" width="350" height="250">
+<p><b>Figure 2: </b>Tyger tyger two</p>
+</div>
+<div>
+<img src="../../doc/music2.png" style="border-width: 0;" alt="music2.png">
+</div>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/note.png" alt="Note">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<h3><a name="_inline_images"></a>Inline images</h3>
+<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="smallnew.png"></p>
+<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="NEW!"></p>
+<p>Inline image <img src="../../images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="NEW!" title="Small new"></p>
+<hr>
+<h2><a name="_admonishments"></a>Admonishments</h2>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Tip</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Warning</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Caution</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Important</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/note.png" alt="Note">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/tip.png" alt="Tip">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/warning.png" alt="Warning">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/caution.png" alt="Caution">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<img src="../../images/icons/important.png" alt="Important">
+</td>
+<td style="border-left: 1px solid silver;">Lorum ipsum.</td></tr></table>
+<hr>
+<h2><a name="_backslash_escapes"></a>Backslash escapes</h2>
+<p><b>Apostrophe</b><br>Don&#8217;t vs don't.</p>
+<p><b>Exceptions</b><br>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
+ambiguity. Here are some non-standard escape examples:</p>
+<div>
+<table rules="all"
+width="40%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="50%" valign="top">AsciiDoc </th>
+<th align="left" width="50%" valign="top"> Renders</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="50%" valign="top"><pre><code>\joe.bloggs@example.com
+&lt;\joe.bloggs@example.com&gt;
+\mailto:[\joe.bloggs@example.com]</code></pre></td>
+<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">joe.bloggs@example.com
+&lt;joe.bloggs@example.com&gt;
+mailto:[joe.bloggs@example.com]</pre></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><pre><code>\http://www.example.com
+\\http://www.example.com[]
+\\http://www.example.com[Foobar Limited]</code></pre></td>
+<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">http://www.example.com
+http://www.example.com[]
+http://www.example.com[Foobar Limited]</pre></td>
+</tr>
+<tr>
+<td align="left" width="50%" valign="top"><pre><code>A C\++ Library for C++
+\\``double-quotes''
+\*\*F**ile Open\...</code></pre></td>
+<td align="left" width="50%" valign="top"><pre style="font-family: inherit;">A C++ Library for C++
+``double-quotes''
+**F**ile Open...</pre></td>
+</tr>
+</tbody>
+</table>
+</div>
+<hr>
+<h2><a name="_paragraphs"></a>Paragraphs</h2>
+<p><b>Normal paragraph</b><br>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</p>
+<p><b>Literal paragraph</b></p>
+<pre><code>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</code></pre>
+<blockquote>
+<p><b>Verse paragraph</b></p>
+<pre style="font-family: inherit;">This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+<p align="left">
+</p>
+</blockquote>
+<p><b>Indented (literal) paragraph</b></p>
+<pre><code>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</code></pre>
+<p><b>Indented with quotes substitution</b></p>
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+<p><b>Literal paragraph with quotes substitution</b></p>
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+<p><b>Monospaced paragraph with line breaks</b><br><code>This is a <strong>bold</strong> line</code><br>
+<code>This is a <em>strong</em> line</code><br>
+<code>This is another <em>strong</em> line</code></p>
+<p><b>Another monospaced paragraph with line breaks</b><br><code>This is a <strong>bold</strong> a line<br>
+This is a <em>strong</em> line<br>
+This is another <em>strong</em> line</code></p>
+<p><b>Literal block with quotes substitution</b></p>
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+<blockquote>
+<pre style="font-family: inherit;">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<p align="left">
+<em>from Auguries of Innocence</em><br>
+&#8212; William Blake
+</p>
+</blockquote>
+<blockquote>A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.<p align="right">
+<em>The World of Mathematics (1956)</em><br>
+&#8212; Bertrand Russell
+</p>
+</blockquote>
+<hr>
+<h2><a name="_urls"></a>URLs</h2>
+<h3><a name="_mail_addresses"></a>Mail Addresses</h3>
+<p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p>
+<p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p>
+<p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p>
+<p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p>
+<p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p>
+<p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p>
+<p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br>
+lorum ipsum.</p>
+<hr>
+<h2><a name="_comments"></a>Comments</h2>
+<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p>
+<p><span style="background:yellow;"> This comment line will be displayed in the output.</span></p>
+<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+<br><span style="background:yellow;"> Visible inline comment line.</span><br>
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p>
+<p><a name="comment_macro"></a><b>Block title</b><br>Lorum ipsum.</p>
+<p><a name="comment_block"></a><b>Block title</b><br>Lorum ipsum.</p>
+<hr>
+<h2><a name="_index_terms"></a>Index Terms</h2>
+<p>Test 1 test1.</p>
+<p>Test 2 .</p>
+<p>Test 3 .</p>
+<p>Test 4 .</p>
+<p>Test 5 test5.</p>
+<p>Test 6 .</p>
+<p>Test 7 .</p>
+<p>Test 8 .</p>
+<p>Multi-passthough substitution (see
+<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
+<code>foo</code></p>
+<hr>
+<h2><a name="_table_with_fractional_column_width_units"></a>Table with fractional column width units</h2>
+<table frame="void" cellpadding="4">
+<tr valign="top">
+<td>
+<p><b><u>Note</u></b></p>
+</td>
+<td style="border-left: 1px solid silver;"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td></tr></table>
+<div>
+<table rules="all"
+width="50%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<thead>
+<tr>
+<th align="left" width="17%" valign="top">Date </th>
+<th align="center" width="11%" valign="top">Duration </th>
+<th align="center" width="11%" valign="top">Avg HR </th>
+<th align="left" width="58%" valign="top">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>10:24</p></td>
+<td align="center" width="11%" valign="top"><p>157</p></td>
+<td align="left" width="58%" valign="top"><p>Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td align="left" width="17%" valign="top"><p>22-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>23:03</p></td>
+<td align="center" width="11%" valign="top"><p>152</p></td>
+<td align="left" width="58%" valign="top"><p>Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td align="left" width="17%" valign="top"><p>24-Aug-08</p></td>
+<td align="center" width="11%" valign="top"><p>40:00</p></td>
+<td align="center" width="11%" valign="top"><p>145</p></td>
+<td align="left" width="58%" valign="top"><p>Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 1. </b>Horizontal and vertical source data</p>
+</div>
+<hr>
+<h2><a name="_table_with_parent_configuration_file_and_header_attribute_entry"></a>Table with parent configuration file and header attribute entry</h2>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="100%" valign="top"><div><ul>
+<li>
+<p>
+Attribute entry from header: TEST_ATTRIBUTE
+</p>
+</li>
+<li>
+<p>
+Replacement from <code>testcases.conf</code> configuration file: TEST_REPLACEMENT
+</p>
+</li>
+</ul></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<hr>
+<h2><a name="_table_column_specifiers_with_merged_cells"></a>Table column specifiers with merged cells</h2>
+<p>See
+<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p>
+<div>
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td rowspan="2" align="left" width="25%" valign="top"><p><code></code></p></td>
+<td rowspan="2" align="right" width="25%" valign="top"><p>1- A</p></td>
+<td colspan="2" align="center" width="25%" valign="top"><p><strong>2- B</strong></p></td>
+</tr>
+<tr>
+<td align="center" width="25%" valign="top"><p><strong>i- a</strong></p></td>
+<td align="center" width="25%" valign="top"><p><em>ii- b</em></p></td>
+</tr>
+<tr>
+<td align="left" width="25%" valign="top"><p><code>Values 1</code></p></td>
+<td align="right" width="25%" valign="top"><p>v1</p></td>
+<td align="center" width="25%" valign="top"><p><strong>v2</strong></p></td>
+<td align="center" width="25%" valign="top"><p><em>v3</em></p></td>
+</tr>
+<tr>
+<td align="left" width="25%" valign="top"><p><code>Values 2</code></p></td>
+<td align="right" width="25%" valign="top"><p>v4</p></td>
+<td align="center" width="25%" valign="top"><p><strong>v5</strong></p></td>
+<td align="center" width="25%" valign="top"><p><em>v6</em></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<hr>
+<h2><a name="_floating_tables_and_images"></a>Floating tables and images</h2>
+<div>
+<table rules="all"
+style="float:left;"
+width="15%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<tbody>
+<tr>
+<td align="left" width="33%" valign="top"><p>1</p></td>
+<td align="left" width="33%" valign="top"><p>2</p></td>
+<td align="left" width="33%" valign="top"><p>A</p></td>
+</tr>
+<tr>
+<td align="left" width="33%" valign="top"><p>3</p></td>
+<td align="left" width="33%" valign="top"><p>4</p></td>
+<td align="left" width="33%" valign="top"><p>B</p></td>
+</tr>
+<tr>
+<td align="left" width="33%" valign="top"><p>5</p></td>
+<td align="left" width="33%" valign="top"><p>6</p></td>
+<td align="left" width="33%" valign="top"><p>C</p></td>
+</tr>
+</tbody>
+</table>
+<p><b>Table 2. </b>Simple table</p>
+</div>
+<div style="float:right;">
+<img src="../../images/images/tiger.png" style="border-width: 0;" alt="Tiger image">
+<p><b>Figure 2. </b>Tiger</p>
+</div>
+<br clear="all">
+<hr>
+<h2><a name="_section_level_offsets"></a>Section level offsets</h2>
+<p>At level 1</p>
+<h3><a name="_section_title"></a>Section title</h3>
+<p>At level 2</p>
+<h3><a name="_section_title_2"></a>Section title</h3>
+<p>At level 2</p>
+<h4><a name="_section_title_3"></a>Section title</h4>
+<p>At level 3</p>
+<hr>
+<h2><a name="_section_level_offsets_2"></a>Section level offsets</h2>
+<p>At level 1</p>
+<hr>
+<h2><a name="_single_quoted_attributes"></a>Single-quoted attributes</h2>
+<blockquote>
+<p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p>
+<p align="right">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</p>
+</blockquote>
+<blockquote>
+<p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p>
+<p align="right">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</p>
+</blockquote>
+<hr>
+<h2><a name="_footnotes"></a>Footnotes</h2>
+<p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<br><i>[footnote one.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]</i><br>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<br><i><a name="_footnote_F2">[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]</a></i><br>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
+<br><i><a href="#_footnote_F2">[F2]</a></i><br>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<br><i>[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
+est labitur dolorum an. Est ne magna primis adolescens. Sit munere
+ponderum dignissim et. Minim luptatum et vel
+<img src="../../images/images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">]</i><br>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<br><i>[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]</i><br>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+vel <br><i>[<a href="https://asciidoc.org/">AsciiDoc website</a>.]</i><br>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+<br><i><a name="_footnote_F3">[A footnote&#44; &#34;with an image&#34; <img src="../../images/images/smallnew.png" style="border-width: 0; vertical-align: text-bottom;" alt="images/smallnew.png">]</a></i><br>.
+<br><i>[With [square brackets]]</i><br> Qui in magna commodo, est labitur
+dolorum an. Est ne magna primis.</p>
+<hr>
+<h2><a name="_rulers_and_page_breaks"></a>Rulers and page breaks</h2>
+<p>Lorum ipsum&#8230;</p>
+<hr>
+<p>Lorum ipsum&#8230;</p>
+<div style="page-break-after:always"></div>
+<p>Lorum ipsum&#8230;</p>
+<hr>
+<h2><a name="_这是一个测试"></a>这是一个测试</h2>
+<p>Double-with character titles.
+<a href="#_这是一个测试">link to auto-generated section ID</a>.</p>
+<hr>
+<h2><a name="_block_macros"></a>Block macros</h2>
+<p>RS458 is 2.</p>
+<p>Template line 1.
+Template line 2.</p>
+<hr>
+<h2><a name="_an_id_without_accents"></a>àn îd without accénts</h2>
+<p>Lorum ipsum&#8230;</p>
+<hr>
+<h2><a name="_àn_îd_with_accénts"></a>àn îd with accénts</h2>
+<p>Lorum ipsum&#8230;</p>
+<hr>
+<h2><a name="_inline_macros"></a>Inline macros</h2>
+<p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
+brackets]</a>.</p>
+<hr>
+<h2><a name="_equation"></a>Equation</h2>
+\[C = \alpha + \beta Y^{gamma} + \epsilon\]
+<hr>
+<h2><a name="_example"></a>Example</h2>
+Formal figures, tables, equations and examples can float in docbook backend
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/testcases-html5.html b/tests/data/testcases-html5.html
index f3905e3..dc0278a 100644
--- a/tests/data/testcases-html5.html
+++ b/tests/data/testcases-html5.html
@@ -1,1860 +1,1860 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages.">
-<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow">
-<title>Test Cases</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Test <em>Cases</em></h1>
-<span id="author">Joe Bloggs</span><br>
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_passthrough_attributes">Passthrough attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><b>*lorum ipsum*</b></p></div>
-<div class="paragraph"><p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_author_attributes">Author attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p></div>
-<div class="paragraph"><p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p></div>
-<div class="paragraph"><p>first name or last name or surname.</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>first name and last name.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_system_attributes">System attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>1 99 A</p></div>
-<div class="paragraph"><p>1 = 1, 99 = 99, A = A</p></div>
-<div class="paragraph"><p>2 100 B
-2 100 B</p></div>
-<div class="paragraph"><p>2 = 2, 100 = 100, B = B</p></div>
-<div class="paragraph"><p>y: Foobar</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>3, 7</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>3, 3</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_quoted_text_attributes">Quoted text attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p></div>
-<div class="paragraph"><p>A=<strong><em>X</em></strong>, (<span class="monospaced">_X_</span>), <em><span class="monospaced">X</span></em>, [<strong><em>X</em></strong>] <span class="monospaced"><em>X</em></span> <em>X</em></p></div>
-<div class="paragraph"><p>[<em>*X*</em>] <em>+X+</em></p></div>
-<div class="paragraph" id="_intro"><p><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.
-<strong><span class="foo bar">fun with text</span></strong>.
-<span class="monospaced foo">fun with text</span>.
-<em><span class="foo">fun with text</span></em>.
-<em><span class="foo">fun with text</span></em>.
-&#8220;<span class="foo">fun with text</span>&#8221;.
-&#8216;<span class="foo">fun with text</span>&#8217;.</p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
-<div class="paragraph"><p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p></div>
-<div class="paragraph"><p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
-and <span class="line-through">line-through text</span>.</p></div>
-<div class="paragraph"><p><span class="firstletter">T</span>esting 123 &#8230;</p></div>
-<div class="paragraph"><p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p></div>
-<div class="paragraph"><p>(&#8220;<span class="monospaced">1\n</span>&#8221;) if (usually &#8220;<span class="monospaced">-1\n</span>&#8221;)</p></div>
-<div class="paragraph"><p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_configuration_attribute_entries">Configuration attribute entries</h2>
-<div class="sectionbody">
-<div class="hdlist"><table>
-<tr>
-<td class="hdlist1">
-term
-<br>
-</td>
-<td class="hdlist2">
-<p style="margin-top: 0;">
-definition
-</p>
-</td>
-</tr>
-</table></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-term
-</dt>
-<dd>
-<p>
-definition
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_role_attribute">role attribute</h2>
-<div class="sectionbody">
-<div class="paragraph test"><p>Paragraph with a role attribute.</p></div>
-<div class="ulist test"><ul>
-<li>
-<p>
-first
-</p>
-</li>
-<li>
-<p>
-second
-</p>
-</li>
-<li>
-<p>
-third
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_break_list_nesting">Break list nesting</h2>
-<div class="sectionbody">
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-List 1.
-</p>
-</li>
-<li>
-<p>
-List 1.
-</p>
-</li>
-</ol></div>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-List 2.
-</p>
-</li>
-<li>
-<p>
-List 2.
-</p>
-</li>
-</ol></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_listing_blocks">Listing Blocks</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content monospaced">
-<pre>$ ls <strong>-al</strong></pre>
-</div></div>
-<div class="listingblock">
-<div class="content monospaced">
-<pre>[subs="quotes"]
-------------------------------------------
-$ ls *-al*
-------------------------------------------</pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Listing</div>
-<div class="content monospaced">
-<pre>$ ls -al</pre>
-</div></div>
-<div class="exampleblock">
-<div class="title">Example 1. Listing example</div>
-<div class="content">
-<div class="listingblock">
-<div class="content monospaced">
-<pre>$ ls -al</pre>
-</div></div>
-</div></div>
-<div class="listingblock">
-<div class="title">Python paragraph</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="title">Titled Python listing</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="exampleblock">
-<div class="title">Example 2. Python listing example</div>
-<div class="content">
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="X1">Links</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An <a id="X2"></a> inline anchor.
-An <a id="X3"></a> inline anchor with reftext.</p></div>
-<div class="paragraph"><p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p></div>
-<div class="paragraph"><p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p></div>
-<div class="paragraph"><p>Link to <a href="#X3">[X3]</a> anchor.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p></div>
-<div class="hdlist"><table>
-<tr>
-<td class="hdlist1">
-<a id="Test::Unit"></a>[Test::Unit]
-<br>
-</td>
-<td class="hdlist2">
-<p style="margin-top: 0;">
-<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
-</p>
-</td>
-</tr>
-</table></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_titles">Titles</h2>
-<div class="sectionbody">
-<h5 id="_level_4" class="float">Level 4</h5>
-<h4 id="_level_3" class="float">Level 3</h4>
-<h3 id="_level_2" class="float">Level 2</h3>
-<h2 id="_level_1" class="float">Level 1</h2>
-<h5 id="_level_4_2" class="float">Level 4</h5>
-<h4 id="_level_3_2" class="float">Level 3</h4>
-<h3 id="_level_2_2" class="float">Level 2</h3>
-<h2 id="_level_1_2" class="float">Level 1</h2>
-<div class="paragraph"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_lists">Lists</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bulleted:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-<div class="paragraph"><p>Numbered:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-loweralpha numbering
-</p>
-<div class="olist upperalpha"><ol class="upperalpha">
-<li>
-<p>
-upperalpha numbering
-</p>
-<div class="olist lowerroman"><ol class="lowerroman">
-<li>
-<p>
-lowerroman numbering
-</p>
-<div class="olist upperroman"><ol class="upperroman">
-<li>
-<p>
-upperroman numbering
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-loweralpha numbering
-</p>
-<div class="olist lowerroman"><ol class="lowerroman">
-<li>
-<p>
-lowerroman numbering
-</p>
-<div class="olist upperalpha"><ol class="upperalpha">
-<li>
-<p>
-upperalpha numbering
-</p>
-<div class="olist upperroman"><ol class="upperroman">
-<li>
-<p>
-upperroman numbering
-</p>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-<div class="paragraph"><p>Labeled:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-<div class="paragraph"><p>With item anchor:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-one
-</dt>
-<dd>
-<p>
-Item one.
-</p>
-</dd>
-<dt class="hdlist1">
-<a id="item_two"></a>two
-</dt>
-<dd>
-<p>
-Item two.
-</p>
-</dd>
-<dt class="hdlist1">
-three
-</dt>
-<dd>
-<p>
-Item three.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_inline_passthroughs">Inline passthroughs</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-Test `ABC`.
-</p>
-</li>
-<li>
-<p>
-Test <span class="monospaced">ABC</span>.
-</p>
-</li>
-<li>
-<p>
-The <span class="monospaced">++i</span> and <span class="monospaced">++j</span> auto-increments.
-</p>
-</li>
-<li>
-<p>
-Paths <span class="monospaced">~/.vim</span> and <span class="monospaced">~/docs</span>.
-</p>
-</li>
-<li>
-<p>
-The <span class="monospaced">__init__</span> method.
-</p>
-</li>
-<li>
-<p>
-The <span class="monospaced">{id}</span> attribute.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>List start number test:</p></div>
-<div class="olist arabic"><ol class="arabic" start="7">
-<li>
-<p>
-List item 7.
-</p>
-</li>
-<li>
-<p>
-List item 8.
-</p>
-</li>
-</ol></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_images">Images</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_block_images">Block images</h3>
-<div class="imageblock" id="tiger_image">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tyger tyger">
-</div>
-<div class="title">Figure 1. Tyger tyger</div>
-</div>
-<div class="imageblock" style="text-align:center;">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger" width="350" height="250">
-</div>
-<div class="title">Figure 2: Tyger tyger two</div>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../doc/music2.png" alt="music2.png">
-</div>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/note.png" alt="Note">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-</div>
-<div class="sect2">
-<h3 id="_inline_images">Inline images</h3>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="smallnew.png">
-</span></p></div>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="NEW!">
-</span></p></div>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="NEW!" title="Small new">
-</span></p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_admonishments">Admonishments</h2>
-<div class="sectionbody">
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/note.png" alt="Note">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/tip.png" alt="Tip">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/warning.png" alt="Warning">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/caution.png" alt="Caution">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/important.png" alt="Important">
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_backslash_escapes">Backslash escapes</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">Apostrophe</div><p>Don&#8217;t vs don't.</p></div>
-<div class="paragraph"><div class="title">Exceptions</div><p>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
-ambiguity. Here are some non-standard escape examples:</p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:40%;
-">
-<col style="width:50%;">
-<col style="width:50%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >AsciiDoc </th>
-<th class="tableblock halign-left valign-top" > Renders</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>\joe.bloggs@example.com
-&lt;\joe.bloggs@example.com&gt;
-\mailto:[\joe.bloggs@example.com]</pre></div></td>
-<td class="tableblock halign-left valign-top" ><div class="verse">joe.bloggs@example.com
-&lt;joe.bloggs@example.com&gt;
-mailto:[joe.bloggs@example.com]</div></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>\http://www.example.com
-\\http://www.example.com[]
-\\http://www.example.com[Foobar Limited]</pre></div></td>
-<td class="tableblock halign-left valign-top" ><div class="verse">http://www.example.com
-http://www.example.com[]
-http://www.example.com[Foobar Limited]</div></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>A C\++ Library for C++
-\\``double-quotes''
-\*\*F**ile Open\...</pre></div></td>
-<td class="tableblock halign-left valign-top" ><div class="verse">A C++ Library for C++
-``double-quotes''
-**F**ile Open...</div></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_paragraphs">Paragraphs</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">Normal paragraph</div><p>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</p></div>
-<div class="literalblock">
-<div class="title">Literal paragraph</div>
-<div class="content monospaced">
-<pre>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</pre>
-</div></div>
-<div class="verseblock">
-<div class="title">Verse paragraph</div>
-<pre class="content">This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-<div class="attribution">
-</div></div>
-<div class="literalblock">
-<div class="title">Indented (literal) paragraph</div>
-<div class="content monospaced">
-<pre>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Indented with quotes substitution</div>
-<div class="content monospaced">
-<pre>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Literal paragraph with quotes substitution</div>
-<div class="content monospaced">
-<pre>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-</div></div>
-<div class="paragraph"><div class="title">Monospaced paragraph with line breaks</div><p><span class="monospaced">This is a <strong>bold</strong> line</span><br>
-<span class="monospaced">This is a <em>strong</em> line</span><br>
-<span class="monospaced">This is another <em>strong</em> line</span></p></div>
-<div class="paragraph"><div class="title">Another monospaced paragraph with line breaks</div><p><span class="monospaced">This is a <strong>bold</strong> a line<br>
-This is a <em>strong</em> line<br>
-This is another <em>strong</em> line</span></p></div>
-<div class="literalblock">
-<div class="title">Literal block with quotes substitution</div>
-<div class="content monospaced">
-<pre>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-</div></div>
-<div class="verseblock">
-<pre class="content">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<div class="attribution">
-<em>from Auguries of Innocence</em><br>
-&#8212; William Blake
-</div></div>
-<div class="quoteblock">
-<div class="content">A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.</div>
-<div class="attribution">
-<em>The World of Mathematics (1956)</em><br>
-&#8212; Bertrand Russell
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_urls">URLs</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_mail_addresses">Mail Addresses</h3>
-<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br>
-lorum ipsum.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_comments">Comments</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
-<p><span class="comment"> This comment line will be displayed in the output.</span></p>
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-<br><span class="comment"> Visible inline comment line.</span><br>
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
-<div class="paragraph" id="comment_macro"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-<div class="paragraph" id="comment_block"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_index_terms">Index Terms</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Test 1 test1.</p></div>
-<div class="paragraph"><p>Test 2 .</p></div>
-<div class="paragraph"><p>Test 3 .</p></div>
-<div class="paragraph"><p>Test 4 .</p></div>
-<div class="paragraph"><p>Test 5 test5.</p></div>
-<div class="paragraph"><p>Test 6 .</p></div>
-<div class="paragraph"><p>Test 7 .</p></div>
-<div class="paragraph"><p>Test 8 .</p></div>
-<div class="paragraph"><p>Multi-passthough substitution (see
-<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
-<span class="monospaced">foo</span></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_with_fractional_column_width_units">Table with fractional column width units</h2>
-<div class="sectionbody">
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td>
-</tr></table>
-</div>
-<table class="tableblock frame-all grid-all"
-style="
-width:50%;
-">
-<caption class="title">Table 1. Horizontal and vertical source data</caption>
-<col style="width:17%;">
-<col style="width:11%;">
-<col style="width:11%;">
-<col style="width:58%;">
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top" >Date </th>
-<th class="tableblock halign-center valign-top" >Duration </th>
-<th class="tableblock halign-center valign-top" >Avg HR </th>
-<th class="tableblock halign-left valign-top" >Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">10:24</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">157</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">23:03</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">152</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">24-Aug-08</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">40:00</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock">145</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_with_parent_configuration_file_and_header_attribute_entry">Table with parent configuration file and header attribute entry</h2>
-<div class="sectionbody">
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<col style="width:100%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><div><div class="ulist"><ul>
-<li>
-<p>
-Attribute entry from header: TEST_ATTRIBUTE
-</p>
-</li>
-<li>
-<p>
-Replacement from <span class="monospaced">testcases.conf</span> configuration file: TEST_REPLACEMENT
-</p>
-</li>
-</ul></div></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_column_specifiers_with_merged_cells">Table column specifiers with merged cells</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>See
-<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p></div>
-<table class="tableblock frame-all grid-all"
-style="
-width:100%;
-">
-<col style="width:25%;">
-<col style="width:25%;">
-<col style="width:25%;">
-<col style="width:25%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" rowspan="2" ><p class="tableblock monospaced"></p></td>
-<td class="tableblock halign-right valign-top" rowspan="2" ><p class="tableblock">1- A</p></td>
-<td class="tableblock halign-center valign-top" colspan="2" ><p class="tableblock"><strong>2- B</strong></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>i- a</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>ii- b</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock monospaced">Values 1</p></td>
-<td class="tableblock halign-right valign-top" ><p class="tableblock">v1</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>v2</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>v3</em></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock monospaced">Values 2</p></td>
-<td class="tableblock halign-right valign-top" ><p class="tableblock">v4</p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>v5</strong></p></td>
-<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>v6</em></p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_floating_tables_and_images">Floating tables and images</h2>
-<div class="sectionbody">
-<table class="tableblock frame-all grid-all"
-style="
-float:left;
-width:15%;
-">
-<caption class="title">Table 2. Simple table</caption>
-<col style="width:33%;">
-<col style="width:33%;">
-<col style="width:33%;">
-<tbody>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">A</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">B</p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
-<td class="tableblock halign-left valign-top" ><p class="tableblock">C</p></td>
-</tr>
-</tbody>
-</table>
-<div class="imageblock" style="float:right;">
-<div class="content">
-<img src="../../images/images/tiger.png" alt="Tiger image">
-</div>
-<div class="title">Figure 2. Tiger</div>
-</div>
-<div style="clear:both;"></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_section_level_offsets">Section level offsets</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>At level 1</p></div>
-<div class="sect2">
-<h3 id="_section_title">Section title</h3>
-<div class="paragraph"><p>At level 2</p></div>
-</div>
-<div class="sect2">
-<h3 id="_section_title_2">Section title</h3>
-<div class="paragraph"><p>At level 2</p></div>
-<div class="sect3">
-<h4 id="_section_title_3">Section title</h4>
-<div class="paragraph"><p>At level 3</p></div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_section_level_offsets_2">Section level offsets</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>At level 1</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_single_quoted_attributes">Single-quoted attributes</h2>
-<div class="sectionbody">
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p></div>
-</div>
-<div class="attribution">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</div></div>
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p></div>
-</div>
-<div class="attribution">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_footnotes">Footnotes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br>[footnote one.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote" id="_footnote_F2"><br>[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
-<span class="footnoteref"><br><a href="#_footnote_F2">[F2]</a><br></span>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br>[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
-est labitur dolorum an. Est ne magna primis adolescens. Sit munere
-ponderum dignissim et. Minim luptatum et vel
-<span class="image">
-<img src="../../images/images/smallnew.png" alt="images/smallnew.png">
-</span>]<br></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br>[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]<br></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-vel <span class="footnote"><br>[<a href="https://asciidoc.org/">AsciiDoc website</a>.]<br></span>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-<span class="footnote" id="_footnote_F3"><br>[A footnote&#44; &#34;with an image&#34; <span class="image"> <img src="../../images/images/smallnew.png" alt="images/smallnew.png"> </span>]<br></span>.
-<span class="footnote"><br>[With [square brackets]]<br></span> Qui in magna commodo, est labitur
-dolorum an. Est ne magna primis.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_rulers_and_page_breaks">Rulers and page breaks</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<hr>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div style="page-break-after:always"></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_这是一个测试">这是一个测试</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Double-with character titles.
-<a href="#_这是一个测试">link to auto-generated section ID</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_html_5_audio_and_video_block_macros">HTML 5 audio and video block macros</h2>
-<div class="sectionbody">
-<div class="audioblock">
-<div class="content">
-<audio src="../../images/images/example.ogg" controls>
-Your browser does not support the audio tag.
-</audio>
-</div></div>
-<div class="audioblock">
-<div class="title">Audio tag test</div>
-<div class="content">
-<audio src="../../images/images/example.ogg" controls>
-Your browser does not support the audio tag.
-</audio>
-</div></div>
-<div class="videoblock">
-<div class="content">
-<video src="../../images/images/gizmo.ogv" width="200" autoplay>
-Your browser does not support the video tag.
-</video>
-</div></div>
-<div class="videoblock">
-<div class="title">Example video</div>
-<div class="content">
-<video src="../../images/images/gizmo.ogv" controls>
-Your browser does not support the video tag.
-</video>
-</div></div>
-<div class="videoblock">
-<div class="content">
-<video src="../../images/http://www.808.dk/pics/video/gizmo.ogv" controls>
-Your browser does not support the video tag.
-</video>
-</div></div>
-<video poster="images/gizmo.jpg" id="video" style="cursor: pointer;" >
- <source src="images/gizmo.webm" type="video/webm" />
- <source src="images/gizmo.ogv" type="video/ogg" />
- Video not playing? <a href="images/gizmo.mp4">Download file</a> instead.
-</video>
-
-<script type="text/javascript">
- var video = document.getElementById('video');
- video.addEventListener('click',function(){
- video.play();
- },false);
-</script>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_block_macros">Block macros</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>RS458 is 2.</p></div>
-</div>
-</div>
-<div class="paragraph"><p>Template line 1.
-Template line 2.</p></div>
-<div class="sect1">
-<h2 id="_an_id_without_accents">àn îd without accénts</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_àn_îd_with_accénts">àn îd with accénts</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_inline_macros">Inline macros</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
-brackets]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_equation">Equation</h2>
-<div class="sectionbody">
-<div class="mathblock">
-<div class="content">
-<div class="title">Equation</div>
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example">Example</h2>
-<div class="sectionbody">
-Formal figures, tables, equations and examples can float in docbook backend
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages.">
+<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow">
+<title>Test Cases</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Test <em>Cases</em></h1>
+<span id="author">Joe Bloggs</span><br>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_passthrough_attributes">Passthrough attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><b>*lorum ipsum*</b></p></div>
+<div class="paragraph"><p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_author_attributes">Author attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p></div>
+<div class="paragraph"><p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p></div>
+<div class="paragraph"><p>first name or last name or surname.</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>first name and last name.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_system_attributes">System attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>1 99 A</p></div>
+<div class="paragraph"><p>1 = 1, 99 = 99, A = A</p></div>
+<div class="paragraph"><p>2 100 B
+2 100 B</p></div>
+<div class="paragraph"><p>2 = 2, 100 = 100, B = B</p></div>
+<div class="paragraph"><p>y: Foobar</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>3, 7</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>3, 3</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_quoted_text_attributes">Quoted text attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p></div>
+<div class="paragraph"><p>A=<strong><em>X</em></strong>, (<span class="monospaced">_X_</span>), <em><span class="monospaced">X</span></em>, [<strong><em>X</em></strong>] <span class="monospaced"><em>X</em></span> <em>X</em></p></div>
+<div class="paragraph"><p>[<em>*X*</em>] <em>+X+</em></p></div>
+<div class="paragraph" id="_intro"><p><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.
+<strong><span class="foo bar">fun with text</span></strong>.
+<span class="monospaced foo">fun with text</span>.
+<em><span class="foo">fun with text</span></em>.
+<em><span class="foo">fun with text</span></em>.
+&#8220;<span class="foo">fun with text</span>&#8221;.
+&#8216;<span class="foo">fun with text</span>&#8217;.</p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
+<div class="paragraph"><p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p></div>
+<div class="paragraph"><p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
+and <span class="line-through">line-through text</span>.</p></div>
+<div class="paragraph"><p><span class="firstletter">T</span>esting 123 &#8230;</p></div>
+<div class="paragraph"><p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p></div>
+<div class="paragraph"><p>(&#8220;<span class="monospaced">1\n</span>&#8221;) if (usually &#8220;<span class="monospaced">-1\n</span>&#8221;)</p></div>
+<div class="paragraph"><p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_attribute_entries">Configuration attribute entries</h2>
+<div class="sectionbody">
+<div class="hdlist"><table>
+<tr>
+<td class="hdlist1">
+term
+<br>
+</td>
+<td class="hdlist2">
+<p style="margin-top: 0;">
+definition
+</p>
+</td>
+</tr>
+</table></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+term
+</dt>
+<dd>
+<p>
+definition
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_role_attribute">role attribute</h2>
+<div class="sectionbody">
+<div class="paragraph test"><p>Paragraph with a role attribute.</p></div>
+<div class="ulist test"><ul>
+<li>
+<p>
+first
+</p>
+</li>
+<li>
+<p>
+second
+</p>
+</li>
+<li>
+<p>
+third
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_break_list_nesting">Break list nesting</h2>
+<div class="sectionbody">
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+List 1.
+</p>
+</li>
+<li>
+<p>
+List 1.
+</p>
+</li>
+</ol></div>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+List 2.
+</p>
+</li>
+<li>
+<p>
+List 2.
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_listing_blocks">Listing Blocks</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content monospaced">
+<pre>$ ls <strong>-al</strong></pre>
+</div></div>
+<div class="listingblock">
+<div class="content monospaced">
+<pre>[subs="quotes"]
+------------------------------------------
+$ ls *-al*
+------------------------------------------</pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Listing</div>
+<div class="content monospaced">
+<pre>$ ls -al</pre>
+</div></div>
+<div class="exampleblock">
+<div class="title">Example 1. Listing example</div>
+<div class="content">
+<div class="listingblock">
+<div class="content monospaced">
+<pre>$ ls -al</pre>
+</div></div>
+</div></div>
+<div class="listingblock">
+<div class="title">Python paragraph</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="title">Titled Python listing</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="exampleblock">
+<div class="title">Example 2. Python listing example</div>
+<div class="content">
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="X1">Links</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An <a id="X2"></a> inline anchor.
+An <a id="X3"></a> inline anchor with reftext.</p></div>
+<div class="paragraph"><p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p></div>
+<div class="paragraph"><p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p></div>
+<div class="paragraph"><p>Link to <a href="#X3">[X3]</a> anchor.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p></div>
+<div class="hdlist"><table>
+<tr>
+<td class="hdlist1">
+<a id="Test::Unit"></a>[Test::Unit]
+<br>
+</td>
+<td class="hdlist2">
+<p style="margin-top: 0;">
+<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
+</p>
+</td>
+</tr>
+</table></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_titles">Titles</h2>
+<div class="sectionbody">
+<h5 id="_level_4" class="float">Level 4</h5>
+<h4 id="_level_3" class="float">Level 3</h4>
+<h3 id="_level_2" class="float">Level 2</h3>
+<h2 id="_level_1" class="float">Level 1</h2>
+<h5 id="_level_4_2" class="float">Level 4</h5>
+<h4 id="_level_3_2" class="float">Level 3</h4>
+<h3 id="_level_2_2" class="float">Level 2</h3>
+<h2 id="_level_1_2" class="float">Level 1</h2>
+<div class="paragraph"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_lists">Lists</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bulleted:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+<div class="paragraph"><p>Numbered:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+loweralpha numbering
+</p>
+<div class="olist upperalpha"><ol class="upperalpha">
+<li>
+<p>
+upperalpha numbering
+</p>
+<div class="olist lowerroman"><ol class="lowerroman">
+<li>
+<p>
+lowerroman numbering
+</p>
+<div class="olist upperroman"><ol class="upperroman">
+<li>
+<p>
+upperroman numbering
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+loweralpha numbering
+</p>
+<div class="olist lowerroman"><ol class="lowerroman">
+<li>
+<p>
+lowerroman numbering
+</p>
+<div class="olist upperalpha"><ol class="upperalpha">
+<li>
+<p>
+upperalpha numbering
+</p>
+<div class="olist upperroman"><ol class="upperroman">
+<li>
+<p>
+upperroman numbering
+</p>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+<div class="paragraph"><p>Labeled:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+<div class="paragraph"><p>With item anchor:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+one
+</dt>
+<dd>
+<p>
+Item one.
+</p>
+</dd>
+<dt class="hdlist1">
+<a id="item_two"></a>two
+</dt>
+<dd>
+<p>
+Item two.
+</p>
+</dd>
+<dt class="hdlist1">
+three
+</dt>
+<dd>
+<p>
+Item three.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_inline_passthroughs">Inline passthroughs</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+Test `ABC`.
+</p>
+</li>
+<li>
+<p>
+Test <span class="monospaced">ABC</span>.
+</p>
+</li>
+<li>
+<p>
+The <span class="monospaced">++i</span> and <span class="monospaced">++j</span> auto-increments.
+</p>
+</li>
+<li>
+<p>
+Paths <span class="monospaced">~/.vim</span> and <span class="monospaced">~/docs</span>.
+</p>
+</li>
+<li>
+<p>
+The <span class="monospaced">__init__</span> method.
+</p>
+</li>
+<li>
+<p>
+The <span class="monospaced">{id}</span> attribute.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>List start number test:</p></div>
+<div class="olist arabic"><ol class="arabic" start="7">
+<li>
+<p>
+List item 7.
+</p>
+</li>
+<li>
+<p>
+List item 8.
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_images">Images</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_block_images">Block images</h3>
+<div class="imageblock" id="tiger_image">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tyger tyger">
+</div>
+<div class="title">Figure 1. Tyger tyger</div>
+</div>
+<div class="imageblock" style="text-align:center;">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger" width="350" height="250">
+</div>
+<div class="title">Figure 2: Tyger tyger two</div>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../doc/music2.png" alt="music2.png">
+</div>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/note.png" alt="Note">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_inline_images">Inline images</h3>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="smallnew.png">
+</span></p></div>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="NEW!">
+</span></p></div>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="NEW!" title="Small new">
+</span></p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_admonishments">Admonishments</h2>
+<div class="sectionbody">
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/note.png" alt="Note">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/tip.png" alt="Tip">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/warning.png" alt="Warning">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/important.png" alt="Important">
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_backslash_escapes">Backslash escapes</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">Apostrophe</div><p>Don&#8217;t vs don't.</p></div>
+<div class="paragraph"><div class="title">Exceptions</div><p>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
+ambiguity. Here are some non-standard escape examples:</p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:40%;
+">
+<col style="width:50%;">
+<col style="width:50%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >AsciiDoc </th>
+<th class="tableblock halign-left valign-top" > Renders</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>\joe.bloggs@example.com
+&lt;\joe.bloggs@example.com&gt;
+\mailto:[\joe.bloggs@example.com]</pre></div></td>
+<td class="tableblock halign-left valign-top" ><div class="verse">joe.bloggs@example.com
+&lt;joe.bloggs@example.com&gt;
+mailto:[joe.bloggs@example.com]</div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>\http://www.example.com
+\\http://www.example.com[]
+\\http://www.example.com[Foobar Limited]</pre></div></td>
+<td class="tableblock halign-left valign-top" ><div class="verse">http://www.example.com
+http://www.example.com[]
+http://www.example.com[Foobar Limited]</div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><div class="literal monospaced"><pre>A C\++ Library for C++
+\\``double-quotes''
+\*\*F**ile Open\...</pre></div></td>
+<td class="tableblock halign-left valign-top" ><div class="verse">A C++ Library for C++
+``double-quotes''
+**F**ile Open...</div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_paragraphs">Paragraphs</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">Normal paragraph</div><p>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</p></div>
+<div class="literalblock">
+<div class="title">Literal paragraph</div>
+<div class="content monospaced">
+<pre>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</pre>
+</div></div>
+<div class="verseblock">
+<div class="title">Verse paragraph</div>
+<pre class="content">This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+<div class="attribution">
+</div></div>
+<div class="literalblock">
+<div class="title">Indented (literal) paragraph</div>
+<div class="content monospaced">
+<pre>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</pre>
+</div></div>
+<div class="literalblock">
+<div class="title">Indented with quotes substitution</div>
+<div class="content monospaced">
+<pre>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+</div></div>
+<div class="literalblock">
+<div class="title">Literal paragraph with quotes substitution</div>
+<div class="content monospaced">
+<pre>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+</div></div>
+<div class="paragraph"><div class="title">Monospaced paragraph with line breaks</div><p><span class="monospaced">This is a <strong>bold</strong> line</span><br>
+<span class="monospaced">This is a <em>strong</em> line</span><br>
+<span class="monospaced">This is another <em>strong</em> line</span></p></div>
+<div class="paragraph"><div class="title">Another monospaced paragraph with line breaks</div><p><span class="monospaced">This is a <strong>bold</strong> a line<br>
+This is a <em>strong</em> line<br>
+This is another <em>strong</em> line</span></p></div>
+<div class="literalblock">
+<div class="title">Literal block with quotes substitution</div>
+<div class="content monospaced">
+<pre>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+</div></div>
+<div class="verseblock">
+<pre class="content">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<div class="attribution">
+<em>from Auguries of Innocence</em><br>
+&#8212; William Blake
+</div></div>
+<div class="quoteblock">
+<div class="content">A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.</div>
+<div class="attribution">
+<em>The World of Mathematics (1956)</em><br>
+&#8212; Bertrand Russell
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_urls">URLs</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_mail_addresses">Mail Addresses</h3>
+<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br>
+lorum ipsum.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_comments">Comments</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
+<p><span class="comment"> This comment line will be displayed in the output.</span></p>
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+<br><span class="comment"> Visible inline comment line.</span><br>
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
+<div class="paragraph" id="comment_macro"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+<div class="paragraph" id="comment_block"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_index_terms">Index Terms</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Test 1 test1.</p></div>
+<div class="paragraph"><p>Test 2 .</p></div>
+<div class="paragraph"><p>Test 3 .</p></div>
+<div class="paragraph"><p>Test 4 .</p></div>
+<div class="paragraph"><p>Test 5 test5.</p></div>
+<div class="paragraph"><p>Test 6 .</p></div>
+<div class="paragraph"><p>Test 7 .</p></div>
+<div class="paragraph"><p>Test 8 .</p></div>
+<div class="paragraph"><p>Multi-passthough substitution (see
+<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
+<span class="monospaced">foo</span></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_with_fractional_column_width_units">Table with fractional column width units</h2>
+<div class="sectionbody">
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td>
+</tr></table>
+</div>
+<table class="tableblock frame-all grid-all"
+style="
+width:50%;
+">
+<caption class="title">Table 1. Horizontal and vertical source data</caption>
+<col style="width:17%;">
+<col style="width:11%;">
+<col style="width:11%;">
+<col style="width:58%;">
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" >Date </th>
+<th class="tableblock halign-center valign-top" >Duration </th>
+<th class="tableblock halign-center valign-top" >Avg HR </th>
+<th class="tableblock halign-left valign-top" >Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">10:24</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">157</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">22-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">23:03</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">152</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">24-Aug-08</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">40:00</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock">145</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_with_parent_configuration_file_and_header_attribute_entry">Table with parent configuration file and header attribute entry</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<col style="width:100%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><div><div class="ulist"><ul>
+<li>
+<p>
+Attribute entry from header: TEST_ATTRIBUTE
+</p>
+</li>
+<li>
+<p>
+Replacement from <span class="monospaced">testcases.conf</span> configuration file: TEST_REPLACEMENT
+</p>
+</li>
+</ul></div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_column_specifiers_with_merged_cells">Table column specifiers with merged cells</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>See
+<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p></div>
+<table class="tableblock frame-all grid-all"
+style="
+width:100%;
+">
+<col style="width:25%;">
+<col style="width:25%;">
+<col style="width:25%;">
+<col style="width:25%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" rowspan="2" ><p class="tableblock monospaced"></p></td>
+<td class="tableblock halign-right valign-top" rowspan="2" ><p class="tableblock">1- A</p></td>
+<td class="tableblock halign-center valign-top" colspan="2" ><p class="tableblock"><strong>2- B</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>i- a</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>ii- b</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock monospaced">Values 1</p></td>
+<td class="tableblock halign-right valign-top" ><p class="tableblock">v1</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>v2</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>v3</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock monospaced">Values 2</p></td>
+<td class="tableblock halign-right valign-top" ><p class="tableblock">v4</p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><strong>v5</strong></p></td>
+<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>v6</em></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_floating_tables_and_images">Floating tables and images</h2>
+<div class="sectionbody">
+<table class="tableblock frame-all grid-all"
+style="
+float:left;
+width:15%;
+">
+<caption class="title">Table 2. Simple table</caption>
+<col style="width:33%;">
+<col style="width:33%;">
+<col style="width:33%;">
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">1</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">2</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">A</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">3</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">4</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">B</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">5</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">6</p></td>
+<td class="tableblock halign-left valign-top" ><p class="tableblock">C</p></td>
+</tr>
+</tbody>
+</table>
+<div class="imageblock" style="float:right;">
+<div class="content">
+<img src="../../images/images/tiger.png" alt="Tiger image">
+</div>
+<div class="title">Figure 2. Tiger</div>
+</div>
+<div style="clear:both;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_level_offsets">Section level offsets</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>At level 1</p></div>
+<div class="sect2">
+<h3 id="_section_title">Section title</h3>
+<div class="paragraph"><p>At level 2</p></div>
+</div>
+<div class="sect2">
+<h3 id="_section_title_2">Section title</h3>
+<div class="paragraph"><p>At level 2</p></div>
+<div class="sect3">
+<h4 id="_section_title_3">Section title</h4>
+<div class="paragraph"><p>At level 3</p></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_level_offsets_2">Section level offsets</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>At level 1</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_single_quoted_attributes">Single-quoted attributes</h2>
+<div class="sectionbody">
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p></div>
+</div>
+<div class="attribution">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</div></div>
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p></div>
+</div>
+<div class="attribution">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_footnotes">Footnotes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br>[footnote one.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote" id="_footnote_F2"><br>[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
+<span class="footnoteref"><br><a href="#_footnote_F2">[F2]</a><br></span>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br>[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
+est labitur dolorum an. Est ne magna primis adolescens. Sit munere
+ponderum dignissim et. Minim luptatum et vel
+<span class="image">
+<img src="../../images/images/smallnew.png" alt="images/smallnew.png">
+</span>]<br></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br>[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]<br></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+vel <span class="footnote"><br>[<a href="https://asciidoc.org/">AsciiDoc website</a>.]<br></span>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+<span class="footnote" id="_footnote_F3"><br>[A footnote&#44; &#34;with an image&#34; <span class="image"> <img src="../../images/images/smallnew.png" alt="images/smallnew.png"> </span>]<br></span>.
+<span class="footnote"><br>[With [square brackets]]<br></span> Qui in magna commodo, est labitur
+dolorum an. Est ne magna primis.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_rulers_and_page_breaks">Rulers and page breaks</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<hr>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div style="page-break-after:always"></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_这是一个测试">这是一个测试</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Double-with character titles.
+<a href="#_这是一个测试">link to auto-generated section ID</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_html_5_audio_and_video_block_macros">HTML 5 audio and video block macros</h2>
+<div class="sectionbody">
+<div class="audioblock">
+<div class="content">
+<audio src="../../images/images/example.ogg" controls>
+Your browser does not support the audio tag.
+</audio>
+</div></div>
+<div class="audioblock">
+<div class="title">Audio tag test</div>
+<div class="content">
+<audio src="../../images/images/example.ogg" controls>
+Your browser does not support the audio tag.
+</audio>
+</div></div>
+<div class="videoblock">
+<div class="content">
+<video src="../../images/images/gizmo.ogv" width="200" autoplay>
+Your browser does not support the video tag.
+</video>
+</div></div>
+<div class="videoblock">
+<div class="title">Example video</div>
+<div class="content">
+<video src="../../images/images/gizmo.ogv" controls>
+Your browser does not support the video tag.
+</video>
+</div></div>
+<div class="videoblock">
+<div class="content">
+<video src="../../images/http://www.808.dk/pics/video/gizmo.ogv" controls>
+Your browser does not support the video tag.
+</video>
+</div></div>
+<video poster="images/gizmo.jpg" id="video" style="cursor: pointer;" >
+ <source src="images/gizmo.webm" type="video/webm" />
+ <source src="images/gizmo.ogv" type="video/ogg" />
+ Video not playing? <a href="images/gizmo.mp4">Download file</a> instead.
+</video>
+
+<script type="text/javascript">
+ var video = document.getElementById('video');
+ video.addEventListener('click',function(){
+ video.play();
+ },false);
+</script>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_block_macros">Block macros</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>RS458 is 2.</p></div>
+</div>
+</div>
+<div class="paragraph"><p>Template line 1.
+Template line 2.</p></div>
+<div class="sect1">
+<h2 id="_an_id_without_accents">àn îd without accénts</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_àn_îd_with_accénts">àn îd with accénts</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_inline_macros">Inline macros</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
+brackets]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_equation">Equation</h2>
+<div class="sectionbody">
+<div class="mathblock">
+<div class="content">
+<div class="title">Equation</div>
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">Example</h2>
+<div class="sectionbody">
+Formal figures, tables, equations and examples can float in docbook backend
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/testcases-xhtml11.html b/tests/data/testcases-xhtml11.html
index 19aaa8e..88863ff 100644
--- a/tests/data/testcases-xhtml11.html
+++ b/tests/data/testcases-xhtml11.html
@@ -1,1823 +1,1823 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages." />
-<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow" />
-<title>Test Cases</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>Test <em>Cases</em></h1>
-<span id="author">Joe Bloggs</span><br />
-</div>
-<div id="content">
-<div class="sect1">
-<h2 id="_passthrough_attributes">Passthrough attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><b>*lorum ipsum*</b></p></div>
-<div class="paragraph"><p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_author_attributes">Author attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p></div>
-<div class="paragraph"><p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p></div>
-<div class="paragraph"><p>first name or last name or surname.</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>first name and last name.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_system_attributes">System attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>1 99 A</p></div>
-<div class="paragraph"><p>1 = 1, 99 = 99, A = A</p></div>
-<div class="paragraph"><p>2 100 B
-2 100 B</p></div>
-<div class="paragraph"><p>2 = 2, 100 = 100, B = B</p></div>
-<div class="paragraph"><p>y: Foobar</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>3, 7</p></div>
-<div class="paragraph"><p></p></div>
-<div class="paragraph"><p>3, 3</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_quoted_text_attributes">Quoted text attributes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p></div>
-<div class="paragraph"><p>A=<strong><em>X</em></strong>, (<code>_X_</code>), <em><code>X</code></em>, [<strong><em>X</em></strong>] <code><em>X</em></code> <em>X</em></p></div>
-<div class="paragraph"><p>[<em>*X*</em>] <em>+X+</em></p></div>
-<div class="paragraph" id="_intro"><p><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.
-<strong><span class="foo bar">fun with text</span></strong>.
-<code><span class="foo">fun with text</span></code>.
-<em><span class="foo">fun with text</span></em>.
-<em><span class="foo">fun with text</span></em>.
-&#8220;<span class="foo">fun with text</span>&#8221;.
-&#8216;<span class="foo">fun with text</span>&#8217;.</p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
-<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
-<div class="paragraph"><p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p></div>
-<div class="paragraph"><p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
-and <span class="line-through">line-through text</span>.</p></div>
-<div class="paragraph"><p><span class="firstletter">T</span>esting 123 &#8230;</p></div>
-<div class="paragraph"><p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p></div>
-<div class="paragraph"><p>(&#8220;<code>1\n</code>&#8221;) if (usually &#8220;<code>-1\n</code>&#8221;)</p></div>
-<div class="paragraph"><p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_configuration_attribute_entries">Configuration attribute entries</h2>
-<div class="sectionbody">
-<div class="hdlist"><table>
-<tr>
-<td class="hdlist1">
-term
-<br />
-</td>
-<td class="hdlist2">
-<p style="margin-top: 0;">
-definition
-</p>
-</td>
-</tr>
-</table></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-term
-</dt>
-<dd>
-<p>
-definition
-</p>
-</dd>
-</dl></div>
-<div class="paragraph"><p><a href="#link1">[link1]</a></p></div>
-<div class="paragraph"><p><a href="#link1"></a></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_role_attribute">role attribute</h2>
-<div class="sectionbody">
-<div class="paragraph test"><p>Paragraph with a role attribute.</p></div>
-<div class="ulist test"><ul>
-<li>
-<p>
-first
-</p>
-</li>
-<li>
-<p>
-second
-</p>
-</li>
-<li>
-<p>
-third
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_break_list_nesting">Break list nesting</h2>
-<div class="sectionbody">
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-List 1.
-</p>
-</li>
-<li>
-<p>
-List 1.
-</p>
-</li>
-</ol></div>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-List 2.
-</p>
-</li>
-<li>
-<p>
-List 2.
-</p>
-</li>
-</ol></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_listing_blocks">Listing Blocks</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content">
-<pre><code>$ ls <strong>-al</strong></code></pre>
-</div></div>
-<div class="listingblock">
-<div class="content">
-<pre><code>[subs="quotes"]
-------------------------------------------
-$ ls *-al*
-------------------------------------------</code></pre>
-</div></div>
-<div class="listingblock">
-<div class="title">Listing</div>
-<div class="content">
-<pre><code>$ ls -al</code></pre>
-</div></div>
-<div class="exampleblock">
-<div class="title">Example 1. Listing example</div>
-<div class="content">
-<div class="listingblock">
-<div class="content">
-<pre><code>$ ls -al</code></pre>
-</div></div>
-</div></div>
-<div class="listingblock">
-<div class="title">Python paragraph</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="listingblock">
-<div class="title">Titled Python listing</div>
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-<div class="exampleblock">
-<div class="title">Example 2. Python listing example</div>
-<div class="content">
-<div class="listingblock">
-<div class="content"><!-- Generator: GNU source-highlight
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="X1">Links</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>An <a id="X2"></a> inline anchor.
-An <a id="X3"></a> inline anchor with reftext.</p></div>
-<div class="paragraph"><p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p></div>
-<div class="paragraph"><p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p></div>
-<div class="paragraph"><p>Link to <a href="#X3">[X3]</a> anchor.</p></div>
-<div class="paragraph"><p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p></div>
-<div class="hdlist"><table>
-<tr>
-<td class="hdlist1">
-<a id="Test::Unit"></a>[Test::Unit]
-<br />
-</td>
-<td class="hdlist2">
-<p style="margin-top: 0;">
-<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
-</p>
-</td>
-</tr>
-</table></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_titles">Titles</h2>
-<div class="sectionbody">
-<h5 id="_level_4" class="float">Level 4</h5>
-<h4 id="_level_3" class="float">Level 3</h4>
-<h3 id="_level_2" class="float">Level 2</h3>
-<h2 id="_level_1" class="float">Level 1</h2>
-<h5 id="_level_4_2" class="float">Level 4</h5>
-<h4 id="_level_3_2" class="float">Level 3</h4>
-<h3 id="_level_2_2" class="float">Level 2</h3>
-<h2 id="_level_1_2" class="float">Level 1</h2>
-<div class="paragraph"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_lists">Lists</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Bulleted:</p></div>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-<div class="ulist"><ul>
-<li>
-<p>
-item text
-</p>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-</li>
-</ul></div>
-<div class="paragraph"><p>Numbered:</p></div>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-loweralpha numbering
-</p>
-<div class="olist upperalpha"><ol class="upperalpha">
-<li>
-<p>
-upperalpha numbering
-</p>
-<div class="olist lowerroman"><ol class="lowerroman">
-<li>
-<p>
-lowerroman numbering
-</p>
-<div class="olist upperroman"><ol class="upperroman">
-<li>
-<p>
-upperroman numbering
-</p>
-<div class="olist arabic"><ol class="arabic">
-<li>
-<p>
-arabic (decimal) numbering
-</p>
-<div class="olist loweralpha"><ol class="loweralpha">
-<li>
-<p>
-loweralpha numbering
-</p>
-<div class="olist lowerroman"><ol class="lowerroman">
-<li>
-<p>
-lowerroman numbering
-</p>
-<div class="olist upperalpha"><ol class="upperalpha">
-<li>
-<p>
-upperalpha numbering
-</p>
-<div class="olist upperroman"><ol class="upperroman">
-<li>
-<p>
-upperroman numbering
-</p>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-</li>
-</ol></div>
-<div class="paragraph"><p>Labeled:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-label
-</dt>
-<dd>
-<p>
-item text
-</p>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-</dd>
-</dl></div>
-<div class="paragraph"><p>With item anchor:</p></div>
-<div class="dlist"><dl>
-<dt class="hdlist1">
-one
-</dt>
-<dd>
-<p>
-Item one.
-</p>
-</dd>
-<dt class="hdlist1">
-<a id="item_two"></a>two
-</dt>
-<dd>
-<p>
-Item two.
-</p>
-</dd>
-<dt class="hdlist1">
-three
-</dt>
-<dd>
-<p>
-Item three.
-</p>
-</dd>
-</dl></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_inline_passthroughs">Inline passthroughs</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-Test `ABC`.
-</p>
-</li>
-<li>
-<p>
-Test <code>ABC</code>.
-</p>
-</li>
-<li>
-<p>
-The <code>++i</code> and <code>++j</code> auto-increments.
-</p>
-</li>
-<li>
-<p>
-Paths <code>~/.vim</code> and <code>~/docs</code>.
-</p>
-</li>
-<li>
-<p>
-The <code>__init__</code> method.
-</p>
-</li>
-<li>
-<p>
-The <code>{id}</code> attribute.
-</p>
-</li>
-</ul></div>
-<div class="paragraph"><p>List start number test:</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_images">Images</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_block_images">Block images</h3>
-<div class="imageblock" id="tiger_image">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tyger tyger" />
-</div>
-<div class="title">Figure 1. Tyger tyger</div>
-</div>
-<div class="imageblock" style="text-align:center;">
-<div class="content">
-<img src="../../images/tiger.png" alt="Tiger" width="350" height="250" />
-</div>
-<div class="title">Figure 2: Tyger tyger two</div>
-</div>
-<div class="imageblock">
-<div class="content">
-<img src="../../doc/music2.png" alt="music2.png" />
-</div>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/note.png" alt="Note" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="paragraph"><p><span class="image">
-<img alt="NEW"
-src="data:image/png;base64,
-iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
-/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
-3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
-BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
-5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
-RU5ErkJggg==" />
-</span> <em>testing</em> <code>123</code>.</p></div>
-</div>
-<div class="sect2">
-<h3 id="_inline_images">Inline images</h3>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="smallnew.png" />
-</span></p></div>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="NEW!" />
-</span></p></div>
-<div class="paragraph"><p>Inline image <span class="image">
-<img src="../../images/smallnew.png" alt="NEW!" title="Small new" />
-</span></p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_admonishments">Admonishments</h2>
-<div class="sectionbody">
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Tip</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Warning</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Caution</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Important</div>
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/note.png" alt="Note" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/tip.png" alt="Tip" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/warning.png" alt="Warning" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/caution.png" alt="Caution" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<img src="../../images/icons/important.png" alt="Important" />
-</td>
-<td class="content">Lorum ipsum.</td>
-</tr></table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_backslash_escapes">Backslash escapes</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">Apostrophe</div><p>Don&#8217;t vs don't.</p></div>
-<div class="paragraph"><div class="title">Exceptions</div><p>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
-ambiguity. Here are some non-standard escape examples:</p></div>
-<div class="tableblock">
-<table rules="all"
-width="40%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="50%" />
-<col width="50%" />
-<thead>
-<tr>
-<th align="left" valign="top">AsciiDoc </th>
-<th align="left" valign="top"> Renders</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><div class="literal"><pre><code>\joe.bloggs@example.com
-&lt;\joe.bloggs@example.com&gt;
-\mailto:[\joe.bloggs@example.com]</code></pre></div></td>
-<td align="left" valign="top"><div class="verse">joe.bloggs@example.com
-&lt;joe.bloggs@example.com&gt;
-mailto:[joe.bloggs@example.com]</div></td>
-</tr>
-<tr>
-<td align="left" valign="top"><div class="literal"><pre><code>\http://www.example.com
-\\http://www.example.com[]
-\\http://www.example.com[Foobar Limited]</code></pre></div></td>
-<td align="left" valign="top"><div class="verse">http://www.example.com
-http://www.example.com[]
-http://www.example.com[Foobar Limited]</div></td>
-</tr>
-<tr>
-<td align="left" valign="top"><div class="literal"><pre><code>A C\++ Library for C++
-\\``double-quotes''
-\*\*F**ile Open\...</code></pre></div></td>
-<td align="left" valign="top"><div class="verse">A C++ Library for C++
-``double-quotes''
-**F**ile Open...</div></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_paragraphs">Paragraphs</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">Normal paragraph</div><p>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</p></div>
-<div class="literalblock">
-<div class="title">Literal paragraph</div>
-<div class="content">
-<pre><code>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</code></pre>
-</div></div>
-<div class="verseblock">
-<div class="title">Verse paragraph</div>
-<pre class="content">This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</pre>
-<div class="attribution">
-</div></div>
-<div class="literalblock">
-<div class="title">Indented (literal) paragraph</div>
-<div class="content">
-<pre><code>This is a *bold* a line
-This is a 'strong' line
-This is another _strong_ line</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Indented with quotes substitution</div>
-<div class="content">
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Literal paragraph with quotes substitution</div>
-<div class="content">
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-</div></div>
-<div class="paragraph"><div class="title">Monospaced paragraph with line breaks</div><p><code>This is a <strong>bold</strong> line</code><br />
-<code>This is a <em>strong</em> line</code><br />
-<code>This is another <em>strong</em> line</code></p></div>
-<div class="paragraph"><div class="title">Another monospaced paragraph with line breaks</div><p><code>This is a <strong>bold</strong> a line<br />
-This is a <em>strong</em> line<br />
-This is another <em>strong</em> line</code></p></div>
-<div class="literalblock">
-<div class="title">Literal block with quotes substitution</div>
-<div class="content">
-<pre><code>This is a <strong>bold</strong> a line
-This is a <em>strong</em> line
-This is another <em>strong</em> line</code></pre>
-</div></div>
-<div class="verseblock">
-<pre class="content">To see a world in a grain of sand,
-And a heaven in a wild flower,
-Hold infinity in the palm of your hand,
-And eternity in an hour.</pre>
-<div class="attribution">
-<em>from Auguries of Innocence</em><br />
-&#8212; William Blake
-</div></div>
-<div class="quoteblock">
-<div class="content">A good notation has subtlety and suggestiveness which at times makes
-it almost seem like a live teacher.</div>
-<div class="attribution">
-<em>The World of Mathematics (1956)</em><br />
-&#8212; Bertrand Russell
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_urls">URLs</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="_mail_addresses">Mail Addresses</h3>
-<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p></div>
-<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p></div>
-<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br />
-lorum ipsum.</p></div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_comments">Comments</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
-<p><span class="comment"> This comment line will be displayed in the output.</span></p>
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
-<br /><span class="comment"> Visible inline comment line.</span><br />
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
-<div class="paragraph" id="comment_macro"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-<div class="paragraph" id="comment_block"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_index_terms">Index Terms</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Test 1 test1.</p></div>
-<div class="paragraph"><p>Test 2 .</p></div>
-<div class="paragraph"><p>Test 3 .</p></div>
-<div class="paragraph"><p>Test 4 .</p></div>
-<div class="paragraph"><p>Test 5 test5.</p></div>
-<div class="paragraph"><p>Test 6 .</p></div>
-<div class="paragraph"><p>Test 7 .</p></div>
-<div class="paragraph"><p>Test 8 .</p></div>
-<div class="paragraph"><p>Multi-passthough substitution (see
-<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
-<code>foo</code></p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_with_fractional_column_width_units">Table with fractional column width units</h2>
-<div class="sectionbody">
-<div class="admonitionblock">
-<table><tr>
-<td class="icon">
-<div class="title">Note</div>
-</td>
-<td class="content"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td>
-</tr></table>
-</div>
-<div class="tableblock">
-<table rules="all"
-width="50%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 1. Horizontal and vertical source data</caption>
-<col width="17%" />
-<col width="11%" />
-<col width="11%" />
-<col width="58%" />
-<thead>
-<tr>
-<th align="left" valign="top">Date </th>
-<th align="center" valign="top">Duration </th>
-<th align="center" valign="top">Avg HR </th>
-<th align="left" valign="top">Notes</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">10:24</p></td>
-<td align="center" valign="top"><p class="table">157</p></td>
-<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
-for this interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">23:03</p></td>
-<td align="center" valign="top"><p class="table">152</p></td>
-<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
-<td align="center" valign="top"><p class="table">40:00</p></td>
-<td align="center" valign="top"><p class="table">145</p></td>
-<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
-hard + 1min really hard taking the HR up to 160).</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_with_parent_configuration_file_and_header_attribute_entry">Table with parent configuration file and header attribute entry</h2>
-<div class="sectionbody">
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="100%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><div><div class="ulist"><ul>
-<li>
-<p>
-Attribute entry from header: TEST_ATTRIBUTE
-</p>
-</li>
-<li>
-<p>
-Replacement from <code>testcases.conf</code> configuration file: TEST_REPLACEMENT
-</p>
-</li>
-</ul></div></div></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_table_column_specifiers_with_merged_cells">Table column specifiers with merged cells</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>See
-<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p></div>
-<div class="tableblock">
-<table rules="all"
-width="100%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<col width="25%" />
-<col width="25%" />
-<col width="25%" />
-<col width="25%" />
-<tbody>
-<tr>
-<td rowspan="2" align="left" valign="top"><p class="table"><code></code></p></td>
-<td rowspan="2" align="right" valign="top"><p class="table">1- A</p></td>
-<td colspan="2" align="center" valign="top"><p class="table"><strong>2- B</strong></p></td>
-</tr>
-<tr>
-<td align="center" valign="top"><p class="table"><strong>i- a</strong></p></td>
-<td align="center" valign="top"><p class="table"><em>ii- b</em></p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table"><code>Values 1</code></p></td>
-<td align="right" valign="top"><p class="table">v1</p></td>
-<td align="center" valign="top"><p class="table"><strong>v2</strong></p></td>
-<td align="center" valign="top"><p class="table"><em>v3</em></p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table"><code>Values 2</code></p></td>
-<td align="right" valign="top"><p class="table">v4</p></td>
-<td align="center" valign="top"><p class="table"><strong>v5</strong></p></td>
-<td align="center" valign="top"><p class="table"><em>v6</em></p></td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_floating_tables_and_images">Floating tables and images</h2>
-<div class="sectionbody">
-<div class="tableblock">
-<table rules="all"
-style="float:left;"
-width="15%"
-frame="border"
-cellspacing="0" cellpadding="4">
-<caption class="title">Table 2. Simple table</caption>
-<col width="33%" />
-<col width="33%" />
-<col width="33%" />
-<tbody>
-<tr>
-<td align="left" valign="top"><p class="table">1</p></td>
-<td align="left" valign="top"><p class="table">2</p></td>
-<td align="left" valign="top"><p class="table">A</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">3</p></td>
-<td align="left" valign="top"><p class="table">4</p></td>
-<td align="left" valign="top"><p class="table">B</p></td>
-</tr>
-<tr>
-<td align="left" valign="top"><p class="table">5</p></td>
-<td align="left" valign="top"><p class="table">6</p></td>
-<td align="left" valign="top"><p class="table">C</p></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div class="imageblock" style="float:right;">
-<div class="content">
-<img src="../../images/images/tiger.png" alt="Tiger image" />
-</div>
-<div class="title">Figure 2. Tiger</div>
-</div>
-<div style="clear:both;"></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_section_level_offsets">Section level offsets</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>At level 1</p></div>
-<div class="sect2">
-<h3 id="_section_title">Section title</h3>
-<div class="paragraph"><p>At level 2</p></div>
-</div>
-<div class="sect2">
-<h3 id="_section_title_2">Section title</h3>
-<div class="paragraph"><p>At level 2</p></div>
-<div class="sect3">
-<h4 id="_section_title_3">Section title</h4>
-<div class="paragraph"><p>At level 3</p></div>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_section_level_offsets_2">Section level offsets</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>At level 1</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_single_quoted_attributes">Single-quoted attributes</h2>
-<div class="sectionbody">
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p></div>
-</div>
-<div class="attribution">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</div></div>
-<div class="quoteblock">
-<div class="content">
-<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
-is not done well; but you are surprised to find it done at all.</p></div>
-</div>
-<div class="attribution">
-&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_footnotes">Footnotes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br />[footnote one.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br /></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote" id="_footnote_F2"><br />[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br /></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
-<span class="footnoteref"><br /><a href="#_footnote_F2">[F2]</a><br /></span>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br />[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
-est labitur dolorum an. Est ne magna primis adolescens. Sit munere
-ponderum dignissim et. Minim luptatum et vel
-<span class="image">
-<img src="../../images/images/smallnew.png" alt="images/smallnew.png" />
-</span>]<br /></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
-<span class="footnote"><br />[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]<br /></span>
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-vel <span class="footnote"><br />[<a href="https://asciidoc.org/">AsciiDoc website</a>.]<br /></span>.
-Qui in magna commodo, est labitur dolorum an. Est ne magna primis
-adolescens. Sit munere ponderum dignissim et. Minim luptatum et
-<span class="footnote" id="_footnote_F3"><br />[A footnote&#44; &#34;with an image&#34; <span class="image"> <img src="../../images/images/smallnew.png" alt="images/smallnew.png" /> </span>]<br /></span>.
-<span class="footnote"><br />[With [square brackets]]<br /></span> Qui in magna commodo, est labitur
-dolorum an. Est ne magna primis.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_rulers_and_page_breaks">Rulers and page breaks</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<hr />
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div style="page-break-after:always"></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_这是一个测试">这是一个测试</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Double-with character titles.
-<a href="#_这是一个测试">link to auto-generated section ID</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_block_macros">Block macros</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>RS458 is 2.</p></div>
-</div>
-</div>
-<div class="paragraph"><p>Template line 1.
-Template line 2.</p></div>
-<div class="sect1">
-<h2 id="_an_id_without_accents">àn îd without accénts</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_àn_îd_with_accénts">àn îd with accénts</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_inline_macros">Inline macros</h2>
-<div class="sectionbody">
-<div class="paragraph"><p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
-brackets]</a>.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_equation">Equation</h2>
-<div class="sectionbody">
-<div class="mathblock">
-<div class="content">
-<div class="title">Equation</div>
-\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_example">Example</h2>
-<div class="sectionbody">
-Formal figures, tables, equations and examples can float in docbook backend
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<meta name="description" content="AsciiDoc is a text document format for writing short documents, articles, books, slideshows and UNIX man pages." />
+<meta name="keywords" content="AsciiDoc, DocBook, EPUB, slideshow" />
+<title>Test Cases</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>Test <em>Cases</em></h1>
+<span id="author">Joe Bloggs</span><br />
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_passthrough_attributes">Passthrough attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><b>*lorum ipsum*</b></p></div>
+<div class="paragraph"><p>&lt;b&gt;*lorum ipsum*&lt;/b&gt;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_author_attributes">Author attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>{eval:expression}, {sys:command} and {sys2:command}, {counter:c1}</p></div>
+<div class="paragraph"><p>Hello <strong>Joe Bloggs</strong> (Joe Bloggs, JB).</p></div>
+<div class="paragraph"><p>first name or last name or surname.</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>first name and last name.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_system_attributes">System attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>1 99 A</p></div>
+<div class="paragraph"><p>1 = 1, 99 = 99, A = A</p></div>
+<div class="paragraph"><p>2 100 B
+2 100 B</p></div>
+<div class="paragraph"><p>2 = 2, 100 = 100, B = B</p></div>
+<div class="paragraph"><p>y: Foobar</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>3, 7</p></div>
+<div class="paragraph"><p></p></div>
+<div class="paragraph"><p>3, 3</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_quoted_text_attributes">Quoted text attributes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>A=<em>X</em>, (<em>X</em>), <em>X</em>, [<em>X</em>] <em>X</em></p></div>
+<div class="paragraph"><p>A=<strong><em>X</em></strong>, (<code>_X_</code>), <em><code>X</code></em>, [<strong><em>X</em></strong>] <code><em>X</em></code> <em>X</em></p></div>
+<div class="paragraph"><p>[<em>*X*</em>] <em>+X+</em></p></div>
+<div class="paragraph" id="_intro"><p><a href="#_intro">[_intro]</a> <a href="#_intro">intro</a> <a href="#_intro">[_intro]</a> <em>intro</em></p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.
+<strong><span class="foo bar">fun with text</span></strong>.
+<code><span class="foo">fun with text</span></code>.
+<em><span class="foo">fun with text</span></em>.
+<em><span class="foo">fun with text</span></em>.
+&#8220;<span class="foo">fun with text</span>&#8221;.
+&#8216;<span class="foo">fun with text</span>&#8217;.</p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
+<div class="paragraph"><p><span class="foo">fun with text</span>.</p></div>
+<div class="paragraph"><p><span class="red">Obvious</span> and <strong><span class="big red yellow-background">very obvious</span></strong>.</p></div>
+<div class="paragraph"><p><span class="underline">Underline text</span>, <span class="overline">overline text</span>
+and <span class="line-through">line-through text</span>.</p></div>
+<div class="paragraph"><p><span class="firstletter">T</span>esting 123 &#8230;</p></div>
+<div class="paragraph"><p>(&#8220;+1\n+&#8221;) if (usually &#8220;+-1\n+&#8221;)</p></div>
+<div class="paragraph"><p>(&#8220;<code>1\n</code>&#8221;) if (usually &#8220;<code>-1\n</code>&#8221;)</p></div>
+<div class="paragraph"><p>(&#8216;Joe Bloggs&#8217;) and &#8216;Joe Bloggs&#8217;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_attribute_entries">Configuration attribute entries</h2>
+<div class="sectionbody">
+<div class="hdlist"><table>
+<tr>
+<td class="hdlist1">
+term
+<br />
+</td>
+<td class="hdlist2">
+<p style="margin-top: 0;">
+definition
+</p>
+</td>
+</tr>
+</table></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+term
+</dt>
+<dd>
+<p>
+definition
+</p>
+</dd>
+</dl></div>
+<div class="paragraph"><p><a href="#link1">[link1]</a></p></div>
+<div class="paragraph"><p><a href="#link1"></a></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_role_attribute">role attribute</h2>
+<div class="sectionbody">
+<div class="paragraph test"><p>Paragraph with a role attribute.</p></div>
+<div class="ulist test"><ul>
+<li>
+<p>
+first
+</p>
+</li>
+<li>
+<p>
+second
+</p>
+</li>
+<li>
+<p>
+third
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_break_list_nesting">Break list nesting</h2>
+<div class="sectionbody">
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+List 1.
+</p>
+</li>
+<li>
+<p>
+List 1.
+</p>
+</li>
+</ol></div>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+List 2.
+</p>
+</li>
+<li>
+<p>
+List 2.
+</p>
+</li>
+</ol></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_listing_blocks">Listing Blocks</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre><code>$ ls <strong>-al</strong></code></pre>
+</div></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>[subs="quotes"]
+------------------------------------------
+$ ls *-al*
+------------------------------------------</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Listing</div>
+<div class="content">
+<pre><code>$ ls -al</code></pre>
+</div></div>
+<div class="exampleblock">
+<div class="title">Example 1. Listing example</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre><code>$ ls -al</code></pre>
+</div></div>
+</div></div>
+<div class="listingblock">
+<div class="title">Python paragraph</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="listingblock">
+<div class="title">Titled Python listing</div>
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+<div class="exampleblock">
+<div class="title">Example 2. Python listing example</div>
+<div class="content">
+<div class="listingblock">
+<div class="content"><!-- Generator: GNU source-highlight
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF">if</span></span> n <span style="color: #990000">&lt;</span> <span style="color: #993399">0</span><span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">print</span></span> <span style="color: #FF0000">'Hello World!'</span></tt></pre></div></div>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="X1">Links</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An <a id="X2"></a> inline anchor.
+An <a id="X3"></a> inline anchor with reftext.</p></div>
+<div class="paragraph"><p><a href="#X1">[X1]</a>; captioned link to <a href="#X1">this test case</a>.</p></div>
+<div class="paragraph"><p><a href="#X2">[X2]</a> link to inline anchor; captioned link to <a href="#X2">inline anchor</a>.</p></div>
+<div class="paragraph"><p>Link to <a href="#X3">[X3]</a> anchor.</p></div>
+<div class="paragraph"><p>An example link to a bibliography entry <a href="#Test::Unit">[Test::Unit]</a>.</p></div>
+<div class="hdlist"><table>
+<tr>
+<td class="hdlist1">
+<a id="Test::Unit"></a>[Test::Unit]
+<br />
+</td>
+<td class="hdlist2">
+<p style="margin-top: 0;">
+<a href="http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html">http://ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html</a>
+</p>
+</td>
+</tr>
+</table></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_titles">Titles</h2>
+<div class="sectionbody">
+<h5 id="_level_4" class="float">Level 4</h5>
+<h4 id="_level_3" class="float">Level 3</h4>
+<h3 id="_level_2" class="float">Level 2</h3>
+<h2 id="_level_1" class="float">Level 1</h2>
+<h5 id="_level_4_2" class="float">Level 4</h5>
+<h4 id="_level_3_2" class="float">Level 3</h4>
+<h3 id="_level_2_2" class="float">Level 2</h3>
+<h2 id="_level_1_2" class="float">Level 1</h2>
+<div class="paragraph"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_lists">Lists</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Bulleted:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+item text
+</p>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+</ul></div>
+<div class="paragraph"><p>Numbered:</p></div>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+loweralpha numbering
+</p>
+<div class="olist upperalpha"><ol class="upperalpha">
+<li>
+<p>
+upperalpha numbering
+</p>
+<div class="olist lowerroman"><ol class="lowerroman">
+<li>
+<p>
+lowerroman numbering
+</p>
+<div class="olist upperroman"><ol class="upperroman">
+<li>
+<p>
+upperroman numbering
+</p>
+<div class="olist arabic"><ol class="arabic">
+<li>
+<p>
+arabic (decimal) numbering
+</p>
+<div class="olist loweralpha"><ol class="loweralpha">
+<li>
+<p>
+loweralpha numbering
+</p>
+<div class="olist lowerroman"><ol class="lowerroman">
+<li>
+<p>
+lowerroman numbering
+</p>
+<div class="olist upperalpha"><ol class="upperalpha">
+<li>
+<p>
+upperalpha numbering
+</p>
+<div class="olist upperroman"><ol class="upperroman">
+<li>
+<p>
+upperroman numbering
+</p>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+</li>
+</ol></div>
+<div class="paragraph"><p>Labeled:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+label
+</dt>
+<dd>
+<p>
+item text
+</p>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+</dd>
+</dl></div>
+<div class="paragraph"><p>With item anchor:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+one
+</dt>
+<dd>
+<p>
+Item one.
+</p>
+</dd>
+<dt class="hdlist1">
+<a id="item_two"></a>two
+</dt>
+<dd>
+<p>
+Item two.
+</p>
+</dd>
+<dt class="hdlist1">
+three
+</dt>
+<dd>
+<p>
+Item three.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_inline_passthroughs">Inline passthroughs</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+Test `ABC`.
+</p>
+</li>
+<li>
+<p>
+Test <code>ABC</code>.
+</p>
+</li>
+<li>
+<p>
+The <code>++i</code> and <code>++j</code> auto-increments.
+</p>
+</li>
+<li>
+<p>
+Paths <code>~/.vim</code> and <code>~/docs</code>.
+</p>
+</li>
+<li>
+<p>
+The <code>__init__</code> method.
+</p>
+</li>
+<li>
+<p>
+The <code>{id}</code> attribute.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>List start number test:</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_images">Images</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_block_images">Block images</h3>
+<div class="imageblock" id="tiger_image">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tyger tyger" />
+</div>
+<div class="title">Figure 1. Tyger tyger</div>
+</div>
+<div class="imageblock" style="text-align:center;">
+<div class="content">
+<img src="../../images/tiger.png" alt="Tiger" width="350" height="250" />
+</div>
+<div class="title">Figure 2: Tyger tyger two</div>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../../doc/music2.png" alt="music2.png" />
+</div>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/note.png" alt="Note" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="paragraph"><p><span class="image">
+<img alt="NEW"
+src="data:image/png;base64,
+iVBORw0KGgoAAAANSUhEUgAAABsAAAARCAYAAAAsT9czAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
+/wD/oL2nkwAAAAlwSFlzAAAOwgAADsIBFShKgAAAAAd0SU1FB9kEGQU1DxUxRF4AAACkSURBVDjL
+3VXbCoAgDD2Wwf7/awcR9mRM23QSWDQQ5i5tZxcLKSXMogUT6bvBjmNLLV1LDwBB61nttK570GSt
+BKQ+81ewXlZPKAdbagEAEJXG+U5UHs3WkgFAtMpFBDDfHTSZB1VzQJjtrEfkJrK6b1pADZm0kbxE
+5Rr9XtmynrnkteSjZ4csFJ7+vTb60buosv4jS999QeqPao6yPF6f8NtfzAno2HZ/Qe1mTQAAAABJ
+RU5ErkJggg==" />
+</span> <em>testing</em> <code>123</code>.</p></div>
+</div>
+<div class="sect2">
+<h3 id="_inline_images">Inline images</h3>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="smallnew.png" />
+</span></p></div>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="NEW!" />
+</span></p></div>
+<div class="paragraph"><p>Inline image <span class="image">
+<img src="../../images/smallnew.png" alt="NEW!" title="Small new" />
+</span></p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_admonishments">Admonishments</h2>
+<div class="sectionbody">
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Warning</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Caution</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Important</div>
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/note.png" alt="Note" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/tip.png" alt="Tip" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/warning.png" alt="Warning" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/caution.png" alt="Caution" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../../images/icons/important.png" alt="Important" />
+</td>
+<td class="content">Lorum ipsum.</td>
+</tr></table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_backslash_escapes">Backslash escapes</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">Apostrophe</div><p>Don&#8217;t vs don't.</p></div>
+<div class="paragraph"><div class="title">Exceptions</div><p>There are a number of exceptions to the usual single backslash rule&#8201;&#8212;&#8201;mostly relating to URL macros that have two syntaxes or quoting
+ambiguity. Here are some non-standard escape examples:</p></div>
+<div class="tableblock">
+<table rules="all"
+width="40%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="50%" />
+<col width="50%" />
+<thead>
+<tr>
+<th align="left" valign="top">AsciiDoc </th>
+<th align="left" valign="top"> Renders</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><div class="literal"><pre><code>\joe.bloggs@example.com
+&lt;\joe.bloggs@example.com&gt;
+\mailto:[\joe.bloggs@example.com]</code></pre></div></td>
+<td align="left" valign="top"><div class="verse">joe.bloggs@example.com
+&lt;joe.bloggs@example.com&gt;
+mailto:[joe.bloggs@example.com]</div></td>
+</tr>
+<tr>
+<td align="left" valign="top"><div class="literal"><pre><code>\http://www.example.com
+\\http://www.example.com[]
+\\http://www.example.com[Foobar Limited]</code></pre></div></td>
+<td align="left" valign="top"><div class="verse">http://www.example.com
+http://www.example.com[]
+http://www.example.com[Foobar Limited]</div></td>
+</tr>
+<tr>
+<td align="left" valign="top"><div class="literal"><pre><code>A C\++ Library for C++
+\\``double-quotes''
+\*\*F**ile Open\...</code></pre></div></td>
+<td align="left" valign="top"><div class="verse">A C++ Library for C++
+``double-quotes''
+**F**ile Open...</div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_paragraphs">Paragraphs</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">Normal paragraph</div><p>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</p></div>
+<div class="literalblock">
+<div class="title">Literal paragraph</div>
+<div class="content">
+<pre><code>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</code></pre>
+</div></div>
+<div class="verseblock">
+<div class="title">Verse paragraph</div>
+<pre class="content">This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</pre>
+<div class="attribution">
+</div></div>
+<div class="literalblock">
+<div class="title">Indented (literal) paragraph</div>
+<div class="content">
+<pre><code>This is a *bold* a line
+This is a 'strong' line
+This is another _strong_ line</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="title">Indented with quotes substitution</div>
+<div class="content">
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="title">Literal paragraph with quotes substitution</div>
+<div class="content">
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+</div></div>
+<div class="paragraph"><div class="title">Monospaced paragraph with line breaks</div><p><code>This is a <strong>bold</strong> line</code><br />
+<code>This is a <em>strong</em> line</code><br />
+<code>This is another <em>strong</em> line</code></p></div>
+<div class="paragraph"><div class="title">Another monospaced paragraph with line breaks</div><p><code>This is a <strong>bold</strong> a line<br />
+This is a <em>strong</em> line<br />
+This is another <em>strong</em> line</code></p></div>
+<div class="literalblock">
+<div class="title">Literal block with quotes substitution</div>
+<div class="content">
+<pre><code>This is a <strong>bold</strong> a line
+This is a <em>strong</em> line
+This is another <em>strong</em> line</code></pre>
+</div></div>
+<div class="verseblock">
+<pre class="content">To see a world in a grain of sand,
+And a heaven in a wild flower,
+Hold infinity in the palm of your hand,
+And eternity in an hour.</pre>
+<div class="attribution">
+<em>from Auguries of Innocence</em><br />
+&#8212; William Blake
+</div></div>
+<div class="quoteblock">
+<div class="content">A good notation has subtlety and suggestiveness which at times makes
+it almost seem like a live teacher.</div>
+<div class="attribution">
+<em>The World of Mathematics (1956)</em><br />
+&#8212; Bertrand Russell
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_urls">URLs</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_mail_addresses">Mail Addresses</h3>
+<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com_">joe_bloggs@mail_server.com_</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>.</p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,<a href="mailto:joe-bloggs@mail-server.com">joe-bloggs@mail-server.com</a>,</p></div>
+<div class="paragraph"><p><a href="mailto:joe-bloggs@mail-server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe_bloggs@mail_server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">Mail</a></p></div>
+<div class="paragraph"><p><a href="mailto:joe.bloggs@mail.server.com">joe.bloggs@mail.server.com</a><br />
+lorum ipsum.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_comments">Comments</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
+<p><span class="comment"> This comment line will be displayed in the output.</span></p>
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis.
+<br /><span class="comment"> Visible inline comment line.</span><br />
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et.</p></div>
+<div class="paragraph" id="comment_macro"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+<div class="paragraph" id="comment_block"><div class="title">Block title</div><p>Lorum ipsum.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_index_terms">Index Terms</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Test 1 test1.</p></div>
+<div class="paragraph"><p>Test 2 .</p></div>
+<div class="paragraph"><p>Test 3 .</p></div>
+<div class="paragraph"><p>Test 4 .</p></div>
+<div class="paragraph"><p>Test 5 test5.</p></div>
+<div class="paragraph"><p>Test 6 .</p></div>
+<div class="paragraph"><p>Test 7 .</p></div>
+<div class="paragraph"><p>Test 8 .</p></div>
+<div class="paragraph"><p>Multi-passthough substitution (see
+<a href="http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c">http://groups.google.com/group/asciidoc/browse_frm/thread/1269dc2feb1a482c</a>)
+<code>foo</code></p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_with_fractional_column_width_units">Table with fractional column width units</h2>
+<div class="sectionbody">
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content"><em>pagewidth</em> and <em>pageunits</em> only apply to DocBook outputs.</td>
+</tr></table>
+</div>
+<div class="tableblock">
+<table rules="all"
+width="50%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 1. Horizontal and vertical source data</caption>
+<col width="17%" />
+<col width="11%" />
+<col width="11%" />
+<col width="58%" />
+<thead>
+<tr>
+<th align="left" valign="top">Date </th>
+<th align="center" valign="top">Duration </th>
+<th align="center" valign="top">Avg HR </th>
+<th align="left" valign="top">Notes</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">10:24</p></td>
+<td align="center" valign="top"><p class="table">157</p></td>
+<td align="left" valign="top"><p class="table">Worked out MSHR (max sustainable heart rate) by going hard
+for this interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">22-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">23:03</p></td>
+<td align="center" valign="top"><p class="table">152</p></td>
+<td align="left" valign="top"><p class="table">Back-to-back with previous interval.</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">24-Aug-08</p></td>
+<td align="center" valign="top"><p class="table">40:00</p></td>
+<td align="center" valign="top"><p class="table">145</p></td>
+<td align="left" valign="top"><p class="table">Moderately hard interspersed with 3x 3min intervals (2min
+hard + 1min really hard taking the HR up to 160).</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_with_parent_configuration_file_and_header_attribute_entry">Table with parent configuration file and header attribute entry</h2>
+<div class="sectionbody">
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="100%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><div><div class="ulist"><ul>
+<li>
+<p>
+Attribute entry from header: TEST_ATTRIBUTE
+</p>
+</li>
+<li>
+<p>
+Replacement from <code>testcases.conf</code> configuration file: TEST_REPLACEMENT
+</p>
+</li>
+</ul></div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_table_column_specifiers_with_merged_cells">Table column specifiers with merged cells</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>See
+<a href="http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a">http://groups.google.com/group/asciidoc/browse_thread/thread/c9238380a1f2507a</a></p></div>
+<div class="tableblock">
+<table rules="all"
+width="100%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<col width="25%" />
+<tbody>
+<tr>
+<td rowspan="2" align="left" valign="top"><p class="table"><code></code></p></td>
+<td rowspan="2" align="right" valign="top"><p class="table">1- A</p></td>
+<td colspan="2" align="center" valign="top"><p class="table"><strong>2- B</strong></p></td>
+</tr>
+<tr>
+<td align="center" valign="top"><p class="table"><strong>i- a</strong></p></td>
+<td align="center" valign="top"><p class="table"><em>ii- b</em></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><code>Values 1</code></p></td>
+<td align="right" valign="top"><p class="table">v1</p></td>
+<td align="center" valign="top"><p class="table"><strong>v2</strong></p></td>
+<td align="center" valign="top"><p class="table"><em>v3</em></p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table"><code>Values 2</code></p></td>
+<td align="right" valign="top"><p class="table">v4</p></td>
+<td align="center" valign="top"><p class="table"><strong>v5</strong></p></td>
+<td align="center" valign="top"><p class="table"><em>v6</em></p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_floating_tables_and_images">Floating tables and images</h2>
+<div class="sectionbody">
+<div class="tableblock">
+<table rules="all"
+style="float:left;"
+width="15%"
+frame="border"
+cellspacing="0" cellpadding="4">
+<caption class="title">Table 2. Simple table</caption>
+<col width="33%" />
+<col width="33%" />
+<col width="33%" />
+<tbody>
+<tr>
+<td align="left" valign="top"><p class="table">1</p></td>
+<td align="left" valign="top"><p class="table">2</p></td>
+<td align="left" valign="top"><p class="table">A</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">3</p></td>
+<td align="left" valign="top"><p class="table">4</p></td>
+<td align="left" valign="top"><p class="table">B</p></td>
+</tr>
+<tr>
+<td align="left" valign="top"><p class="table">5</p></td>
+<td align="left" valign="top"><p class="table">6</p></td>
+<td align="left" valign="top"><p class="table">C</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="imageblock" style="float:right;">
+<div class="content">
+<img src="../../images/images/tiger.png" alt="Tiger image" />
+</div>
+<div class="title">Figure 2. Tiger</div>
+</div>
+<div style="clear:both;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_level_offsets">Section level offsets</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>At level 1</p></div>
+<div class="sect2">
+<h3 id="_section_title">Section title</h3>
+<div class="paragraph"><p>At level 2</p></div>
+</div>
+<div class="sect2">
+<h3 id="_section_title_2">Section title</h3>
+<div class="paragraph"><p>At level 2</p></div>
+<div class="sect3">
+<h4 id="_section_title_3">Section title</h4>
+<div class="paragraph"><p>At level 3</p></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_level_offsets_2">Section level offsets</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>At level 1</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_single_quoted_attributes">Single-quoted attributes</h2>
+<div class="sectionbody">
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p></div>
+</div>
+<div class="attribution">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</div></div>
+<div class="quoteblock">
+<div class="content">
+<div class="paragraph"><p>Sir, a woman&#8217;s preaching is like a dog&#8217;s walking on his hind legs. It
+is not done well; but you are surprised to find it done at all.</p></div>
+</div>
+<div class="attribution">
+&#8212; <a href="http://en.wikipedia.org/wiki/Samuel_Johnson">Samuel Johnson</a>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_footnotes">Footnotes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br />[footnote one.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br /></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote" id="_footnote_F2"><br />[footnote two. Qui in magna commodo, est labitur dolorum an. Est ne magna primis adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.]<br /></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel
+<span class="footnoteref"><br /><a href="#_footnote_F2">[F2]</a><br /></span>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br />[<a href="https://asciidoc.org/">https://asciidoc.org/</a> Qui in magna commodo,
+est labitur dolorum an. Est ne magna primis adolescens. Sit munere
+ponderum dignissim et. Minim luptatum et vel
+<span class="image">
+<img src="../../images/images/smallnew.png" alt="images/smallnew.png" />
+</span>]<br /></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et vel.
+<span class="footnote"><br />[<a href="https://asciidoc.org/">https://asciidoc.org/</a>]<br /></span>
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+vel <span class="footnote"><br />[<a href="https://asciidoc.org/">AsciiDoc website</a>.]<br /></span>.
+Qui in magna commodo, est labitur dolorum an. Est ne magna primis
+adolescens. Sit munere ponderum dignissim et. Minim luptatum et
+<span class="footnote" id="_footnote_F3"><br />[A footnote&#44; &#34;with an image&#34; <span class="image"> <img src="../../images/images/smallnew.png" alt="images/smallnew.png" /> </span>]<br /></span>.
+<span class="footnote"><br />[With [square brackets]]<br /></span> Qui in magna commodo, est labitur
+dolorum an. Est ne magna primis.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_rulers_and_page_breaks">Rulers and page breaks</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<hr />
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div style="page-break-after:always"></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_这是一个测试">这是一个测试</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Double-with character titles.
+<a href="#_这是一个测试">link to auto-generated section ID</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_block_macros">Block macros</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>RS458 is 2.</p></div>
+</div>
+</div>
+<div class="paragraph"><p>Template line 1.
+Template line 2.</p></div>
+<div class="sect1">
+<h2 id="_an_id_without_accents">àn îd without accénts</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_àn_îd_with_accénts">àn îd with accénts</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_inline_macros">Inline macros</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><a href="http://groups.google.com/group/asciidoc/">A URL with [square
+brackets]</a>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_equation">Equation</h2>
+<div class="sectionbody">
+<div class="mathblock">
+<div class="content">
+<div class="title">Equation</div>
+\[C = \alpha + \beta Y^{\gamma} + \epsilon\]
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">Example</h2>
+<div class="sectionbody">
+Formal figures, tables, equations and examples can float in docbook backend
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/utf8-bom-test-docbook.xml b/tests/data/utf8-bom-test-docbook.xml
index 094bedd..437b1f0 100644
--- a/tests/data/utf8-bom-test-docbook.xml
+++ b/tests/data/utf8-bom-test-docbook.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>UTF-8 BOM Test</title>
-</articleinfo>
-<simpara>Include file with UTF-8 BOM:</simpara>
-<section id="_utf_8_bom_test">
-<title>UTF-8 BOM Test</title>
-<simpara>Include file with UTF-8 BOM:</simpara>
-<simpara>include::utf8-bom-test.txt[depth=1]</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>UTF-8 BOM Test</title>
+</articleinfo>
+<simpara>Include file with UTF-8 BOM:</simpara>
+<section id="_utf_8_bom_test">
+<title>UTF-8 BOM Test</title>
+<simpara>Include file with UTF-8 BOM:</simpara>
+<simpara>include::utf8-bom-test.txt[depth=1]</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+</article>
diff --git a/tests/data/utf8-bom-test-docbook5.xml b/tests/data/utf8-bom-test-docbook5.xml
index d594fba..7974200 100644
--- a/tests/data/utf8-bom-test-docbook5.xml
+++ b/tests/data/utf8-bom-test-docbook5.xml
@@ -1,17 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>UTF-8 BOM Test</title>
-</info>
-<simpara>Include file with UTF-8 BOM:</simpara>
-<section xml:id="_utf_8_bom_test">
-<title>UTF-8 BOM Test</title>
-<simpara>Include file with UTF-8 BOM:</simpara>
-<simpara>include::utf8-bom-test.txt[depth=1]</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-<simpara>Lorum ipsum&#8230;</simpara>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>UTF-8 BOM Test</title>
+</info>
+<simpara>Include file with UTF-8 BOM:</simpara>
+<section xml:id="_utf_8_bom_test">
+<title>UTF-8 BOM Test</title>
+<simpara>Include file with UTF-8 BOM:</simpara>
+<simpara>include::utf8-bom-test.txt[depth=1]</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+<simpara>Lorum ipsum&#8230;</simpara>
+</section>
+</article>
diff --git a/tests/data/utf8-bom-test-html4.html b/tests/data/utf8-bom-test-html4.html
index 9626743..6aeee3c 100644
--- a/tests/data/utf8-bom-test-html4.html
+++ b/tests/data/utf8-bom-test-html4.html
@@ -1,27 +1,27 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>UTF-8 BOM Test</title>
-</head>
-<body>
-<h1>UTF-8 BOM Test</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p>Include file with UTF-8 BOM:</p>
-<hr>
-<h2><a name="_utf_8_bom_test"></a>UTF-8 BOM Test</h2>
-<p>Include file with UTF-8 BOM:</p>
-<p>include::utf8-bom-test.txt[depth=1]</p>
-<p>Lorum ipsum&#8230;</p>
-<p>Lorum ipsum&#8230;</p>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>UTF-8 BOM Test</title>
+</head>
+<body>
+<h1>UTF-8 BOM Test</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p>Include file with UTF-8 BOM:</p>
+<hr>
+<h2><a name="_utf_8_bom_test"></a>UTF-8 BOM Test</h2>
+<p>Include file with UTF-8 BOM:</p>
+<p>include::utf8-bom-test.txt[depth=1]</p>
+<p>Lorum ipsum&#8230;</p>
+<p>Lorum ipsum&#8230;</p>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/utf8-bom-test-html5.html b/tests/data/utf8-bom-test-html5.html
index 13d5218..8b93d63 100644
--- a/tests/data/utf8-bom-test-html5.html
+++ b/tests/data/utf8-bom-test-html5.html
@@ -1,761 +1,761 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>UTF-8 BOM Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>UTF-8 BOM Test</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_utf_8_bom_test">UTF-8 BOM Test</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
-<div class="paragraph"><p>include::utf8-bom-test.txt[depth=1]</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>UTF-8 BOM Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>UTF-8 BOM Test</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_utf_8_bom_test">UTF-8 BOM Test</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
+<div class="paragraph"><p>include::utf8-bom-test.txt[depth=1]</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/utf8-bom-test-xhtml11.html b/tests/data/utf8-bom-test-xhtml11.html
index 8c00ad1..22f247a 100644
--- a/tests/data/utf8-bom-test-xhtml11.html
+++ b/tests/data/utf8-bom-test-xhtml11.html
@@ -1,763 +1,763 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>UTF-8 BOM Test</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>UTF-8 BOM Test</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_utf_8_bom_test">UTF-8 BOM Test</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
-<div class="paragraph"><p>include::utf8-bom-test.txt[depth=1]</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>UTF-8 BOM Test</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>UTF-8 BOM Test</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_utf_8_bom_test">UTF-8 BOM Test</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Include file with UTF-8 BOM:</p></div>
+<div class="paragraph"><p>include::utf8-bom-test.txt[depth=1]</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+<div class="paragraph"><p>Lorum ipsum&#8230;</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/utf8-examples-docbook.xml b/tests/data/utf8-examples-docbook.xml
index 6e5e989..5548100 100644
--- a/tests/data/utf8-examples-docbook.xml
+++ b/tests/data/utf8-examples-docbook.xml
@@ -1,226 +1,226 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article lang="en">
-<articleinfo>
- <title>UTF-8 encoded sample plain-text file</title>
-</articleinfo>
-<simpara>Markus Kuhn [ˈmaʳkʊs kuːn] <ulink url="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</ulink> — 2002-07-25</simpara>
-<simpara>The ASCII compatible UTF-8 encoding used in this plain-text file
-is defined in Unicode, ISO 10646-1, and RFC 2279.</simpara>
-<simpara>Using Unicode/UTF-8, you can write in emails and source code things such as</simpara>
-<section id="_mathematics_and_sciences">
-<title>Mathematics and sciences</title>
-<literallayout class="monospaced">∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
- ⎪⎢⎜│a²+b³ ⎟⎥⎪
-∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
- ⎪⎢⎜⎷ c₈ ⎟⎥⎪
-ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
- ⎪⎢⎜ ∞ ⎟⎥⎪
-⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
- ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
-2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</literallayout>
-</section>
-<section id="_linguistics_and_dictionaries">
-<title>Linguistics and dictionaries</title>
-<simpara>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<?asciidoc-br?>
-Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</simpara>
-</section>
-<section id="_apl">
-<title>APL</title>
-<literallayout class="monospaced">((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</literallayout>
-</section>
-<section id="_nicer_typography_in_plain_text_files">
-<title>Nicer typography in plain text files</title>
-<itemizedlist>
-<listitem>
-<simpara>
-‘single’ and “double” quotes
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Curly apostrophes: “We’ve been here”
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-‚deutsche‘ „Anführungszeichen“
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-ASCII safety test: 1lI|, 0OD, 8B
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-the euro symbol: 14.95 €
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section id="_combining_characters">
-<title>Combining characters</title>
-<simpara>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</simpara>
-</section>
-<section id="_greek_in_polytonic">
-<title>Greek (in Polytonic)</title>
-<blockquote>
-<attribution>
-The Greek anthem
-</attribution>
-<literallayout>Σὲ γνωρίζω ἀπὸ τὴν κόψη
-τοῦ σπαθιοῦ τὴν τρομερή,
-σὲ γνωρίζω ἀπὸ τὴν ὄψη
-ποὺ μὲ βία μετράει τὴ γῆ.
-
-᾿Απ᾿ τὰ κόκκαλα βγαλμένη
-τῶν ῾Ελλήνων τὰ ἱερά
-καὶ σὰν πρῶτα ἀνδρειωμένη
-χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</literallayout>
-</blockquote>
-<blockquote>
-<attribution>
-From a speech of Demosthenes in the 4th century BC
-</attribution>
-<literallayout>Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
-ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
-λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
-τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
-εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
-πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
-οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
-οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
-ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
-τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
-γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
-προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
-σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
-τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
-τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
-τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
-
-Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</literallayout>
-</blockquote>
-</section>
-<section id="_georgian">
-<title>Georgian:</title>
-<formalpara><title>From a Unicode conference invitation</title><para>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
-კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
-ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
-ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
-ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
-ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
-ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</para></formalpara>
-</section>
-<section id="_russian">
-<title>Russian</title>
-<formalpara><title>From a Unicode conference invitation</title><para>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
-Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
-Конференция соберет широкий круг экспертов по вопросам глобального
-Интернета и Unicode, локализации и интернационализации, воплощению и
-применению Unicode в различных операционных системах и программных
-приложениях, шрифтах, верстке и многоязычных компьютерных системах.</para></formalpara>
-</section>
-<section id="_thai_ucs_level_2">
-<title>Thai (UCS Level 2)</title>
-<simpara>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
-classic <emphasis>San Gua</emphasis>):</simpara>
-<literallayout class="monospaced">[----------------------------|------------------------]
- ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
-สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
- ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
-โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
- เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
-ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
- พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
-ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</literallayout>
-<simpara>(The above is a two-column text. If combining characters are handled
-correctly, the lines of the second column should be aligned with the
-| character above.)</simpara>
-</section>
-<section id="_ethiopian">
-<title>Ethiopian</title>
-<blockquote>
-<title>Proverbs in the Amharic language</title>
-<literallayout>ሰማይ አይታረስ ንጉሥ አይከሰስ።
-ብላ ካለኝ እንደአባቴ በቆመጠኝ።
-ጌጥ ያለቤቱ ቁምጥና ነው።
-ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
-የአፍ ወለምታ በቅቤ አይታሽም።
-አይጥ በበላ ዳዋ ተመታ።
-ሲተረጉሙ ይደረግሙ።
-ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
-ድር ቢያብር አንበሳ ያስር።
-ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
-እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
-የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
-ሥራ ከመፍታት ልጄን ላፋታት።
-ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
-የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
-ተንጋሎ ቢተፉ ተመልሶ ባፉ።
-ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
-እግርህን በፍራሽህ ልክ ዘርጋ።</literallayout>
-</blockquote>
-</section>
-<section id="_runes">
-<title>Runes</title>
-<simpara>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</simpara>
-<simpara>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
-bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
-that he lived in the northern land near the Western Sea.&#8221;)</simpara>
-</section>
-<section id="_braille">
-<title>Braille</title>
-<literallayout class="monospaced">⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</literallayout>
-<literallayout class="monospaced">⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
-⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
-⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
-⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
-⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
-⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</literallayout>
-<literallayout class="monospaced">⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
-<literallayout class="monospaced">⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
-⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
-⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
-⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
-⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
-⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
-⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
-⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
-⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
-<simpara>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</simpara>
-</section>
-<section id="_compact_font_selection_example_text">
-<title>Compact font selection example text</title>
-<literallayout class="monospaced">ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
-abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
-–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
-∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</literallayout>
-</section>
-<section id="_greetings_in_various_languages">
-<title>Greetings in various languages</title>
-<simpara>Hello world, Καλημέρα κόσμε, コンニチハ</simpara>
-</section>
-<section id="_box_drawing_alignment_tests">
-<title>Box drawing alignment tests</title>
-<screen> █
- ▉
- ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
- ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
- ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
- ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
- ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
- ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
- ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
- ▝▀▘▙▄▟</screen>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article lang="en">
+<articleinfo>
+ <title>UTF-8 encoded sample plain-text file</title>
+</articleinfo>
+<simpara>Markus Kuhn [ˈmaʳkʊs kuːn] <ulink url="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</ulink> — 2002-07-25</simpara>
+<simpara>The ASCII compatible UTF-8 encoding used in this plain-text file
+is defined in Unicode, ISO 10646-1, and RFC 2279.</simpara>
+<simpara>Using Unicode/UTF-8, you can write in emails and source code things such as</simpara>
+<section id="_mathematics_and_sciences">
+<title>Mathematics and sciences</title>
+<literallayout class="monospaced">∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
+ ⎪⎢⎜│a²+b³ ⎟⎥⎪
+∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
+ ⎪⎢⎜⎷ c₈ ⎟⎥⎪
+ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
+ ⎪⎢⎜ ∞ ⎟⎥⎪
+⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
+ ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
+2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</literallayout>
+</section>
+<section id="_linguistics_and_dictionaries">
+<title>Linguistics and dictionaries</title>
+<simpara>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<?asciidoc-br?>
+Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</simpara>
+</section>
+<section id="_apl">
+<title>APL</title>
+<literallayout class="monospaced">((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</literallayout>
+</section>
+<section id="_nicer_typography_in_plain_text_files">
+<title>Nicer typography in plain text files</title>
+<itemizedlist>
+<listitem>
+<simpara>
+‘single’ and “double” quotes
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Curly apostrophes: “We’ve been here”
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+‚deutsche‘ „Anführungszeichen“
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+ASCII safety test: 1lI|, 0OD, 8B
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+the euro symbol: 14.95 €
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section id="_combining_characters">
+<title>Combining characters</title>
+<simpara>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</simpara>
+</section>
+<section id="_greek_in_polytonic">
+<title>Greek (in Polytonic)</title>
+<blockquote>
+<attribution>
+The Greek anthem
+</attribution>
+<literallayout>Σὲ γνωρίζω ἀπὸ τὴν κόψη
+τοῦ σπαθιοῦ τὴν τρομερή,
+σὲ γνωρίζω ἀπὸ τὴν ὄψη
+ποὺ μὲ βία μετράει τὴ γῆ.
+
+᾿Απ᾿ τὰ κόκκαλα βγαλμένη
+τῶν ῾Ελλήνων τὰ ἱερά
+καὶ σὰν πρῶτα ἀνδρειωμένη
+χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</literallayout>
+</blockquote>
+<blockquote>
+<attribution>
+From a speech of Demosthenes in the 4th century BC
+</attribution>
+<literallayout>Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
+ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
+λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
+τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
+εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
+πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
+οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
+οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
+ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
+τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
+γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
+προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
+σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
+τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
+τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
+τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
+
+Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</literallayout>
+</blockquote>
+</section>
+<section id="_georgian">
+<title>Georgian:</title>
+<formalpara><title>From a Unicode conference invitation</title><para>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
+ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
+ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
+ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
+ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
+ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</para></formalpara>
+</section>
+<section id="_russian">
+<title>Russian</title>
+<formalpara><title>From a Unicode conference invitation</title><para>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
+Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
+Конференция соберет широкий круг экспертов по вопросам глобального
+Интернета и Unicode, локализации и интернационализации, воплощению и
+применению Unicode в различных операционных системах и программных
+приложениях, шрифтах, верстке и многоязычных компьютерных системах.</para></formalpara>
+</section>
+<section id="_thai_ucs_level_2">
+<title>Thai (UCS Level 2)</title>
+<simpara>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
+classic <emphasis>San Gua</emphasis>):</simpara>
+<literallayout class="monospaced">[----------------------------|------------------------]
+ ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
+สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
+ ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
+โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
+ เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
+ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
+ พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
+ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</literallayout>
+<simpara>(The above is a two-column text. If combining characters are handled
+correctly, the lines of the second column should be aligned with the
+| character above.)</simpara>
+</section>
+<section id="_ethiopian">
+<title>Ethiopian</title>
+<blockquote>
+<title>Proverbs in the Amharic language</title>
+<literallayout>ሰማይ አይታረስ ንጉሥ አይከሰስ።
+ብላ ካለኝ እንደአባቴ በቆመጠኝ።
+ጌጥ ያለቤቱ ቁምጥና ነው።
+ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
+የአፍ ወለምታ በቅቤ አይታሽም።
+አይጥ በበላ ዳዋ ተመታ።
+ሲተረጉሙ ይደረግሙ።
+ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
+ድር ቢያብር አንበሳ ያስር።
+ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
+እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
+የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
+ሥራ ከመፍታት ልጄን ላፋታት።
+ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
+የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
+ተንጋሎ ቢተፉ ተመልሶ ባፉ።
+ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
+እግርህን በፍራሽህ ልክ ዘርጋ።</literallayout>
+</blockquote>
+</section>
+<section id="_runes">
+<title>Runes</title>
+<simpara>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</simpara>
+<simpara>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
+bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
+that he lived in the northern land near the Western Sea.&#8221;)</simpara>
+</section>
+<section id="_braille">
+<title>Braille</title>
+<literallayout class="monospaced">⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</literallayout>
+<literallayout class="monospaced">⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
+⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
+⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
+⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
+⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
+⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</literallayout>
+<literallayout class="monospaced">⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
+<literallayout class="monospaced">⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
+⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
+⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
+⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
+⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
+⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
+⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
+⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
+⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
+<simpara>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</simpara>
+</section>
+<section id="_compact_font_selection_example_text">
+<title>Compact font selection example text</title>
+<literallayout class="monospaced">ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
+abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
+–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
+∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</literallayout>
+</section>
+<section id="_greetings_in_various_languages">
+<title>Greetings in various languages</title>
+<simpara>Hello world, Καλημέρα κόσμε, コンニチハ</simpara>
+</section>
+<section id="_box_drawing_alignment_tests">
+<title>Box drawing alignment tests</title>
+<screen> █
+ ▉
+ ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
+ ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
+ ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
+ ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
+ ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
+ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
+ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
+ ▝▀▘▙▄▟</screen>
+</section>
+</article>
diff --git a/tests/data/utf8-examples-docbook5.xml b/tests/data/utf8-examples-docbook5.xml
index a3972a9..1207d46 100644
--- a/tests/data/utf8-examples-docbook5.xml
+++ b/tests/data/utf8-examples-docbook5.xml
@@ -1,225 +1,225 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?asciidoc-toc?>
-<?asciidoc-numbered?>
-
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
-<info>
- <title>UTF-8 encoded sample plain-text file</title>
-</info>
-<simpara>Markus Kuhn [ˈmaʳkʊs kuːn] <link xlink:href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</link> — 2002-07-25</simpara>
-<simpara>The ASCII compatible UTF-8 encoding used in this plain-text file
-is defined in Unicode, ISO 10646-1, and RFC 2279.</simpara>
-<simpara>Using Unicode/UTF-8, you can write in emails and source code things such as</simpara>
-<section xml:id="_mathematics_and_sciences">
-<title>Mathematics and sciences</title>
-<literallayout class="monospaced">∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
- ⎪⎢⎜│a²+b³ ⎟⎥⎪
-∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
- ⎪⎢⎜⎷ c₈ ⎟⎥⎪
-ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
- ⎪⎢⎜ ∞ ⎟⎥⎪
-⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
- ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
-2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</literallayout>
-</section>
-<section xml:id="_linguistics_and_dictionaries">
-<title>Linguistics and dictionaries</title>
-<simpara>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<?asciidoc-br?>
-Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</simpara>
-</section>
-<section xml:id="_apl">
-<title>APL</title>
-<literallayout class="monospaced">((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</literallayout>
-</section>
-<section xml:id="_nicer_typography_in_plain_text_files">
-<title>Nicer typography in plain text files</title>
-<itemizedlist>
-<listitem>
-<simpara>
-‘single’ and “double” quotes
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-Curly apostrophes: “We’ve been here”
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-‚deutsche‘ „Anführungszeichen“
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-ASCII safety test: 1lI|, 0OD, 8B
-</simpara>
-</listitem>
-<listitem>
-<simpara>
-the euro symbol: 14.95 €
-</simpara>
-</listitem>
-</itemizedlist>
-</section>
-<section xml:id="_combining_characters">
-<title>Combining characters</title>
-<simpara>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</simpara>
-</section>
-<section xml:id="_greek_in_polytonic">
-<title>Greek (in Polytonic)</title>
-<blockquote>
-<attribution>
-The Greek anthem
-</attribution>
-<literallayout>Σὲ γνωρίζω ἀπὸ τὴν κόψη
-τοῦ σπαθιοῦ τὴν τρομερή,
-σὲ γνωρίζω ἀπὸ τὴν ὄψη
-ποὺ μὲ βία μετράει τὴ γῆ.
-
-᾿Απ᾿ τὰ κόκκαλα βγαλμένη
-τῶν ῾Ελλήνων τὰ ἱερά
-καὶ σὰν πρῶτα ἀνδρειωμένη
-χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</literallayout>
-</blockquote>
-<blockquote>
-<attribution>
-From a speech of Demosthenes in the 4th century BC
-</attribution>
-<literallayout>Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
-ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
-λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
-τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
-εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
-πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
-οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
-οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
-ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
-τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
-γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
-προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
-σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
-τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
-τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
-τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
-
-Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</literallayout>
-</blockquote>
-</section>
-<section xml:id="_georgian">
-<title>Georgian:</title>
-<formalpara><title>From a Unicode conference invitation</title><para>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
-კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
-ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
-ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
-ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
-ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
-ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</para></formalpara>
-</section>
-<section xml:id="_russian">
-<title>Russian</title>
-<formalpara><title>From a Unicode conference invitation</title><para>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
-Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
-Конференция соберет широкий круг экспертов по вопросам глобального
-Интернета и Unicode, локализации и интернационализации, воплощению и
-применению Unicode в различных операционных системах и программных
-приложениях, шрифтах, верстке и многоязычных компьютерных системах.</para></formalpara>
-</section>
-<section xml:id="_thai_ucs_level_2">
-<title>Thai (UCS Level 2)</title>
-<simpara>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
-classic <emphasis>San Gua</emphasis>):</simpara>
-<literallayout class="monospaced">[----------------------------|------------------------]
- ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
-สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
- ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
-โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
- เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
-ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
- พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
-ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</literallayout>
-<simpara>(The above is a two-column text. If combining characters are handled
-correctly, the lines of the second column should be aligned with the
-| character above.)</simpara>
-</section>
-<section xml:id="_ethiopian">
-<title>Ethiopian</title>
-<blockquote>
-<title>Proverbs in the Amharic language</title>
-<literallayout>ሰማይ አይታረስ ንጉሥ አይከሰስ።
-ብላ ካለኝ እንደአባቴ በቆመጠኝ።
-ጌጥ ያለቤቱ ቁምጥና ነው።
-ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
-የአፍ ወለምታ በቅቤ አይታሽም።
-አይጥ በበላ ዳዋ ተመታ።
-ሲተረጉሙ ይደረግሙ።
-ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
-ድር ቢያብር አንበሳ ያስር።
-ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
-እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
-የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
-ሥራ ከመፍታት ልጄን ላፋታት።
-ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
-የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
-ተንጋሎ ቢተፉ ተመልሶ ባፉ።
-ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
-እግርህን በፍራሽህ ልክ ዘርጋ።</literallayout>
-</blockquote>
-</section>
-<section xml:id="_runes">
-<title>Runes</title>
-<simpara>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</simpara>
-<simpara>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
-bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
-that he lived in the northern land near the Western Sea.&#8221;)</simpara>
-</section>
-<section xml:id="_braille">
-<title>Braille</title>
-<literallayout class="monospaced">⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</literallayout>
-<literallayout class="monospaced">⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
-⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
-⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
-⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
-⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
-⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</literallayout>
-<literallayout class="monospaced">⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
-<literallayout class="monospaced">⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
-⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
-⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
-⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
-⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
-⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
-⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
-⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
-⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
-<simpara>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</simpara>
-</section>
-<section xml:id="_compact_font_selection_example_text">
-<title>Compact font selection example text</title>
-<literallayout class="monospaced">ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
-abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
-–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
-∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</literallayout>
-</section>
-<section xml:id="_greetings_in_various_languages">
-<title>Greetings in various languages</title>
-<simpara>Hello world, Καλημέρα κόσμε, コンニチハ</simpara>
-</section>
-<section xml:id="_box_drawing_alignment_tests">
-<title>Box drawing alignment tests</title>
-<screen> █
- ▉
- ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
- ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
- ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
- ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
- ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
- ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
- ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
- ▝▀▘▙▄▟</screen>
-</section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<?asciidoc-toc?>
+<?asciidoc-numbered?>
+
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
+<info>
+ <title>UTF-8 encoded sample plain-text file</title>
+</info>
+<simpara>Markus Kuhn [ˈmaʳkʊs kuːn] <link xlink:href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</link> — 2002-07-25</simpara>
+<simpara>The ASCII compatible UTF-8 encoding used in this plain-text file
+is defined in Unicode, ISO 10646-1, and RFC 2279.</simpara>
+<simpara>Using Unicode/UTF-8, you can write in emails and source code things such as</simpara>
+<section xml:id="_mathematics_and_sciences">
+<title>Mathematics and sciences</title>
+<literallayout class="monospaced">∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
+ ⎪⎢⎜│a²+b³ ⎟⎥⎪
+∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
+ ⎪⎢⎜⎷ c₈ ⎟⎥⎪
+ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
+ ⎪⎢⎜ ∞ ⎟⎥⎪
+⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
+ ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
+2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</literallayout>
+</section>
+<section xml:id="_linguistics_and_dictionaries">
+<title>Linguistics and dictionaries</title>
+<simpara>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<?asciidoc-br?>
+Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</simpara>
+</section>
+<section xml:id="_apl">
+<title>APL</title>
+<literallayout class="monospaced">((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</literallayout>
+</section>
+<section xml:id="_nicer_typography_in_plain_text_files">
+<title>Nicer typography in plain text files</title>
+<itemizedlist>
+<listitem>
+<simpara>
+‘single’ and “double” quotes
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+Curly apostrophes: “We’ve been here”
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+‚deutsche‘ „Anführungszeichen“
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+ASCII safety test: 1lI|, 0OD, 8B
+</simpara>
+</listitem>
+<listitem>
+<simpara>
+the euro symbol: 14.95 €
+</simpara>
+</listitem>
+</itemizedlist>
+</section>
+<section xml:id="_combining_characters">
+<title>Combining characters</title>
+<simpara>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</simpara>
+</section>
+<section xml:id="_greek_in_polytonic">
+<title>Greek (in Polytonic)</title>
+<blockquote>
+<attribution>
+The Greek anthem
+</attribution>
+<literallayout>Σὲ γνωρίζω ἀπὸ τὴν κόψη
+τοῦ σπαθιοῦ τὴν τρομερή,
+σὲ γνωρίζω ἀπὸ τὴν ὄψη
+ποὺ μὲ βία μετράει τὴ γῆ.
+
+᾿Απ᾿ τὰ κόκκαλα βγαλμένη
+τῶν ῾Ελλήνων τὰ ἱερά
+καὶ σὰν πρῶτα ἀνδρειωμένη
+χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</literallayout>
+</blockquote>
+<blockquote>
+<attribution>
+From a speech of Demosthenes in the 4th century BC
+</attribution>
+<literallayout>Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
+ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
+λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
+τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
+εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
+πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
+οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
+οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
+ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
+τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
+γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
+προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
+σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
+τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
+τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
+τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
+
+Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</literallayout>
+</blockquote>
+</section>
+<section xml:id="_georgian">
+<title>Georgian:</title>
+<formalpara><title>From a Unicode conference invitation</title><para>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
+ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
+ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
+ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
+ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
+ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</para></formalpara>
+</section>
+<section xml:id="_russian">
+<title>Russian</title>
+<formalpara><title>From a Unicode conference invitation</title><para>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
+Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
+Конференция соберет широкий круг экспертов по вопросам глобального
+Интернета и Unicode, локализации и интернационализации, воплощению и
+применению Unicode в различных операционных системах и программных
+приложениях, шрифтах, верстке и многоязычных компьютерных системах.</para></formalpara>
+</section>
+<section xml:id="_thai_ucs_level_2">
+<title>Thai (UCS Level 2)</title>
+<simpara>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
+classic <emphasis>San Gua</emphasis>):</simpara>
+<literallayout class="monospaced">[----------------------------|------------------------]
+ ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
+สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
+ ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
+โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
+ เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
+ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
+ พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
+ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</literallayout>
+<simpara>(The above is a two-column text. If combining characters are handled
+correctly, the lines of the second column should be aligned with the
+| character above.)</simpara>
+</section>
+<section xml:id="_ethiopian">
+<title>Ethiopian</title>
+<blockquote>
+<title>Proverbs in the Amharic language</title>
+<literallayout>ሰማይ አይታረስ ንጉሥ አይከሰስ።
+ብላ ካለኝ እንደአባቴ በቆመጠኝ።
+ጌጥ ያለቤቱ ቁምጥና ነው።
+ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
+የአፍ ወለምታ በቅቤ አይታሽም።
+አይጥ በበላ ዳዋ ተመታ።
+ሲተረጉሙ ይደረግሙ።
+ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
+ድር ቢያብር አንበሳ ያስር።
+ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
+እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
+የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
+ሥራ ከመፍታት ልጄን ላፋታት።
+ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
+የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
+ተንጋሎ ቢተፉ ተመልሶ ባፉ።
+ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
+እግርህን በፍራሽህ ልክ ዘርጋ።</literallayout>
+</blockquote>
+</section>
+<section xml:id="_runes">
+<title>Runes</title>
+<simpara>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</simpara>
+<simpara>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
+bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
+that he lived in the northern land near the Western Sea.&#8221;)</simpara>
+</section>
+<section xml:id="_braille">
+<title>Braille</title>
+<literallayout class="monospaced">⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</literallayout>
+<literallayout class="monospaced">⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
+⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
+⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
+⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
+⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
+⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</literallayout>
+<literallayout class="monospaced">⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
+<literallayout class="monospaced">⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
+⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
+⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
+⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
+⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
+⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
+⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
+⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
+⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</literallayout>
+<simpara>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</simpara>
+</section>
+<section xml:id="_compact_font_selection_example_text">
+<title>Compact font selection example text</title>
+<literallayout class="monospaced">ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
+abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
+–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
+∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</literallayout>
+</section>
+<section xml:id="_greetings_in_various_languages">
+<title>Greetings in various languages</title>
+<simpara>Hello world, Καλημέρα κόσμε, コンニチハ</simpara>
+</section>
+<section xml:id="_box_drawing_alignment_tests">
+<title>Box drawing alignment tests</title>
+<screen> █
+ ▉
+ ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
+ ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
+ ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
+ ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
+ ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
+ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
+ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
+ ▝▀▘▙▄▟</screen>
+</section>
+</article>
diff --git a/tests/data/utf8-examples-html4.html b/tests/data/utf8-examples-html4.html
index 7b142e7..c39b0e7 100644
--- a/tests/data/utf8-examples-html4.html
+++ b/tests/data/utf8-examples-html4.html
@@ -1,225 +1,225 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>UTF-8 encoded sample plain-text file</title>
-</head>
-<body>
-<h1>UTF-8 encoded sample plain-text file</h1>
-<p>
-</p>
-<a name="preamble"></a>
-<p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p>
-<p>The ASCII compatible UTF-8 encoding used in this plain-text file
-is defined in Unicode, ISO 10646-1, and RFC 2279.</p>
-<p>Using Unicode/UTF-8, you can write in emails and source code things such as</p>
-<hr>
-<h2><a name="_mathematics_and_sciences"></a>Mathematics and sciences</h2>
-<pre><code>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
- ⎪⎢⎜│a²+b³ ⎟⎥⎪
-∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
- ⎪⎢⎜⎷ c₈ ⎟⎥⎪
-ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
- ⎪⎢⎜ ∞ ⎟⎥⎪
-⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
- ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
-2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</code></pre>
-<hr>
-<h2><a name="_linguistics_and_dictionaries"></a>Linguistics and dictionaries</h2>
-<p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br>
-Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p>
-<hr>
-<h2><a name="_apl"></a>APL</h2>
-<pre><code>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</code></pre>
-<hr>
-<h2><a name="_nicer_typography_in_plain_text_files"></a>Nicer typography in plain text files</h2>
-<ul>
-<li>
-<p>
-‘single’ and “double” quotes
-</p>
-</li>
-<li>
-<p>
-Curly apostrophes: “We’ve been here”
-</p>
-</li>
-<li>
-<p>
-‚deutsche‘ „Anführungszeichen“
-</p>
-</li>
-<li>
-<p>
-†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
-</p>
-</li>
-<li>
-<p>
-ASCII safety test: 1lI|, 0OD, 8B
-</p>
-</li>
-<li>
-<p>
-the euro symbol: 14.95 €
-</p>
-</li>
-</ul>
-<hr>
-<h2><a name="_combining_characters"></a>Combining characters</h2>
-<p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p>
-<hr>
-<h2><a name="_greek_in_polytonic"></a>Greek (in Polytonic)</h2>
-<blockquote>
-<pre style="font-family: inherit;">Σὲ γνωρίζω ἀπὸ τὴν κόψη
-τοῦ σπαθιοῦ τὴν τρομερή,
-σὲ γνωρίζω ἀπὸ τὴν ὄψη
-ποὺ μὲ βία μετράει τὴ γῆ.
-
-᾿Απ᾿ τὰ κόκκαλα βγαλμένη
-τῶν ῾Ελλήνων τὰ ἱερά
-καὶ σὰν πρῶτα ἀνδρειωμένη
-χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
-<p align="left">
-&#8212; The Greek anthem
-</p>
-</blockquote>
-<blockquote>
-<pre style="font-family: inherit;">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
-ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
-λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
-τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
-εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
-πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
-οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
-οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
-ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
-τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
-γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
-προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
-σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
-τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
-τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
-τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
-
-Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
-<p align="left">
-&#8212; From a speech of Demosthenes in the 4th century BC
-</p>
-</blockquote>
-<hr>
-<h2><a name="_georgian"></a>Georgian:</h2>
-<p><b>From a Unicode conference invitation</b><br>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
-კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
-ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
-ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
-ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
-ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
-ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p>
-<hr>
-<h2><a name="_russian"></a>Russian</h2>
-<p><b>From a Unicode conference invitation</b><br>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
-Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
-Конференция соберет широкий круг экспертов по вопросам глобального
-Интернета и Unicode, локализации и интернационализации, воплощению и
-применению Unicode в различных операционных системах и программных
-приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p>
-<hr>
-<h2><a name="_thai_ucs_level_2"></a>Thai (UCS Level 2)</h2>
-<p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
-classic <em>San Gua</em>):</p>
-<pre><code>[----------------------------|------------------------]
- ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
-สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
- ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
-โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
- เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
-ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
- พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
-ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</code></pre>
-<p>(The above is a two-column text. If combining characters are handled
-correctly, the lines of the second column should be aligned with the
-| character above.)</p>
-<hr>
-<h2><a name="_ethiopian"></a>Ethiopian</h2>
-<blockquote>
-<p><b>Proverbs in the Amharic language</b></p>
-<pre style="font-family: inherit;">ሰማይ አይታረስ ንጉሥ አይከሰስ።
-ብላ ካለኝ እንደአባቴ በቆመጠኝ።
-ጌጥ ያለቤቱ ቁምጥና ነው።
-ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
-የአፍ ወለምታ በቅቤ አይታሽም።
-አይጥ በበላ ዳዋ ተመታ።
-ሲተረጉሙ ይደረግሙ።
-ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
-ድር ቢያብር አንበሳ ያስር።
-ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
-እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
-የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
-ሥራ ከመፍታት ልጄን ላፋታት።
-ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
-የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
-ተንጋሎ ቢተፉ ተመልሶ ባፉ።
-ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
-እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
-<p align="left">
-</p>
-</blockquote>
-<hr>
-<h2><a name="_runes"></a>Runes</h2>
-<p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p>
-<p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
-bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
-that he lived in the northern land near the Western Sea.&#8221;)</p>
-<hr>
-<h2><a name="_braille"></a>Braille</h2>
-<pre><code>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</code></pre>
-<pre><code>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
-⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
-⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
-⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
-⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
-⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</code></pre>
-<pre><code>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
-<pre><code>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
-⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
-⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
-⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
-⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
-⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
-⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
-⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
-⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
-<p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p>
-<hr>
-<h2><a name="_compact_font_selection_example_text"></a>Compact font selection example text</h2>
-<pre><code>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
-abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
-–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
-∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</code></pre>
-<hr>
-<h2><a name="_greetings_in_various_languages"></a>Greetings in various languages</h2>
-<p>Hello world, Καλημέρα κόσμε, コンニチハ</p>
-<hr>
-<h2><a name="_box_drawing_alignment_tests"></a>Box drawing alignment tests</h2>
-<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
-<pre><code> █
- ▉
- ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
- ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
- ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
- ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
- ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
- ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
- ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
- ▝▀▘▙▄▟</code></pre>
-</td></tr></table>
-<p></p>
-<p></p>
-<hr><p><small>
-Last updated
- 2002-11-25 00:37:42 UTC
-</small></p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>UTF-8 encoded sample plain-text file</title>
+</head>
+<body>
+<h1>UTF-8 encoded sample plain-text file</h1>
+<p>
+</p>
+<a name="preamble"></a>
+<p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p>
+<p>The ASCII compatible UTF-8 encoding used in this plain-text file
+is defined in Unicode, ISO 10646-1, and RFC 2279.</p>
+<p>Using Unicode/UTF-8, you can write in emails and source code things such as</p>
+<hr>
+<h2><a name="_mathematics_and_sciences"></a>Mathematics and sciences</h2>
+<pre><code>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
+ ⎪⎢⎜│a²+b³ ⎟⎥⎪
+∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
+ ⎪⎢⎜⎷ c₈ ⎟⎥⎪
+ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
+ ⎪⎢⎜ ∞ ⎟⎥⎪
+⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
+ ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
+2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</code></pre>
+<hr>
+<h2><a name="_linguistics_and_dictionaries"></a>Linguistics and dictionaries</h2>
+<p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br>
+Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p>
+<hr>
+<h2><a name="_apl"></a>APL</h2>
+<pre><code>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</code></pre>
+<hr>
+<h2><a name="_nicer_typography_in_plain_text_files"></a>Nicer typography in plain text files</h2>
+<ul>
+<li>
+<p>
+‘single’ and “double” quotes
+</p>
+</li>
+<li>
+<p>
+Curly apostrophes: “We’ve been here”
+</p>
+</li>
+<li>
+<p>
+‚deutsche‘ „Anführungszeichen“
+</p>
+</li>
+<li>
+<p>
+†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
+</p>
+</li>
+<li>
+<p>
+ASCII safety test: 1lI|, 0OD, 8B
+</p>
+</li>
+<li>
+<p>
+the euro symbol: 14.95 €
+</p>
+</li>
+</ul>
+<hr>
+<h2><a name="_combining_characters"></a>Combining characters</h2>
+<p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p>
+<hr>
+<h2><a name="_greek_in_polytonic"></a>Greek (in Polytonic)</h2>
+<blockquote>
+<pre style="font-family: inherit;">Σὲ γνωρίζω ἀπὸ τὴν κόψη
+τοῦ σπαθιοῦ τὴν τρομερή,
+σὲ γνωρίζω ἀπὸ τὴν ὄψη
+ποὺ μὲ βία μετράει τὴ γῆ.
+
+᾿Απ᾿ τὰ κόκκαλα βγαλμένη
+τῶν ῾Ελλήνων τὰ ἱερά
+καὶ σὰν πρῶτα ἀνδρειωμένη
+χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
+<p align="left">
+&#8212; The Greek anthem
+</p>
+</blockquote>
+<blockquote>
+<pre style="font-family: inherit;">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
+ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
+λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
+τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
+εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
+πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
+οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
+οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
+ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
+τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
+γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
+προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
+σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
+τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
+τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
+τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
+
+Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
+<p align="left">
+&#8212; From a speech of Demosthenes in the 4th century BC
+</p>
+</blockquote>
+<hr>
+<h2><a name="_georgian"></a>Georgian:</h2>
+<p><b>From a Unicode conference invitation</b><br>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
+ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
+ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
+ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
+ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
+ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p>
+<hr>
+<h2><a name="_russian"></a>Russian</h2>
+<p><b>From a Unicode conference invitation</b><br>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
+Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
+Конференция соберет широкий круг экспертов по вопросам глобального
+Интернета и Unicode, локализации и интернационализации, воплощению и
+применению Unicode в различных операционных системах и программных
+приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p>
+<hr>
+<h2><a name="_thai_ucs_level_2"></a>Thai (UCS Level 2)</h2>
+<p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
+classic <em>San Gua</em>):</p>
+<pre><code>[----------------------------|------------------------]
+ ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
+สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
+ ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
+โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
+ เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
+ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
+ พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
+ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</code></pre>
+<p>(The above is a two-column text. If combining characters are handled
+correctly, the lines of the second column should be aligned with the
+| character above.)</p>
+<hr>
+<h2><a name="_ethiopian"></a>Ethiopian</h2>
+<blockquote>
+<p><b>Proverbs in the Amharic language</b></p>
+<pre style="font-family: inherit;">ሰማይ አይታረስ ንጉሥ አይከሰስ።
+ብላ ካለኝ እንደአባቴ በቆመጠኝ።
+ጌጥ ያለቤቱ ቁምጥና ነው።
+ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
+የአፍ ወለምታ በቅቤ አይታሽም።
+አይጥ በበላ ዳዋ ተመታ።
+ሲተረጉሙ ይደረግሙ።
+ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
+ድር ቢያብር አንበሳ ያስር።
+ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
+እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
+የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
+ሥራ ከመፍታት ልጄን ላፋታት።
+ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
+የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
+ተንጋሎ ቢተፉ ተመልሶ ባፉ።
+ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
+እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
+<p align="left">
+</p>
+</blockquote>
+<hr>
+<h2><a name="_runes"></a>Runes</h2>
+<p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p>
+<p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
+bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
+that he lived in the northern land near the Western Sea.&#8221;)</p>
+<hr>
+<h2><a name="_braille"></a>Braille</h2>
+<pre><code>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</code></pre>
+<pre><code>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
+⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
+⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
+⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
+⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
+⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</code></pre>
+<pre><code>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
+<pre><code>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
+⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
+⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
+⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
+⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
+⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
+⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
+⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
+⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
+<p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p>
+<hr>
+<h2><a name="_compact_font_selection_example_text"></a>Compact font selection example text</h2>
+<pre><code>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
+abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
+–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
+∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</code></pre>
+<hr>
+<h2><a name="_greetings_in_various_languages"></a>Greetings in various languages</h2>
+<p>Hello world, Καλημέρα κόσμε, コンニチハ</p>
+<hr>
+<h2><a name="_box_drawing_alignment_tests"></a>Box drawing alignment tests</h2>
+<table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="4"><tr><td>
+<pre><code> █
+ ▉
+ ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
+ ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
+ ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
+ ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
+ ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
+ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
+ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
+ ▝▀▘▙▄▟</code></pre>
+</td></tr></table>
+<p></p>
+<p></p>
+<hr><p><small>
+Last updated
+ 2002-11-25 00:37:42 UTC
+</small></p>
+</body>
+</html>
diff --git a/tests/data/utf8-examples-html5.html b/tests/data/utf8-examples-html5.html
index cb45a18..a0e8d14 100644
--- a/tests/data/utf8-examples-html5.html
+++ b/tests/data/utf8-examples-html5.html
@@ -1,1023 +1,1023 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="generator" content="AsciiDoc test">
-<title>UTF-8 encoded sample plain-text file</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>UTF-8 encoded sample plain-text file</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p></div>
-<div class="paragraph"><p>The ASCII compatible UTF-8 encoding used in this plain-text file
-is defined in Unicode, ISO 10646-1, and RFC 2279.</p></div>
-<div class="paragraph"><p>Using Unicode/UTF-8, you can write in emails and source code things such as</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_mathematics_and_sciences">Mathematics and sciences</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content monospaced">
-<pre>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
- ⎪⎢⎜│a²+b³ ⎟⎥⎪
-∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
- ⎪⎢⎜⎷ c₈ ⎟⎥⎪
-ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
- ⎪⎢⎜ ∞ ⎟⎥⎪
-⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
- ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
-2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_linguistics_and_dictionaries">Linguistics and dictionaries</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br>
-Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apl">APL</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content monospaced">
-<pre>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_nicer_typography_in_plain_text_files">Nicer typography in plain text files</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-‘single’ and “double” quotes
-</p>
-</li>
-<li>
-<p>
-Curly apostrophes: “We’ve been here”
-</p>
-</li>
-<li>
-<p>
-‚deutsche‘ „Anführungszeichen“
-</p>
-</li>
-<li>
-<p>
-†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
-</p>
-</li>
-<li>
-<p>
-ASCII safety test: 1lI|, 0OD, 8B
-</p>
-</li>
-<li>
-<p>
-the euro symbol: 14.95 €
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_combining_characters">Combining characters</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_greek_in_polytonic">Greek (in Polytonic)</h2>
-<div class="sectionbody">
-<div class="verseblock">
-<pre class="content">Σὲ γνωρίζω ἀπὸ τὴν κόψη
-τοῦ σπαθιοῦ τὴν τρομερή,
-σὲ γνωρίζω ἀπὸ τὴν ὄψη
-ποὺ μὲ βία μετράει τὴ γῆ.
-
-᾿Απ᾿ τὰ κόκκαλα βγαλμένη
-τῶν ῾Ελλήνων τὰ ἱερά
-καὶ σὰν πρῶτα ἀνδρειωμένη
-χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
-<div class="attribution">
-&#8212; The Greek anthem
-</div></div>
-<div class="verseblock">
-<pre class="content">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
-ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
-λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
-τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
-εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
-πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
-οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
-οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
-ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
-τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
-γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
-προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
-σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
-τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
-τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
-τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
-
-Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
-<div class="attribution">
-&#8212; From a speech of Demosthenes in the 4th century BC
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_georgian">Georgian:</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
-კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
-ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
-ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
-ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
-ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
-ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_russian">Russian</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
-Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
-Конференция соберет широкий круг экспертов по вопросам глобального
-Интернета и Unicode, локализации и интернационализации, воплощению и
-применению Unicode в различных операционных системах и программных
-приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_thai_ucs_level_2">Thai (UCS Level 2)</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
-classic <em>San Gua</em>):</p></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>[----------------------------|------------------------]
- ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
-สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
- ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
-โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
- เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
-ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
- พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
-ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</pre>
-</div></div>
-<div class="paragraph"><p>(The above is a two-column text. If combining characters are handled
-correctly, the lines of the second column should be aligned with the
-| character above.)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ethiopian">Ethiopian</h2>
-<div class="sectionbody">
-<div class="verseblock">
-<div class="title">Proverbs in the Amharic language</div>
-<pre class="content">ሰማይ አይታረስ ንጉሥ አይከሰስ።
-ብላ ካለኝ እንደአባቴ በቆመጠኝ።
-ጌጥ ያለቤቱ ቁምጥና ነው።
-ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
-የአፍ ወለምታ በቅቤ አይታሽም።
-አይጥ በበላ ዳዋ ተመታ።
-ሲተረጉሙ ይደረግሙ።
-ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
-ድር ቢያብር አንበሳ ያስር።
-ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
-እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
-የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
-ሥራ ከመፍታት ልጄን ላፋታት።
-ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
-የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
-ተንጋሎ ቢተፉ ተመልሶ ባፉ።
-ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
-እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
-<div class="attribution">
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_runes">Runes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p></div>
-<div class="paragraph"><p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
-bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
-that he lived in the northern land near the Western Sea.&#8221;)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_braille">Braille</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content monospaced">
-<pre>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</pre>
-</div></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
-⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
-⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
-⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
-⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
-⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</pre>
-</div></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</pre>
-</div></div>
-<div class="literalblock">
-<div class="content monospaced">
-<pre>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
-⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
-⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
-⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
-⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
-⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
-⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
-⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
-⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</pre>
-</div></div>
-<div class="paragraph"><p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_compact_font_selection_example_text">Compact font selection example text</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content monospaced">
-<pre>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
-abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
-–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
-∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_greetings_in_various_languages">Greetings in various languages</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Hello world, Καλημέρα κόσμε, コンニチハ</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_box_drawing_alignment_tests">Box drawing alignment tests</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content monospaced">
-<pre> █
- ▉
- ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
- ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
- ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
- ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
- ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
- ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
- ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
- ▝▀▘▙▄▟</pre>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="AsciiDoc test">
+<title>UTF-8 encoded sample plain-text file</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>UTF-8 encoded sample plain-text file</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p></div>
+<div class="paragraph"><p>The ASCII compatible UTF-8 encoding used in this plain-text file
+is defined in Unicode, ISO 10646-1, and RFC 2279.</p></div>
+<div class="paragraph"><p>Using Unicode/UTF-8, you can write in emails and source code things such as</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_mathematics_and_sciences">Mathematics and sciences</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content monospaced">
+<pre>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
+ ⎪⎢⎜│a²+b³ ⎟⎥⎪
+∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
+ ⎪⎢⎜⎷ c₈ ⎟⎥⎪
+ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
+ ⎪⎢⎜ ∞ ⎟⎥⎪
+⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
+ ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
+2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_linguistics_and_dictionaries">Linguistics and dictionaries</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br>
+Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apl">APL</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content monospaced">
+<pre>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_nicer_typography_in_plain_text_files">Nicer typography in plain text files</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+‘single’ and “double” quotes
+</p>
+</li>
+<li>
+<p>
+Curly apostrophes: “We’ve been here”
+</p>
+</li>
+<li>
+<p>
+‚deutsche‘ „Anführungszeichen“
+</p>
+</li>
+<li>
+<p>
+†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
+</p>
+</li>
+<li>
+<p>
+ASCII safety test: 1lI|, 0OD, 8B
+</p>
+</li>
+<li>
+<p>
+the euro symbol: 14.95 €
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_combining_characters">Combining characters</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_greek_in_polytonic">Greek (in Polytonic)</h2>
+<div class="sectionbody">
+<div class="verseblock">
+<pre class="content">Σὲ γνωρίζω ἀπὸ τὴν κόψη
+τοῦ σπαθιοῦ τὴν τρομερή,
+σὲ γνωρίζω ἀπὸ τὴν ὄψη
+ποὺ μὲ βία μετράει τὴ γῆ.
+
+᾿Απ᾿ τὰ κόκκαλα βγαλμένη
+τῶν ῾Ελλήνων τὰ ἱερά
+καὶ σὰν πρῶτα ἀνδρειωμένη
+χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
+<div class="attribution">
+&#8212; The Greek anthem
+</div></div>
+<div class="verseblock">
+<pre class="content">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
+ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
+λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
+τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
+εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
+πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
+οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
+οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
+ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
+τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
+γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
+προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
+σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
+τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
+τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
+τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
+
+Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
+<div class="attribution">
+&#8212; From a speech of Demosthenes in the 4th century BC
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_georgian">Georgian:</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
+ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
+ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
+ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
+ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
+ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_russian">Russian</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
+Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
+Конференция соберет широкий круг экспертов по вопросам глобального
+Интернета и Unicode, локализации и интернационализации, воплощению и
+применению Unicode в различных операционных системах и программных
+приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_thai_ucs_level_2">Thai (UCS Level 2)</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
+classic <em>San Gua</em>):</p></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>[----------------------------|------------------------]
+ ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
+สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
+ ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
+โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
+ เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
+ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
+ พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
+ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</pre>
+</div></div>
+<div class="paragraph"><p>(The above is a two-column text. If combining characters are handled
+correctly, the lines of the second column should be aligned with the
+| character above.)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ethiopian">Ethiopian</h2>
+<div class="sectionbody">
+<div class="verseblock">
+<div class="title">Proverbs in the Amharic language</div>
+<pre class="content">ሰማይ አይታረስ ንጉሥ አይከሰስ።
+ብላ ካለኝ እንደአባቴ በቆመጠኝ።
+ጌጥ ያለቤቱ ቁምጥና ነው።
+ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
+የአፍ ወለምታ በቅቤ አይታሽም።
+አይጥ በበላ ዳዋ ተመታ።
+ሲተረጉሙ ይደረግሙ።
+ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
+ድር ቢያብር አንበሳ ያስር።
+ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
+እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
+የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
+ሥራ ከመፍታት ልጄን ላፋታት።
+ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
+የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
+ተንጋሎ ቢተፉ ተመልሶ ባፉ።
+ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
+እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
+<div class="attribution">
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_runes">Runes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p></div>
+<div class="paragraph"><p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
+bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
+that he lived in the northern land near the Western Sea.&#8221;)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_braille">Braille</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content monospaced">
+<pre>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
+⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
+⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
+⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
+⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
+⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
+⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
+⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
+⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
+⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
+⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
+⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
+⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
+⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</pre>
+</div></div>
+<div class="paragraph"><p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_compact_font_selection_example_text">Compact font selection example text</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content monospaced">
+<pre>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
+abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
+–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
+∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_greetings_in_various_languages">Greetings in various languages</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Hello world, Καλημέρα κόσμε, コンニチハ</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_box_drawing_alignment_tests">Box drawing alignment tests</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content monospaced">
+<pre> █
+ ▉
+ ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
+ ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
+ ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
+ ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
+ ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
+ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
+ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
+ ▝▀▘▙▄▟</pre>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>
diff --git a/tests/data/utf8-examples-xhtml11.html b/tests/data/utf8-examples-xhtml11.html
index 10fb784..6685eeb 100644
--- a/tests/data/utf8-examples-xhtml11.html
+++ b/tests/data/utf8-examples-xhtml11.html
@@ -1,1025 +1,1025 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc test" />
-<title>UTF-8 encoded sample plain-text file</title>
-<style type="text/css">
-/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
-
-/* Default font. */
-body {
- font-family: Georgia,serif;
-}
-
-/* Title font. */
-h1, h2, h3, h4, h5, h6,
-div.title, caption.title,
-thead, p.table.header,
-#toctitle,
-#author, #revnumber, #revdate, #revremark,
-#footer {
- font-family: Arial,Helvetica,sans-serif;
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-h5 {
- font-size: 1.0em;
-}
-
-div.sectionbody {
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-ul > li { color: #aaa; }
-ul > li > * { color: black; }
-
-.monospaced, code, pre {
- font-family: "Courier New", Courier, monospace;
- font-size: inherit;
- color: navy;
- padding: 0;
- margin: 0;
-}
-pre {
- white-space: pre-wrap;
-}
-
-#author {
- color: #527bbd;
- font-weight: bold;
- font-size: 1.1em;
-}
-#email {
-}
-#revnumber, #revdate, #revremark {
-}
-
-#footer {
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.0em;
- margin-bottom: 2.0em;
- margin-right: 10%;
- color: #606060;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid #dddddd;
- border-left: 4px solid #f0f0f0;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid #dddddd;
- border-left: 5px solid #f0f0f0;
- background: #f8f8f8;
- padding: 0.5em;
-}
-
-div.quoteblock, div.verseblock {
- padding-left: 1.0em;
- margin-left: 1.0em;
- margin-right: 10%;
- border-left: 5px solid #f0f0f0;
- color: #888;
-}
-
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock > pre.content {
- font-family: inherit;
- font-size: inherit;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 3px solid #dddddd;
-}
-
-div.exampleblock > div.content {
- border-left: 3px solid #dddddd;
- padding-left: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; vertical-align: text-bottom; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-.footnote, .footnoteref {
- font-size: 0.8em;
-}
-
-span.footnote, span.footnoteref {
- vertical-align: super;
-}
-
-#footnotes {
- margin: 20px 0 20px 0;
- padding: 7px 0 0 0;
-}
-
-#footnotes div.footnote {
- margin: 0 0 5px 0;
-}
-
-#footnotes hr {
- border: none;
- border-top: 1px solid silver;
- height: 1px;
- text-align: left;
- margin-left: 0;
- width: 20%;
- min-width: 100px;
-}
-
-div.colist td {
- padding-right: 0.5em;
- padding-bottom: 0.3em;
- vertical-align: top;
-}
-div.colist td img {
- margin-top: 0.3em;
-}
-
-@media print {
- #footer-badges { display: none; }
-}
-
-#toc {
- margin-bottom: 2.5em;
-}
-
-#toctitle {
- color: #527bbd;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-
-span.aqua { color: aqua; }
-span.black { color: black; }
-span.blue { color: blue; }
-span.fuchsia { color: fuchsia; }
-span.gray { color: gray; }
-span.green { color: green; }
-span.lime { color: lime; }
-span.maroon { color: maroon; }
-span.navy { color: navy; }
-span.olive { color: olive; }
-span.purple { color: purple; }
-span.red { color: red; }
-span.silver { color: silver; }
-span.teal { color: teal; }
-span.white { color: white; }
-span.yellow { color: yellow; }
-
-span.aqua-background { background: aqua; }
-span.black-background { background: black; }
-span.blue-background { background: blue; }
-span.fuchsia-background { background: fuchsia; }
-span.gray-background { background: gray; }
-span.green-background { background: green; }
-span.lime-background { background: lime; }
-span.maroon-background { background: maroon; }
-span.navy-background { background: navy; }
-span.olive-background { background: olive; }
-span.purple-background { background: purple; }
-span.red-background { background: red; }
-span.silver-background { background: silver; }
-span.teal-background { background: teal; }
-span.white-background { background: white; }
-span.yellow-background { background: yellow; }
-
-span.big { font-size: 2em; }
-span.small { font-size: 0.6em; }
-
-span.underline { text-decoration: underline; }
-span.overline { text-decoration: overline; }
-span.line-through { text-decoration: line-through; }
-
-div.unbreakable { page-break-inside: avoid; }
-
-
-/*
- * xhtml11 specific
- *
- * */
-
-div.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead, p.table.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overridden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-/*
- * html5 specific
- *
- * */
-
-table.tableblock {
- margin-top: 1.0em;
- margin-bottom: 1.5em;
-}
-thead, p.tableblock.header {
- font-weight: bold;
- color: #527bbd;
-}
-p.tableblock {
- margin-top: 0;
-}
-table.tableblock {
- border-width: 3px;
- border-spacing: 0px;
- border-style: solid;
- border-color: #527bbd;
- border-collapse: collapse;
-}
-th.tableblock, td.tableblock {
- border-width: 1px;
- padding: 4px;
- border-style: solid;
- border-color: #527bbd;
-}
-
-table.tableblock.frame-topbot {
- border-left-style: hidden;
- border-right-style: hidden;
-}
-table.tableblock.frame-sides {
- border-top-style: hidden;
- border-bottom-style: hidden;
-}
-table.tableblock.frame-none {
- border-style: hidden;
-}
-
-th.tableblock.halign-left, td.tableblock.halign-left {
- text-align: left;
-}
-th.tableblock.halign-center, td.tableblock.halign-center {
- text-align: center;
-}
-th.tableblock.halign-right, td.tableblock.halign-right {
- text-align: right;
-}
-
-th.tableblock.valign-top, td.tableblock.valign-top {
- vertical-align: top;
-}
-th.tableblock.valign-middle, td.tableblock.valign-middle {
- vertical-align: middle;
-}
-th.tableblock.valign-bottom, td.tableblock.valign-bottom {
- vertical-align: bottom;
-}
-
-
-/*
- * manpage specific
- *
- * */
-
-body.manpage h1 {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- border-top: 2px solid silver;
- border-bottom: 2px solid silver;
-}
-body.manpage h2 {
- border-style: none;
-}
-body.manpage div.sectionbody {
- margin-left: 3em;
-}
-
-@media print {
- body.manpage div#toc { display: none; }
-}
-
-
-</style>
-<script type="text/javascript">
-/*<![CDATA[*/
-var asciidoc = { // Namespace.
-
-/////////////////////////////////////////////////////////////////////
-// Table Of Contents generator
-/////////////////////////////////////////////////////////////////////
-
-/* Author: Mihai Bazon, September 2002
- * http://students.infoiasi.ro/~mishoo
- *
- * Table Of Content generator
- * Version: 0.4
- *
- * Feel free to use this script under the terms of the GNU General Public
- * License, as long as you do not remove or alter this notice.
- */
-
- /* modified by Troy D. Hanson, September 2006. License: GPL */
- /* modified by Stuart Rackham, 2006, 2009. License: GPL */
-
-// toclevels = 1..4.
-toc: function (toclevels) {
-
- function getText(el) {
- var text = "";
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
- text += i.data;
- else if (i.firstChild != null)
- text += getText(i);
- }
- return text;
- }
-
- function TocEntry(el, text, toclevel) {
- this.element = el;
- this.text = text;
- this.toclevel = toclevel;
- }
-
- function tocEntries(el, toclevels) {
- var result = new Array;
- var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
- // Function that scans the DOM tree for header elements (the DOM2
- // nodeIterator API would be a better technique but not supported by all
- // browsers).
- var iterate = function (el) {
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
- var mo = re.exec(i.tagName);
- if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
- }
- iterate(i);
- }
- }
- }
- iterate(el);
- return result;
- }
-
- var toc = document.getElementById("toc");
- if (!toc) {
- return;
- }
-
- // Delete existing TOC entries in case we're reloading the TOC.
- var tocEntriesToRemove = [];
- var i;
- for (i = 0; i < toc.childNodes.length; i++) {
- var entry = toc.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div'
- && entry.getAttribute("class")
- && entry.getAttribute("class").match(/^toclevel/))
- tocEntriesToRemove.push(entry);
- }
- for (i = 0; i < tocEntriesToRemove.length; i++) {
- toc.removeChild(tocEntriesToRemove[i]);
- }
-
- // Rebuild TOC entries.
- var entries = tocEntries(document.getElementById("content"), toclevels);
- for (var i = 0; i < entries.length; ++i) {
- var entry = entries[i];
- if (entry.element.id == "")
- entry.element.id = "_toc_" + i;
- var a = document.createElement("a");
- a.href = "#" + entry.element.id;
- a.appendChild(document.createTextNode(entry.text));
- var div = document.createElement("div");
- div.appendChild(a);
- div.className = "toclevel" + entry.toclevel;
- toc.appendChild(div);
- }
- if (entries.length == 0)
- toc.parentNode.removeChild(toc);
-},
-
-
-/////////////////////////////////////////////////////////////////////
-// Footnotes generator
-/////////////////////////////////////////////////////////////////////
-
-/* Based on footnote generation code from:
- * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
- */
-
-footnotes: function () {
- // Delete existing footnote entries in case we're reloading the footnodes.
- var i;
- var noteholder = document.getElementById("footnotes");
- if (!noteholder) {
- return;
- }
- var entriesToRemove = [];
- for (i = 0; i < noteholder.childNodes.length; i++) {
- var entry = noteholder.childNodes[i];
- if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
- entriesToRemove.push(entry);
- }
- for (i = 0; i < entriesToRemove.length; i++) {
- noteholder.removeChild(entriesToRemove[i]);
- }
-
- // Rebuild footnote entries.
- var cont = document.getElementById("content");
- var spans = cont.getElementsByTagName("span");
- var refs = {};
- var n = 0;
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnote") {
- n++;
- var note = spans[i].getAttribute("data-note");
- if (!note) {
- // Use [\s\S] in place of . so multi-line matches work.
- // Because JavaScript has no s (dotall) regex flag.
- note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
- spans[i].innerHTML =
- "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- spans[i].setAttribute("data-note", note);
- }
- noteholder.innerHTML +=
- "<div class='footnote' id='_footnote_" + n + "'>" +
- "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
- n + "</a>. " + note + "</div>";
- var id =spans[i].getAttribute("id");
- if (id != null) refs["#"+id] = n;
- }
- }
- if (n == 0)
- noteholder.parentNode.removeChild(noteholder);
- else {
- // Process footnoterefs.
- for (i=0; i<spans.length; i++) {
- if (spans[i].className == "footnoteref") {
- var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
- href = href.match(/#.*/)[0]; // Because IE return full URL.
- n = refs[href];
- spans[i].innerHTML =
- "[<a href='#_footnote_" + n +
- "' title='View footnote' class='footnote'>" + n + "</a>]";
- }
- }
- }
-},
-
-install: function(toclevels) {
- var timerId;
-
- function reinstall() {
- asciidoc.footnotes();
- if (toclevels) {
- asciidoc.toc(toclevels);
- }
- }
-
- function reinstallAndRemoveTimer() {
- clearInterval(timerId);
- reinstall();
- }
-
- timerId = setInterval(reinstall, 500);
- if (document.addEventListener)
- document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
- else
- window.onload = reinstallAndRemoveTimer;
-}
-
-}
-asciidoc.install();
-/*]]>*/
-</script>
-</head>
-<body class="article">
-<div id="header">
-<h1>UTF-8 encoded sample plain-text file</h1>
-</div>
-<div id="content">
-<div id="preamble">
-<div class="sectionbody">
-<div class="paragraph"><p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p></div>
-<div class="paragraph"><p>The ASCII compatible UTF-8 encoding used in this plain-text file
-is defined in Unicode, ISO 10646-1, and RFC 2279.</p></div>
-<div class="paragraph"><p>Using Unicode/UTF-8, you can write in emails and source code things such as</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_mathematics_and_sciences">Mathematics and sciences</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content">
-<pre><code>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
- ⎪⎢⎜│a²+b³ ⎟⎥⎪
-∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
- ⎪⎢⎜⎷ c₈ ⎟⎥⎪
-ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
- ⎪⎢⎜ ∞ ⎟⎥⎪
-⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
- ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
-2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_linguistics_and_dictionaries">Linguistics and dictionaries</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br />
-Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_apl">APL</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content">
-<pre><code>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_nicer_typography_in_plain_text_files">Nicer typography in plain text files</h2>
-<div class="sectionbody">
-<div class="ulist"><ul>
-<li>
-<p>
-‘single’ and “double” quotes
-</p>
-</li>
-<li>
-<p>
-Curly apostrophes: “We’ve been here”
-</p>
-</li>
-<li>
-<p>
-‚deutsche‘ „Anführungszeichen“
-</p>
-</li>
-<li>
-<p>
-†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
-</p>
-</li>
-<li>
-<p>
-ASCII safety test: 1lI|, 0OD, 8B
-</p>
-</li>
-<li>
-<p>
-the euro symbol: 14.95 €
-</p>
-</li>
-</ul></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_combining_characters">Combining characters</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_greek_in_polytonic">Greek (in Polytonic)</h2>
-<div class="sectionbody">
-<div class="verseblock">
-<pre class="content">Σὲ γνωρίζω ἀπὸ τὴν κόψη
-τοῦ σπαθιοῦ τὴν τρομερή,
-σὲ γνωρίζω ἀπὸ τὴν ὄψη
-ποὺ μὲ βία μετράει τὴ γῆ.
-
-᾿Απ᾿ τὰ κόκκαλα βγαλμένη
-τῶν ῾Ελλήνων τὰ ἱερά
-καὶ σὰν πρῶτα ἀνδρειωμένη
-χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
-<div class="attribution">
-&#8212; The Greek anthem
-</div></div>
-<div class="verseblock">
-<pre class="content">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
-ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
-λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
-τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
-εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
-πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
-οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
-οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
-ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
-τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
-γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
-προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
-σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
-τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
-τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
-τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
-
-Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
-<div class="attribution">
-&#8212; From a speech of Demosthenes in the 4th century BC
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_georgian">Georgian:</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
-კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
-ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
-ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
-ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
-ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
-ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_russian">Russian</h2>
-<div class="sectionbody">
-<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
-Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
-Конференция соберет широкий круг экспертов по вопросам глобального
-Интернета и Unicode, локализации и интернационализации, воплощению и
-применению Unicode в различных операционных системах и программных
-приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_thai_ucs_level_2">Thai (UCS Level 2)</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
-classic <em>San Gua</em>):</p></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>[----------------------------|------------------------]
- ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
-สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
- ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
-โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
- เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
-ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
- พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
-ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</code></pre>
-</div></div>
-<div class="paragraph"><p>(The above is a two-column text. If combining characters are handled
-correctly, the lines of the second column should be aligned with the
-| character above.)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_ethiopian">Ethiopian</h2>
-<div class="sectionbody">
-<div class="verseblock">
-<div class="title">Proverbs in the Amharic language</div>
-<pre class="content">ሰማይ አይታረስ ንጉሥ አይከሰስ።
-ብላ ካለኝ እንደአባቴ በቆመጠኝ።
-ጌጥ ያለቤቱ ቁምጥና ነው።
-ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
-የአፍ ወለምታ በቅቤ አይታሽም።
-አይጥ በበላ ዳዋ ተመታ።
-ሲተረጉሙ ይደረግሙ።
-ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
-ድር ቢያብር አንበሳ ያስር።
-ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
-እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
-የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
-ሥራ ከመፍታት ልጄን ላፋታት።
-ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
-የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
-ተንጋሎ ቢተፉ ተመልሶ ባፉ።
-ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
-እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
-<div class="attribution">
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_runes">Runes</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p></div>
-<div class="paragraph"><p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
-bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
-that he lived in the northern land near the Western Sea.&#8221;)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_braille">Braille</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content">
-<pre><code>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
-⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
-⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
-⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
-⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
-⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
-</div></div>
-<div class="literalblock">
-<div class="content">
-<pre><code>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
-⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
-⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
-⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
-⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
-⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
-⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
-⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
-⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
-</div></div>
-<div class="paragraph"><p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_compact_font_selection_example_text">Compact font selection example text</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="content">
-<pre><code>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
-abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
-–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
-∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</code></pre>
-</div></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_greetings_in_various_languages">Greetings in various languages</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Hello world, Καλημέρα κόσμε, コンニチハ</p></div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_box_drawing_alignment_tests">Box drawing alignment tests</h2>
-<div class="sectionbody">
-<div class="listingblock">
-<div class="content">
-<pre><code> █
- ▉
- ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
- ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
- ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
- ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
- ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
- ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
- ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
- ▝▀▘▙▄▟</code></pre>
-</div></div>
-</div>
-</div>
-</div>
-<div id="footnotes"><hr /></div>
-<div id="footer">
-<div id="footer-text">
-Last updated
- 2002-11-25 00:37:42 UTC
-</div>
-</div>
-</body>
-</html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc test" />
+<title>UTF-8 encoded sample plain-text file</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="article">
+<div id="header">
+<h1>UTF-8 encoded sample plain-text file</h1>
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph"><p>Markus Kuhn [ˈmaʳkʊs kuːn] <a href="http://www.cl.cam.ac.uk/~mgk25/">http://www.cl.cam.ac.uk/~mgk25/</a> — 2002-07-25</p></div>
+<div class="paragraph"><p>The ASCII compatible UTF-8 encoding used in this plain-text file
+is defined in Unicode, ISO 10646-1, and RFC 2279.</p></div>
+<div class="paragraph"><p>Using Unicode/UTF-8, you can write in emails and source code things such as</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_mathematics_and_sciences">Mathematics and sciences</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre><code>∮ E⋅da = Q, n → ∞, ∑ f(i) = ∏ g(i), ⎧⎡⎛┌─────┐⎞⎤⎫
+ ⎪⎢⎜│a²+b³ ⎟⎥⎪
+∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β), ⎪⎢⎜│───── ⎟⎥⎪
+ ⎪⎢⎜⎷ c₈ ⎟⎥⎪
+ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⎨⎢⎜ ⎟⎥⎬
+ ⎪⎢⎜ ∞ ⎟⎥⎪
+⊥ &lt; a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (⟦A⟧ ⇔ ⟪B⟫), ⎪⎢⎜ ⎲ ⎟⎥⎪
+ ⎪⎢⎜ ⎳aⁱ-bⁱ⎟⎥⎪
+2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm ⎩⎣⎝i=1 ⎠⎦⎭</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_linguistics_and_dictionaries">Linguistics and dictionaries</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn<br />
+Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_apl">APL</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre><code>((V⍳V)=⍳⍴V)/V←,V ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_nicer_typography_in_plain_text_files">Nicer typography in plain text files</h2>
+<div class="sectionbody">
+<div class="ulist"><ul>
+<li>
+<p>
+‘single’ and “double” quotes
+</p>
+</li>
+<li>
+<p>
+Curly apostrophes: “We’ve been here”
+</p>
+</li>
+<li>
+<p>
+‚deutsche‘ „Anführungszeichen“
+</p>
+</li>
+<li>
+<p>
+†, ‡, ‰, •, 3–4, —, −5/+5, ™, …
+</p>
+</li>
+<li>
+<p>
+ASCII safety test: 1lI|, 0OD, 8B
+</p>
+</li>
+<li>
+<p>
+the euro symbol: 14.95 €
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_combining_characters">Combining characters</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>STARGΛ̊TE SG-1, a = v̇ = r̈, a⃑ ⊥ b⃑</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_greek_in_polytonic">Greek (in Polytonic)</h2>
+<div class="sectionbody">
+<div class="verseblock">
+<pre class="content">Σὲ γνωρίζω ἀπὸ τὴν κόψη
+τοῦ σπαθιοῦ τὴν τρομερή,
+σὲ γνωρίζω ἀπὸ τὴν ὄψη
+ποὺ μὲ βία μετράει τὴ γῆ.
+
+᾿Απ᾿ τὰ κόκκαλα βγαλμένη
+τῶν ῾Ελλήνων τὰ ἱερά
+καὶ σὰν πρῶτα ἀνδρειωμένη
+χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!</pre>
+<div class="attribution">
+&#8212; The Greek anthem
+</div></div>
+<div class="verseblock">
+<pre class="content">Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
+ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
+λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
+τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
+εἰς τοῦτο προήκοντα, ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
+πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
+οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
+οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
+ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
+τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
+γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
+προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
+σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
+τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
+τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
+τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.
+
+Δημοσθένους, Γ´ ᾿Ολυνθιακὸς</pre>
+<div class="attribution">
+&#8212; From a speech of Demosthenes in the 4th century BC
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_georgian">Georgian:</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
+კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
+ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
+ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
+ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
+ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
+ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_russian">Russian</h2>
+<div class="sectionbody">
+<div class="paragraph"><div class="title">From a Unicode conference invitation</div><p>Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
+Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
+Конференция соберет широкий круг экспертов по вопросам глобального
+Интернета и Unicode, локализации и интернационализации, воплощению и
+применению Unicode в различных операционных системах и программных
+приложениях, шрифтах, верстке и многоязычных компьютерных системах.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_thai_ucs_level_2">Thai (UCS Level 2)</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
+classic <em>San Gua</em>):</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>[----------------------------|------------------------]
+ ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช พระปกเกศกองบู๊กู้ขึ้นใหม่
+สิบสองกษัตริย์ก่อนหน้าแลถัดไป สององค์ไซร้โง่เขลาเบาปัญญา
+ ทรงนับถือขันทีเป็นที่พึ่ง บ้านเมืองจึงวิปริตเป็นนักหนา
+โฮจิ๋นเรียกทัพทั่วหัวเมืองมา หมายจะฆ่ามดชั่วตัวสำคัญ
+ เหมือนขับไสไล่เสือจากเคหา รับหมาป่าเข้ามาเลยอาสัญ
+ฝ่ายอ้องอุ้นยุแยกให้แตกกัน ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
+ พลันลิฉุยกุยกีกลับก่อเหตุ ช่างอาเพศจริงหนาฟ้าร้องไห้
+ต้องรบราฆ่าฟันจนบรรลัย ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ</code></pre>
+</div></div>
+<div class="paragraph"><p>(The above is a two-column text. If combining characters are handled
+correctly, the lines of the second column should be aligned with the
+| character above.)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ethiopian">Ethiopian</h2>
+<div class="sectionbody">
+<div class="verseblock">
+<div class="title">Proverbs in the Amharic language</div>
+<pre class="content">ሰማይ አይታረስ ንጉሥ አይከሰስ።
+ብላ ካለኝ እንደአባቴ በቆመጠኝ።
+ጌጥ ያለቤቱ ቁምጥና ነው።
+ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
+የአፍ ወለምታ በቅቤ አይታሽም።
+አይጥ በበላ ዳዋ ተመታ።
+ሲተረጉሙ ይደረግሙ።
+ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
+ድር ቢያብር አንበሳ ያስር።
+ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
+እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
+የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
+ሥራ ከመፍታት ልጄን ላፋታት።
+ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
+የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
+ተንጋሎ ቢተፉ ተመልሶ ባፉ።
+ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
+እግርህን በፍራሽህ ልክ ዘርጋ።</pre>
+<div class="attribution">
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_runes">Runes</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ</p></div>
+<div class="paragraph"><p>(Old English, which transcribed into Latin reads &#8220;He cwaeth that he
+bude thaem lande northweardum with tha Westsae.&#8221; and means &#8220;He said
+that he lived in the northern land near the Western Sea.&#8221;)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_braille">Braille</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre><code>⡌⠁⠧⠑ ⠼⠁⠒ ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
+⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
+⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
+⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
+⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
+⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
+⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
+⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
+⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
+⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
+⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
+⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
+⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
+⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲</code></pre>
+</div></div>
+<div class="paragraph"><p>(The first couple of paragraphs of "A Christmas Carol" by Dickens)</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_compact_font_selection_example_text">Compact font selection example text</h2>
+<div class="sectionbody">
+<div class="literalblock">
+<div class="content">
+<pre><code>ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
+abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
+–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
+∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_greetings_in_various_languages">Greetings in various languages</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Hello world, Καλημέρα κόσμε, コンニチハ</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_box_drawing_alignment_tests">Box drawing alignment tests</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre><code> █
+ ▉
+ ╔══╦══╗ ┌──┬──┐ ╭──┬──╮ ╭──┬──╮ ┏━━┳━━┓ ┎┒┏┑ ╷ ╻ ┏┯┓ ┌┰┐ ▊ ╱╲╱╲╳╳╳
+ ║┌─╨─┐║ │╔═╧═╗│ │╒═╪═╕│ │╓─╁─╖│ ┃┌─╂─┐┃ ┗╃╄┙ ╶┼╴╺╋╸┠┼┨ ┝╋┥ ▋ ╲╱╲╱╳╳╳
+ ║│╲ ╱│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╿ │┃ ┍╅╆┓ ╵ ╹ ┗┷┛ └┸┘ ▌ ╱╲╱╲╳╳╳
+ ╠╡ ╳ ╞╣ ├╢ ╟┤ ├┼─┼─┼┤ ├╫─╂─╫┤ ┣┿╾┼╼┿┫ ┕┛┖┚ ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
+ ║│╱ ╲│║ │║ ║│ ││ │ ││ │║ ┃ ║│ ┃│ ╽ │┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▎
+ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏
+ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█
+ ▝▀▘▙▄▟</code></pre>
+</div></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2002-11-25 00:37:42 UTC
+</div>
+</div>
+</body>
+</html>