docgenerator 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/examples/creole_example_tabular.rb +95 -0
- data/examples/docgenerator_example.rb +5 -5
- data/lib/creole/creole2doc.rb +28 -18
- data/lib/creole/creole_inclusions.rb +4 -4
- data/lib/creole/creole_placeholder.rb +4 -1
- data/lib/creole/creole_tabular.rb +173 -155
- data/lib/creole/plugins/rail.rb +118 -119
- data/lib/creole/plugins/struktex.rb +35 -35
- data/lib/creole/plugins/todonotes.rb +8 -1
- data/lib/docgenerator/attribute.rb +160 -160
- data/lib/docgenerator/characters.rb +343 -311
- data/lib/docgenerator/css.rb +167 -167
- data/lib/docgenerator/document.rb +525 -511
- data/lib/docgenerator/element.rb +316 -316
- data/lib/docgenerator/element_meta.rb +114 -114
- data/lib/docgenerator/elements.rb +19 -9
- data/lib/docgenerator/environments.rb +3 -1
- data/lib/docgenerator/lists.rb +177 -174
- data/lib/docgenerator/packages/hyperref.rb +74 -70
- data/lib/docgenerator/packages/multicol.rb +33 -0
- data/lib/docgenerator/packages/scrlettr2.rb +152 -151
- data/lib/docgenerator/packages/todonotes.rb +1 -1
- data/lib/docgenerator/tabular.rb +463 -400
- data/lib/docgenerator/templates/docgenerator_template.rb +94 -84
- data/lib/docgenerator/templates/docgenerator_template.yaml +75 -15
- data/lib/docgenerator.rb +1 -1
- data/lib/wiki2doc/wiki2docgenerator.rb +1 -1
- data/meta_test_and_doc/build__meta.rb +125 -0
- data/meta_test_and_doc/build_doc.rb +333 -0
- data/meta_test_and_doc/build_test.rb +251 -0
- data/meta_test_and_doc/manpages/attachfile.rb +389 -0
- data/meta_test_and_doc/manpages/caption.rb +133 -0
- data/meta_test_and_doc/manpages/characters.rb +3738 -0
- data/meta_test_and_doc/manpages/elements.rb +6851 -0
- data/meta_test_and_doc/manpages/environments.rb +985 -0
- data/meta_test_and_doc/manpages/footnote.rb +439 -0
- data/meta_test_and_doc/manpages/hyperref.rb +605 -0
- data/meta_test_and_doc/manpages/listings.rb +988 -0
- data/meta_test_and_doc/manpages/lists.rb +1463 -0
- data/meta_test_and_doc/manpages/others.rb +129 -0
- data/meta_test_and_doc/manpages/packages.rb +13 -0
- data/meta_test_and_doc/manpages/pdfpages.rb +108 -0
- data/meta_test_and_doc/manpages/readme.rdoc +9 -0
- data/meta_test_and_doc/manpages/scrlettr2.rb +362 -0
- data/meta_test_and_doc/manpages/scrpage2.rb +2028 -0
- data/meta_test_and_doc/manpages/sectioning.rb +2467 -0
- data/meta_test_and_doc/manpages/tables.rb +2088 -0
- data/meta_test_and_doc/manpages/todonotes.rb +235 -0
- data/meta_test_and_doc/manpages/wiki2docgenerator.rb +64 -0
- data/{readme.rd → readme.rdoc} +18 -1
- data/unittest/expected/test_tabular.creole +33 -0
- data/unittest/expected_creole/test_creole_creole1.0test.html +3 -3
- data/unittest/expected_creole/test_creole_creole1.0test.latex +3 -3
- data/unittest/expected_creole/test_creole_creole1.0test.text +3 -3
- data/unittest/expected_creole/test_creole_inline_apostroph.html +6 -0
- data/unittest/expected_creole/test_creole_inline_apostroph.latex +8 -0
- data/unittest/expected_creole/test_creole_inline_apostroph.text +4 -0
- data/unittest/expected_creole/test_creole_input.normsource +12 -12
- data/unittest/expected_creole/test_creole_input.normsource_1.8 +23 -0
- data/unittest/expected_creole/test_creole_links_external_implicit.html +2 -2
- data/unittest/expected_creole/test_creole_links_external_implicit.latex +2 -2
- data/unittest/expected_creole/test_creole_links_external_implicit.text +2 -2
- data/unittest/expected_creole/test_creole_links_implicit_end.html +1 -1
- data/unittest/expected_creole/test_creole_links_implicit_end.latex +1 -1
- data/unittest/expected_creole/test_creole_list_ul.normsource +42 -42
- data/unittest/expected_creole/test_creole_list_ul.normsource_1.8 +83 -0
- data/unittest/expected_creole/test_creole_paragraphs.normsource +15 -15
- data/unittest/expected_creole/test_creole_paragraphs.normsource_1.8 +27 -0
- data/unittest/expected_creole/test_creole_tabular.creole +22 -0
- data/unittest/expected_creole/test_creole_tabular_creole.creole +19 -0
- data/unittest/expected_creole/test_creole_tabular_css.creole +24 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.creole +16 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.html +14 -0
- data/unittest/expected_creole/test_creole_tabular_multicols.latex +16 -0
- data/unittest/expected_creole/test_creole_tabular_with_cell_option.creole +21 -0
- data/unittest/expected_creole/test_creole_toc_level_text.html +2 -2
- data/unittest/expected_creole/test_creole_toc_level_text.latex +2 -2
- data/unittest/expected_packages/test_multicol_3.tex +2 -0
- data/unittest/expected_packages/test_multicol_3_titleline.tex +2 -0
- data/unittest/expected_templates/test_article.tex +23 -0
- data/unittest/expected_templates/test_article_utf8.tex +34 -0
- data/unittest/expected_templates/test_context.miv +18 -0
- data/unittest/expected_templates/test_creole.creole +8 -0
- data/unittest/expected_templates/test_html.html +12 -0
- data/unittest/expected_templates/test_html401_strict.html +14 -0
- data/unittest/expected_templates/test_html401_trans.html +14 -0
- data/unittest/expected_templates/test_html_utf8.html +14 -0
- data/unittest/expected_templates/test_include.tex +17 -0
- data/unittest/expected_templates/test_include_utf8.tex +17 -0
- data/unittest/expected_templates/test_text.txt +6 -0
- data/unittest/expected_templates/test_wiki.wiki +6 -0
- data/unittest/expected_templates/test_xhtml_strict.html +14 -0
- data/unittest/expected_templates/test_xhtml_trans.html +14 -0
- data/unittest/unittest_creole.rb +27 -6
- data/unittest/unittest_creole_placeholders.rb +1 -123
- data/unittest/unittest_creole_tabular.rb +174 -0
- data/unittest/unittest_docgenerator.rb +4 -3
- data/unittest/unittest_docgenerator_characters.rb +4769 -615
- data/unittest/unittest_packages_multicol.rb +84 -0
- data/unittest/unittest_rubycode4doc.rb +0 -1
- data/unittest/unittest_templates.rb +64 -0
- metadata +163 -77
- data/build_test_and_doc.rb +0 -505
- data/manpage_elements.rb +0 -10411
@@ -1,83 +1,83 @@
|
|
1
1
|
---
|
2
2
|
- !ruby/struct:Creole_line
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
type: :dummy
|
4
|
+
content:
|
5
|
+
add_info:
|
6
6
|
- !ruby/struct:Creole_line
|
7
|
-
|
8
|
-
|
7
|
+
type: :par
|
8
|
+
content: |
|
9
9
|
Text before
|
10
10
|
|
11
|
-
|
11
|
+
add_info:
|
12
12
|
- !ruby/struct:Creole_line
|
13
|
-
|
14
|
-
|
13
|
+
type: :list
|
14
|
+
content: |
|
15
15
|
Listentry 1
|
16
16
|
|
17
|
-
|
17
|
+
add_info:
|
18
18
|
:listtype: "*"
|
19
19
|
- !ruby/struct:Creole_line
|
20
|
-
|
21
|
-
|
20
|
+
type: :list
|
21
|
+
content: |
|
22
22
|
Listentry 2
|
23
23
|
|
24
|
-
|
24
|
+
add_info:
|
25
25
|
:listtype: "*"
|
26
26
|
- !ruby/struct:Creole_line
|
27
|
-
|
28
|
-
|
27
|
+
type: :list
|
28
|
+
content: |
|
29
29
|
Listentry 2.1
|
30
30
|
|
31
|
-
|
31
|
+
add_info:
|
32
32
|
:listtype: "**"
|
33
33
|
- !ruby/struct:Creole_line
|
34
|
-
|
35
|
-
|
34
|
+
type: :list
|
35
|
+
content: |
|
36
36
|
Listentry 2.2
|
37
37
|
|
38
|
-
|
38
|
+
add_info:
|
39
39
|
:listtype: "**"
|
40
40
|
- !ruby/struct:Creole_line
|
41
|
-
|
42
|
-
|
41
|
+
type: :list
|
42
|
+
content: |
|
43
43
|
Listentry 3
|
44
44
|
|
45
|
-
|
45
|
+
add_info:
|
46
46
|
:listtype: "*"
|
47
47
|
- !ruby/struct:Creole_line
|
48
|
-
|
49
|
-
|
48
|
+
type: :list
|
49
|
+
content: |
|
50
50
|
Listentry 3.2
|
51
51
|
|
52
|
-
|
52
|
+
add_info:
|
53
53
|
:listtype: "**"
|
54
54
|
- !ruby/struct:Creole_line
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
type: :dummy
|
56
|
+
content:
|
57
|
+
add_info:
|
58
58
|
- !ruby/struct:Creole_line
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
type: :dummy
|
60
|
+
content:
|
61
|
+
add_info:
|
62
62
|
- !ruby/struct:Creole_line
|
63
|
-
|
64
|
-
|
63
|
+
type: :list
|
64
|
+
content: " You can have\n\
|
65
65
|
multiline list items\n"
|
66
|
-
|
66
|
+
add_info:
|
67
67
|
:listtype: "*"
|
68
68
|
- !ruby/struct:Creole_line
|
69
|
-
|
70
|
-
|
69
|
+
type: :list
|
70
|
+
content: " this is a second multiline\n\
|
71
71
|
list item\n"
|
72
|
-
|
72
|
+
add_info:
|
73
73
|
:listtype: "*"
|
74
74
|
- !ruby/struct:Creole_line
|
75
|
-
|
76
|
-
|
77
|
-
|
75
|
+
type: :dummy
|
76
|
+
content:
|
77
|
+
add_info:
|
78
78
|
- !ruby/struct:Creole_line
|
79
|
-
|
80
|
-
|
79
|
+
type: :par
|
80
|
+
content: |
|
81
81
|
Text afterwords
|
82
82
|
|
83
|
-
|
83
|
+
add_info:
|
@@ -0,0 +1,83 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:Creole_line
|
3
|
+
:type: :dummy
|
4
|
+
:content:
|
5
|
+
:add_info:
|
6
|
+
- !ruby/struct:Creole_line
|
7
|
+
:type: :par
|
8
|
+
:content: |
|
9
|
+
Text before
|
10
|
+
|
11
|
+
:add_info:
|
12
|
+
- !ruby/struct:Creole_line
|
13
|
+
:type: :list
|
14
|
+
:content: |
|
15
|
+
Listentry 1
|
16
|
+
|
17
|
+
:add_info:
|
18
|
+
:listtype: "*"
|
19
|
+
- !ruby/struct:Creole_line
|
20
|
+
:type: :list
|
21
|
+
:content: |
|
22
|
+
Listentry 2
|
23
|
+
|
24
|
+
:add_info:
|
25
|
+
:listtype: "*"
|
26
|
+
- !ruby/struct:Creole_line
|
27
|
+
:type: :list
|
28
|
+
:content: |
|
29
|
+
Listentry 2.1
|
30
|
+
|
31
|
+
:add_info:
|
32
|
+
:listtype: "**"
|
33
|
+
- !ruby/struct:Creole_line
|
34
|
+
:type: :list
|
35
|
+
:content: |
|
36
|
+
Listentry 2.2
|
37
|
+
|
38
|
+
:add_info:
|
39
|
+
:listtype: "**"
|
40
|
+
- !ruby/struct:Creole_line
|
41
|
+
:type: :list
|
42
|
+
:content: |
|
43
|
+
Listentry 3
|
44
|
+
|
45
|
+
:add_info:
|
46
|
+
:listtype: "*"
|
47
|
+
- !ruby/struct:Creole_line
|
48
|
+
:type: :list
|
49
|
+
:content: |
|
50
|
+
Listentry 3.2
|
51
|
+
|
52
|
+
:add_info:
|
53
|
+
:listtype: "**"
|
54
|
+
- !ruby/struct:Creole_line
|
55
|
+
:type: :dummy
|
56
|
+
:content:
|
57
|
+
:add_info:
|
58
|
+
- !ruby/struct:Creole_line
|
59
|
+
:type: :dummy
|
60
|
+
:content:
|
61
|
+
:add_info:
|
62
|
+
- !ruby/struct:Creole_line
|
63
|
+
:type: :list
|
64
|
+
:content: " You can have\n\
|
65
|
+
multiline list items\n"
|
66
|
+
:add_info:
|
67
|
+
:listtype: "*"
|
68
|
+
- !ruby/struct:Creole_line
|
69
|
+
:type: :list
|
70
|
+
:content: " this is a second multiline\n\
|
71
|
+
list item\n"
|
72
|
+
:add_info:
|
73
|
+
:listtype: "*"
|
74
|
+
- !ruby/struct:Creole_line
|
75
|
+
:type: :dummy
|
76
|
+
:content:
|
77
|
+
:add_info:
|
78
|
+
- !ruby/struct:Creole_line
|
79
|
+
:type: :par
|
80
|
+
:content: |
|
81
|
+
Text afterwords
|
82
|
+
|
83
|
+
:add_info:
|
@@ -1,27 +1,27 @@
|
|
1
1
|
---
|
2
2
|
- !ruby/struct:Creole_line
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
type: :dummy
|
4
|
+
content:
|
5
|
+
add_info:
|
6
6
|
- !ruby/struct:Creole_line
|
7
|
-
|
8
|
-
|
7
|
+
type: :par
|
8
|
+
content: |
|
9
9
|
This is some text,
|
10
10
|
followed by more Text.
|
11
11
|
And some more text.
|
12
12
|
|
13
|
-
|
13
|
+
add_info:
|
14
14
|
- !ruby/struct:Creole_line
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
type: :dummy
|
16
|
+
content:
|
17
|
+
add_info:
|
18
18
|
- !ruby/struct:Creole_line
|
19
|
-
|
20
|
-
|
19
|
+
type: :par
|
20
|
+
content: |
|
21
21
|
And now a new paragraph with some other text.
|
22
22
|
|
23
|
-
|
23
|
+
add_info:
|
24
24
|
- !ruby/struct:Creole_line
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
type: :dummy
|
26
|
+
content:
|
27
|
+
add_info:
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:Creole_line
|
3
|
+
:type: :dummy
|
4
|
+
:content:
|
5
|
+
:add_info:
|
6
|
+
- !ruby/struct:Creole_line
|
7
|
+
:type: :par
|
8
|
+
:content: |
|
9
|
+
This is some text,
|
10
|
+
followed by more Text.
|
11
|
+
And some more text.
|
12
|
+
|
13
|
+
:add_info:
|
14
|
+
- !ruby/struct:Creole_line
|
15
|
+
:type: :dummy
|
16
|
+
:content:
|
17
|
+
:add_info:
|
18
|
+
- !ruby/struct:Creole_line
|
19
|
+
:type: :par
|
20
|
+
:content: |
|
21
|
+
And now a new paragraph with some other text.
|
22
|
+
|
23
|
+
:add_info:
|
24
|
+
- !ruby/struct:Creole_line
|
25
|
+
:type: :dummy
|
26
|
+
:content:
|
27
|
+
:add_info:
|
@@ -4,6 +4,6 @@ Test for document with toc-level 1
|
|
4
4
|
|
5
5
|
\section{one}\hypertarget{1}{}
|
6
6
|
\section{two}\hypertarget{2}{}
|
7
|
-
\subsection{two-one}
|
7
|
+
\subsection{two-one}
|
8
8
|
\section{three}\hypertarget{drei}{}
|
9
|
-
\subsection{three-one}
|
9
|
+
\subsection{three-one}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<<prefix>>
|
2
|
+
\documentclass[ngerman]{scrartcl}
|
3
|
+
\usepackage{babel}
|
4
|
+
\usepackage[ansinew]{inputenc}
|
5
|
+
\usepackage{hyperref}
|
6
|
+
% ----------------------------------------------------------------
|
7
|
+
|
8
|
+
\title{Test of Template article}
|
9
|
+
\hypersetup{pdftitle={Test of Template article}}
|
10
|
+
|
11
|
+
% ----------------------------------------------------------------
|
12
|
+
\begin{document}
|
13
|
+
|
14
|
+
|
15
|
+
Some text
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
Umlaute: ��� ��� �
|
20
|
+
|
21
|
+
|
22
|
+
\end{document}
|
23
|
+
% ----------------------------------------------------------------
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<<prefix>>
|
2
|
+
\documentclass[ngerman]{scrartcl}
|
3
|
+
\usepackage{babel}
|
4
|
+
%Encoding-package depends on TeX-engine
|
5
|
+
\usepackage{ifpdf,ifxetex,ifluatex}
|
6
|
+
\ifxetex
|
7
|
+
\usepackage{fontspec} %Without, umlauts are missing
|
8
|
+
\fi
|
9
|
+
\ifluatex
|
10
|
+
\usepackage[utf8]{luainputenc} %Or in first line: % !Mode:: "TeX:UTF-8".
|
11
|
+
\else
|
12
|
+
\ifpdf\relax
|
13
|
+
\usepackage[utf8]{inputenc}
|
14
|
+
\fi
|
15
|
+
\fi
|
16
|
+
\usepackage{hyperref}
|
17
|
+
% ----------------------------------------------------------------
|
18
|
+
|
19
|
+
\title{Test of Template article\_utf8}
|
20
|
+
\hypersetup{pdftitle={Test of Template article\_utf8}}
|
21
|
+
|
22
|
+
% ----------------------------------------------------------------
|
23
|
+
\begin{document}
|
24
|
+
|
25
|
+
|
26
|
+
Some text
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
Umlaute: öäü ÖÄÜ ß
|
31
|
+
|
32
|
+
|
33
|
+
\end{document}
|
34
|
+
% ----------------------------------------------------------------
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<<prefix>>
|
2
|
+
% ----------------------------------------------------------------
|
3
|
+
|
4
|
+
\title{Test of Template context}
|
5
|
+
|
6
|
+
% ----------------------------------------------------------------
|
7
|
+
\starttext
|
8
|
+
|
9
|
+
|
10
|
+
Some text
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
Umlaute: öäü ÖÄÜ ß
|
15
|
+
|
16
|
+
|
17
|
+
\stoptext
|
18
|
+
% ----------------------------------------------------------------
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--
|
2
|
+
<<prefix>>
|
3
|
+
-->
|
4
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
5
|
+
<html>
|
6
|
+
|
7
|
+
<head >
|
8
|
+
<title>Test of Template html401_strict</title>
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body ><p >Some text</p>
|
12
|
+
<p >Umlaute: ��� ��� �</p>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--
|
2
|
+
<<prefix>>
|
3
|
+
-->
|
4
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
5
|
+
<html>
|
6
|
+
|
7
|
+
<head >
|
8
|
+
<title>Test of Template html401_trans</title>
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body ><p >Some text</p>
|
12
|
+
<p >Umlaute: ��� ��� �</p>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--
|
2
|
+
<<prefix>>
|
3
|
+
-->
|
4
|
+
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
|
5
|
+
<html>
|
6
|
+
<head >
|
7
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
8
|
+
|
9
|
+
<title>Test of Template html_utf8</title>
|
10
|
+
</head>
|
11
|
+
<body ><p >Some text</p>
|
12
|
+
<p >Umlaute: öäü ÖÄÜ ß</p>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<<prefix>>
|
2
|
+
% ----------------------------------------------------------------
|
3
|
+
|
4
|
+
\title{Test of Template include}
|
5
|
+
\hypersetup{pdftitle={Test of Template include}}
|
6
|
+
|
7
|
+
% ----------------------------------------------------------------
|
8
|
+
|
9
|
+
|
10
|
+
Some text
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
Umlaute: ��� ��� �
|
15
|
+
|
16
|
+
|
17
|
+
% ----------------------------------------------------------------
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<<prefix>>
|
2
|
+
% ----------------------------------------------------------------
|
3
|
+
|
4
|
+
\title{Test of Template include\_utf8}
|
5
|
+
\hypersetup{pdftitle={Test of Template include\_utf8}}
|
6
|
+
|
7
|
+
% ----------------------------------------------------------------
|
8
|
+
|
9
|
+
|
10
|
+
Some text
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
Umlaute: öäü ÖÄÜ ß
|
15
|
+
|
16
|
+
|
17
|
+
% ----------------------------------------------------------------
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--
|
2
|
+
<<prefix>>
|
3
|
+
-->
|
4
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
5
|
+
<html>
|
6
|
+
|
7
|
+
<head >
|
8
|
+
<title>Test of Template xhtml_strict</title>
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body ><p >Some text</p>
|
12
|
+
<p >Umlaute: ��� ��� �</p>
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!--
|
2
|
+
<<prefix>>
|
3
|
+
-->
|
4
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
<html>
|
6
|
+
|
7
|
+
<head >
|
8
|
+
<title>Test of Template xhtml_trans</title>
|
9
|
+
</head>
|
10
|
+
|
11
|
+
<body ><p >Some text</p>
|
12
|
+
<p >Umlaute: ��� ��� �</p>
|
13
|
+
</body>
|
14
|
+
</html>
|