docgenerator 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. data/build_test_and_doc.rb +505 -0
  2. data/examples/creole_example.rb +82 -0
  3. data/examples/creole_example_footnote.rb +67 -0
  4. data/examples/creole_example_placeholder.rb +77 -0
  5. data/examples/creole_example_rail.rb +154 -0
  6. data/examples/creole_example_rubycode.rb +144 -0
  7. data/examples/creole_example_struktex.rb +169 -0
  8. data/examples/docgenerator_example.rb +1 -1
  9. data/examples/docgenerator_example_footnote.rb +1 -0
  10. data/examples/docgenerator_example_list.rb +3 -0
  11. data/examples/docgenerator_example_restrictions.rb +1 -1
  12. data/examples/docgenerator_example_tabular.rb +1 -1
  13. data/examples/docgenerator_example_tripfalls.rb +2 -2
  14. data/examples/results/readme +2 -1
  15. data/examples/wiki2docgenerator_example.rb +61 -32
  16. data/lib/creole/creole2doc.rb +57 -58
  17. data/lib/creole/creole_characters.rb +56 -0
  18. data/lib/creole/creole_inclusion_and_plugins.rb +59 -284
  19. data/lib/creole/creole_inclusions.rb +142 -0
  20. data/lib/creole/creole_placeholder.rb +57 -23
  21. data/lib/creole/creole_plugins.rb +198 -0
  22. data/lib/creole/creole_tabular.rb +16 -8
  23. data/lib/creole/plugins/rail.rb +182 -0
  24. data/lib/creole/plugins/rubycode4creole.rb +136 -0
  25. data/lib/creole/plugins/struktex.rb +59 -0
  26. data/lib/creole/plugins/todonotes.rb +70 -0
  27. data/lib/docgenerator.rb +161 -71
  28. data/lib/docgenerator/attribute.rb +189 -156
  29. data/lib/docgenerator/characters.rb +824 -267
  30. data/lib/docgenerator/compatibility_v1.rb +249 -0
  31. data/lib/docgenerator/css.rb +53 -32
  32. data/lib/docgenerator/document.rb +119 -56
  33. data/lib/docgenerator/element.rb +304 -351
  34. data/lib/docgenerator/element_meta.rb +303 -0
  35. data/lib/docgenerator/elements.rb +1112 -481
  36. data/lib/docgenerator/environments.rb +153 -62
  37. data/lib/docgenerator/footnote.rb +30 -9
  38. data/lib/docgenerator/lists.rb +71 -47
  39. data/lib/docgenerator/packages/attachfile.rb +136 -0
  40. data/lib/{packages/docgenerator_caption.rb → docgenerator/packages/caption.rb} +28 -19
  41. data/lib/docgenerator/packages/hyperref.rb +194 -0
  42. data/lib/docgenerator/packages/listings.rb +179 -0
  43. data/lib/docgenerator/packages/pdfpages.rb +43 -0
  44. data/lib/docgenerator/packages/rubycode4doc.rb +227 -0
  45. data/lib/{packages/docgenerator_scrlettr2.rb → docgenerator/packages/scrlettr2.rb} +25 -16
  46. data/lib/docgenerator/packages/scrpage2.rb +410 -0
  47. data/lib/docgenerator/packages/struktex.rb +447 -0
  48. data/lib/docgenerator/packages/todonotes.rb +85 -0
  49. data/lib/{packages/docgenerator_url.rb → docgenerator/packages/url.rb} +7 -6
  50. data/lib/docgenerator/sections.rb +257 -83
  51. data/lib/docgenerator/standard.rb +19 -11
  52. data/lib/docgenerator/tabular.rb +234 -118
  53. data/lib/{templates → docgenerator/templates}/docgenerator_template.rb +52 -44
  54. data/lib/{templates → docgenerator/templates}/docgenerator_template.yaml +0 -0
  55. data/lib/{templates → docgenerator/templates}/docgenerator_template_css.rb +22 -16
  56. data/lib/wiki2doc/plugins/rubycode4wiki.rb +53 -0
  57. data/lib/wiki2doc/plugins/struktex.rb +12 -0
  58. data/lib/wiki2doc/wiki2docgenerator.rb +39 -38
  59. data/lib/wiki2doc/wikimedia_document.rb +24 -0
  60. data/manpage_elements.rb +10411 -0
  61. data/readme.rd +34 -24
  62. data/unittest/creole_testtext.creole +11 -0
  63. data/unittest/expected/test_document_usepackage_undefined.log +2 -2
  64. data/unittest/expected/test_runtex.stdout +0 -1
  65. data/unittest/expected/test_runtex_2.stdout +0 -1
  66. data/unittest/expected/toc_css.css +3 -2
  67. data/unittest/expected_creole/test_creole_characters_all.creole +28 -0
  68. data/unittest/expected_creole/test_creole_characters_all.html +15 -15
  69. data/unittest/expected_creole/test_creole_characters_all.latex +15 -15
  70. data/unittest/expected_creole/test_creole_footnotes_groupid.html +15 -0
  71. data/unittest/expected_creole/test_creole_links_file.html +2 -2
  72. data/unittest/expected_creole/test_creole_links_file.latex +2 -2
  73. data/unittest/expected_creole/test_creole_links_file.text +2 -2
  74. data/unittest/expected_creole/test_creole_picture_link.html +1 -1
  75. data/unittest/expected_creole_rail/test_rail_creole_object.tex +33 -0
  76. data/unittest/expected_creole_rail/test_rail_creole_placeholder.tex +40 -0
  77. data/unittest/expected_rubycode4doc/creole_complete.html +26 -0
  78. data/unittest/expected_rubycode4doc/creole_complete.tex +40 -0
  79. data/unittest/expected_rubycode4doc/creole_in_tab.html +4 -0
  80. data/unittest/expected_rubycode4doc/creole_in_tab.tex +6 -0
  81. data/unittest/expected_rubycode4doc/creole_inline_ruby.html +7 -0
  82. data/unittest/expected_rubycode4doc/creole_output.html +2 -0
  83. data/unittest/expected_rubycode4doc/creole_output.tex +4 -0
  84. data/unittest/expected_rubycode4doc/creole_rubycode.html +1 -0
  85. data/unittest/expected_rubycode4doc/creole_rubycode.tex +3 -0
  86. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated.html +1 -0
  87. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated.tex +3 -0
  88. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated_listings.html +3 -0
  89. data/unittest/expected_rubycode4doc/creole_rubycode_evaluated_listings.tex +5 -0
  90. data/unittest/expected_rubycode4doc/wiki_1.html +8 -0
  91. data/unittest/expected_rubycode4doc/wiki_2.html +8 -0
  92. data/unittest/expected_rubycode4doc/wiki_3.html +9 -0
  93. data/unittest/expected_rubycode4doc/wiki_immediate_1.html +5 -0
  94. data/unittest/expected_rubycode4doc/wiki_immediate_2.html +5 -0
  95. data/unittest/expected_rubycode4doc/wiki_immediate_3.html +8 -0
  96. data/unittest/expected_rubycode4doc/wiki_immediate_full.html +21 -0
  97. data/unittest/expected_struktex/test_struktex_krug.creole +15 -0
  98. data/unittest/expected_struktex/test_struktex_krug.tex +19 -0
  99. data/unittest/expected_struktex/test_struktex_krug.wiki +15 -0
  100. data/unittest/expected_struktex/test_struktex_statement.creole +7 -0
  101. data/unittest/expected_struktex/test_struktex_statement.tex +9 -0
  102. data/unittest/expected_struktex/test_struktex_statement.wiki +7 -0
  103. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.html +0 -0
  104. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.latex +0 -0
  105. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.text +0 -0
  106. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki.wiki +0 -0
  107. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.html +1 -1
  108. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.latex +1 -1
  109. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.text +1 -1
  110. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_description.wiki +1 -1
  111. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.html +0 -0
  112. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.latex +0 -0
  113. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.text +0 -0
  114. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote.wiki +0 -0
  115. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote_2.html +0 -0
  116. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_footnote_groupid.html +0 -0
  117. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.html +0 -0
  118. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.latex +0 -0
  119. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.text +0 -0
  120. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_html_code.wiki +0 -0
  121. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.html +0 -0
  122. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.latex +0 -0
  123. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.text +0 -0
  124. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_inline.wiki +0 -0
  125. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_label.html +0 -0
  126. data/unittest/expected_wikimedia/test_wiki_link.html +8 -0
  127. data/unittest/expected_wikimedia/test_wiki_link.latex +17 -0
  128. data/unittest/expected_wikimedia/test_wiki_link.wiki +11 -0
  129. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.html +0 -0
  130. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.latex +0 -0
  131. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.text +0 -0
  132. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol.wiki +0 -0
  133. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.html +0 -0
  134. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.latex +0 -0
  135. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.text +0 -0
  136. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_after_ul.wiki +0 -0
  137. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.html +0 -0
  138. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.latex +0 -0
  139. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.text +0 -0
  140. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ol_ul.wiki +0 -0
  141. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.html +0 -0
  142. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.latex +0 -0
  143. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.text +0 -0
  144. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul.wiki +0 -0
  145. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.html +0 -0
  146. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.latex +0 -0
  147. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.text +0 -0
  148. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_list_ul_too_much.wiki +0 -0
  149. data/unittest/expected_wikimedia/test_wiki_picture.html +55 -0
  150. data/unittest/expected_wikimedia/test_wiki_picture.latex +76 -0
  151. data/unittest/expected_wikimedia/test_wiki_picture_thumb.html +5 -0
  152. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.html +0 -0
  153. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.latex +0 -0
  154. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_tab1.wiki +0 -0
  155. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.html +0 -0
  156. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.latex +0 -0
  157. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.text +0 -0
  158. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_textformatting.wiki +0 -0
  159. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.html +0 -0
  160. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.latex +0 -0
  161. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.text +0 -0
  162. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_toc.wiki +0 -0
  163. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.html +0 -0
  164. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.latex +0 -0
  165. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.text +0 -0
  166. data/unittest/{expected_wiki → expected_wikimedia}/test_wiki_ul_multiple_line.wiki +0 -0
  167. data/unittest/{unittest_creole2doc.rb → unittest_creole.rb} +385 -476
  168. data/unittest/unittest_creole_placeholders.rb +272 -0
  169. data/unittest/unittest_creole_plugin_rail.rb +147 -0
  170. data/unittest/unittest_docgenerator.rb +206 -332
  171. data/unittest/unittest_docgenerator_characters.rb +650 -0
  172. data/unittest/unittest_docgenerator_runtex.rb +48 -20
  173. data/unittest/unittest_packages_struktex.rb +187 -0
  174. data/unittest/unittest_rubycode4doc.rb +275 -0
  175. data/unittest/unittest_wikimedia.rb +479 -0
  176. metadata +245 -172
  177. data/examples/results_expected/docgenerator_example.html +0 -39
  178. data/examples/results_expected/docgenerator_example.pdf +0 -0
  179. data/examples/results_expected/docgenerator_example.tex +0 -56
  180. data/examples/results_expected/docgenerator_example_footnote.html +0 -40
  181. data/examples/results_expected/docgenerator_example_footnote.pdf +0 -0
  182. data/examples/results_expected/docgenerator_example_footnote.tex +0 -50
  183. data/examples/results_expected/docgenerator_example_list.html +0 -18
  184. data/examples/results_expected/docgenerator_example_list.pdf +0 -0
  185. data/examples/results_expected/docgenerator_example_list.tex +0 -46
  186. data/examples/results_expected/docgenerator_example_restrictions.html +0 -22
  187. data/examples/results_expected/docgenerator_example_restrictions.pdf +0 -0
  188. data/examples/results_expected/docgenerator_example_restrictions.tex +0 -31
  189. data/examples/results_expected/docgenerator_example_tabular.html +0 -37
  190. data/examples/results_expected/docgenerator_example_tabular.pdf +0 -0
  191. data/examples/results_expected/docgenerator_example_tabular.tex +0 -41
  192. data/examples/results_expected/docgenerator_example_tripfalls.html +0 -27
  193. data/examples/results_expected/docgenerator_example_tripfalls.pdf +0 -0
  194. data/examples/results_expected/docgenerator_example_tripfalls.tex +0 -31
  195. data/lib/packages/docgenerator_attachfile.rb +0 -71
  196. data/lib/packages/docgenerator_hyperref.rb +0 -109
  197. data/lib/packages/docgenerator_listings.rb +0 -103
  198. data/lib/packages/docgenerator_pdfpages.rb +0 -24
  199. data/lib/packages/docgenerator_scrpage2.rb +0 -172
  200. data/self_docgenerator.rb +0 -163
  201. data/unittest/expected_wiki/test_wiki_link.html +0 -8
  202. data/unittest/expected_wiki/test_wiki_link.latex +0 -17
  203. data/unittest/expected_wiki/test_wiki_link.wiki +0 -11
  204. data/unittest/expected_wiki/test_wiki_picture.html +0 -55
  205. data/unittest/expected_wiki/test_wiki_picture.latex +0 -76
  206. data/unittest/expected_wiki/test_wiki_picture_thumb.html +0 -5
  207. data/unittest/test_rakefile_docgenerator.rb +0 -43
  208. data/unittest/unittest_versions.rb +0 -44
  209. data/unittest/unittest_wiki2doc.rb +0 -464
@@ -0,0 +1,169 @@
1
+ #encoding: cp1252
2
+ =begin rdoc
3
+ Example how to define a structogramm with creole2doc.
4
+ =end
5
+
6
+ require 'rubygems'
7
+ $:.unshift("../lib") #for local tests with uninstalled gem
8
+ require 'creole/creole2doc'
9
+ require 'creole/plugins/struktex.rb'
10
+
11
+ begin
12
+ require 'rake4latex_pdflatex'
13
+ rescue LoadError
14
+ puts "rake4latex not installed -> no translation of LaTeX-file"
15
+ end
16
+
17
+ #
18
+ # Move all results to another folder
19
+ #
20
+ Dir.chdir('results')
21
+
22
+ doc = Docgenerator::Document.new(
23
+ :title => 'creole/plugins/struktex.rb - Structogramms with Creole2Doc',
24
+ #~ :shorttitle => 'struktex.rb',
25
+ :author => 'Knut Lickert',
26
+ :maketitle => true
27
+ )
28
+ doc.head << Docgenerator::Packages::Struktex::USEPACKAGE_STRUKTEX
29
+ doc.head << Docgenerator::Packages::Struktex::USEPACKAGE_STRUKTEX_PROOF
30
+
31
+
32
+ #Redefinition to_latex for this documentation.
33
+ #Result is structogramm and sourcecode.
34
+ class Docgenerator::Packages::Struktex::Structogramm
35
+ alias :old_latex :to_latex
36
+ def to_latex(options={})
37
+ return [self.verbatim.to_latex, self.old_latex(options)].join
38
+ end
39
+ end
40
+
41
+
42
+ doc.body << (Docgenerator::Creole::Creole.new( :content => <<WIKI
43
+ =Preamble=
44
+ Code2Structgramm.rb translates a pseudo-code programm
45
+ to TeX-code for the \\StrukTeX-package.
46
+ \\StrukTeX\\ creates Nassi-Shneidermann-diagramms.
47
+
48
+ There is no support by this generator for:
49
+ *Interface description
50
+ *Variables and Keywords
51
+ *Comments
52
+
53
+ =Example=
54
+ An example, based on a German Saying
55
+ ''Der Krug geht solange zum Brunnen bis er bricht''
56
+ <<<structogramm|Krug;120;45
57
+ WHILE Krug nicht zerbrochen
58
+ Krug geht zum Brunnen
59
+ ENDWHILE
60
+ Qualit�tspr�fung
61
+ -> Krug Testgut
62
+ <- res_1 Pr�fergebnis
63
+ IF Krug zerbrochen
64
+ THEN
65
+ Schade
66
+ ELSE
67
+ Stabiler Krug
68
+ ENDIF
69
+ >>>
70
+
71
+ =Statements=
72
+ No support for:
73
+ *Height
74
+
75
+ <<<structogramm|Simple Statements;120;30
76
+ Statement
77
+ => Call procedure
78
+ <> Return value
79
+ <= Exit with return value
80
+ >>>
81
+
82
+ ==Declarations==
83
+ With declarations you can define interfaces of sub-routines.
84
+ This declarations are part of the command
85
+ <<<structogramm|Declarations/Interfaces;120;25
86
+ Statement
87
+ -> field1 description
88
+ <- field2 description
89
+ <-> field3 description
90
+ >>>
91
+
92
+ ==IF-Statement==
93
+ IF Condition
94
+ THEN size text
95
+ ELSE size text
96
+ ENDIF
97
+ <<<structogramm|Test f�r IF;120;40
98
+ IF Bedingung?
99
+ THEN 6 Ja
100
+ IF Andere Frage?
101
+ THEN
102
+ <= Ergebnis
103
+ ELSE
104
+ <= Anderes Ergebnis
105
+ ENDIF
106
+ ELSE 6 Nein
107
+ IF Andere Frage?
108
+ THEN 4
109
+ <= Ergebnis
110
+ ELSE 5
111
+ <= Anderes Ergebnis
112
+ ENDIF
113
+ ENDIF
114
+ >>>
115
+
116
+ ==CASE-statements==
117
+ The first number after CASE defines the degree of the case-line.
118
+
119
+ The WHEN clause has an optional parameter:
120
+ *c centered
121
+ *r right-aligned
122
+ <<<structogramm|CASE Statements;120;40
123
+ CASE 5 variable
124
+ WHEN value1
125
+ Statement 1-1
126
+ Statement 1-2
127
+ WHEN[r] value2
128
+ Statement 2-1
129
+ Statement 2-2
130
+ WHEN[c] value3
131
+ Statement 3-1
132
+ Statement 3-2
133
+ WHEN value4
134
+ Statement 4-1
135
+ Statement 4-2
136
+ ENDCASE
137
+ >>>
138
+ ==While-statements==
139
+ <<<structogramm|While Statements;120;15
140
+ WHILE Condition
141
+ Statement
142
+ ENDWHILE
143
+ >>>
144
+
145
+ ==Repeat-Until-statements==
146
+ <<<structogramm|Repeat-Until Statements;120;15
147
+ REPEAT
148
+ Statement
149
+ UNTIL Condition
150
+ >>>
151
+
152
+ ==FOREVER-Loop-statements==
153
+ <<<structogramm|FOREVER-Loop Statements;120;30
154
+ FOREVER
155
+ Statement
156
+ <= Exit
157
+ ENDFOREVER
158
+ >>>
159
+
160
+ WIKI
161
+ ))
162
+
163
+ # ###############################
164
+ # Save the files
165
+ # ###############
166
+ #~ doc.save( __FILE__.sub(/\.rb/, ".html")) #makes no sense
167
+ doc.save( __FILE__.sub(/\.rb/, ".tex"),
168
+ :runtex => [:statistic, :clean]
169
+ )
@@ -24,7 +24,7 @@ Dir.chdir('results')
24
24
  #
25
25
  # Create a document
26
26
  #
27
- doc = Document.new(
27
+ doc = Docgenerator::Document.new(
28
28
  :title => 'Testdocument for docgenerator.rb',
29
29
  :language => 'english',
30
30
  :author => 'Authorname',
@@ -13,6 +13,7 @@ link:examples/results_expected/docgenerator_example_footnote.pdf
13
13
  require 'rubygems'
14
14
  $:.unshift("../lib") #for local tests with uninstalled gem
15
15
  require 'docgenerator'
16
+ include Docgenerator
16
17
  begin
17
18
  require 'rake4latex_pdflatex'
18
19
  rescue LoadError
@@ -5,6 +5,9 @@
5
5
  require 'rubygems'
6
6
  $:.unshift("../lib") #for local tests with uninstalled gem
7
7
  require 'docgenerator'
8
+ include Docgenerator
9
+ #~ DOCGENERATOR_LOGGER.level = Log4r::DEBUG
10
+
8
11
  begin
9
12
  require 'rake4latex_pdflatex'
10
13
  rescue LoadError
@@ -18,7 +18,7 @@ Dir.chdir('results')
18
18
  #
19
19
  # Create a document
20
20
  #
21
- doc = Document.new(
21
+ doc = Docgenerator::Document.new(
22
22
  :title => 'Testdocument with restrictions to output format'
23
23
  )
24
24
 
@@ -18,7 +18,7 @@ Dir.chdir('results')
18
18
  #
19
19
  # Create a document
20
20
  #
21
- doc = Document.new(
21
+ doc = Docgenerator::Document.new(
22
22
  :title => 'Testdocument with tabulars'
23
23
  )
24
24
 
@@ -19,12 +19,12 @@ Dir.chdir('results')
19
19
  #
20
20
  #Set level of gloabl error messages.
21
21
  #
22
- DOCGENERATOR_LOGGER.level = Log4r::WARN
22
+ Docgenerator::DOCGENERATOR_LOGGER.level = Log4r::WARN
23
23
 
24
24
  #
25
25
  # Create a document
26
26
  #
27
- doc = Document.new(
27
+ doc = Docgenerator::Document.new(
28
28
  :title => 'Testdocument with tripfalls'
29
29
  )
30
30
  #~ doc.log.level = Log4r::WARN
@@ -1 +1,2 @@
1
- Target folder for test examples
1
+ Target folder for test examples.
2
+
@@ -1,32 +1,62 @@
1
- require 'C:/usr/Script/MyScripts' if File.exist?('C:/usr/Script/MyScripts.rb')
2
- #~ require 'docgenerator'
3
- require 'wiki2docgenerator' if ! defined? Wikitext
4
- #~ require '20070622_wiki2docgenerator' if ! defined? Wikitext
1
+ #encoding: cp1252
2
+ =begin rdoc
3
+ Example for wiki2doc/wiki2docgenerator
5
4
 
6
- #~ Element.log(true)
7
- #~ Element.trace==true
5
+ ==Obsolete!!
6
+ There is no support for the wikimedia-syntax in docgenerator.
8
7
 
9
- wiki = Wikitext.new( :parsetext => true )
8
+ Please use creole/creole2doc.
9
+ =end
10
+ require 'rubygems'
11
+ $:.unshift("../lib") #for local tests with uninstalled gem
12
+ #~ require 'docgenerator'
13
+ require 'wiki2doc/wiki2docgenerator' if ! defined? Wikitext
14
+ begin
15
+ require 'rake4latex_pdflatex'
16
+ rescue LoadError
17
+ puts "rake4latex not installed -> no translation of LaTeX-file"
18
+ end
19
+
20
+ #
21
+ # Move all results to anothe folder
22
+ #
23
+ Dir.chdir('results')
24
+
25
+ =begin
26
+ Define the wiki-container
27
+ =end
28
+ wiki = Docgenerator::Wikimedia::Wikitext.new( :parsetext => true )
10
29
  wiki << DATA#.readlines.to_s
11
- #~ wiki << %q|
12
- #~ |
13
30
 
14
- doc = Document.new()
15
- doc.title = 'wiki2docgenerator_example.rb: Test for wiki2docgenerator'
31
+
32
+ =begin
33
+ Create document
34
+ =end
35
+ doc = Docgenerator::Document.new(
36
+ :title => 'wiki2docgenerator_example.rb: Test for wiki2docgenerator'
37
+ )
38
+
39
+
16
40
  #For TeX you can use element(:tableofcontent),
17
41
  #in HTML you can use element( :toc, :h3) in combination with sitegenerator
18
- doc.body << wiki.toc( #include the toc
19
- :listtype => :ul,
20
- :level => 2,
21
- :startlevel => 1,
22
- :addlinks => false
23
- )
42
+ #~ doc.body << wiki.toc( #include the toc
43
+ #~ :listtype => :ul,
44
+ #~ :level => 2,
45
+ #~ :startlevel => 1,
46
+ #~ :addlinks => false
47
+ #~ )
48
+
24
49
  doc.body << wiki
25
- doc.body << wiki.footnotes #include the footnotes
26
- doc.save('test_wiki2docgenerator.html', true)
27
- doc.save('test_wiki2docgenerator.wiki', true)
28
- doc.save('test_wiki2docgenerator.txt', true)
29
- doc.save('test_wiki2docgenerator.tex', true)
50
+ doc.body << wiki.footnotes #include the footnotes (only html)
51
+
52
+ # ###############################
53
+ # Save the files
54
+ # ###############
55
+ doc.save( __FILE__.sub(/\.rb/, ".html"))
56
+ doc.save( __FILE__.sub(/\.rb/, ".tex"),
57
+ :runtex => [:statistic, :clean]
58
+ )
59
+
30
60
 
31
61
  __END__
32
62
  ==Wiki2docgenerator.rb==
@@ -48,10 +78,10 @@ Example-Programm:
48
78
  doc.body << wiki.toc #include the table of content
49
79
  doc.body << wiki.to_element
50
80
  doc.body << wiki.footnotes #include the footnotes
51
- doc.save('test.html', true)
52
- doc.save('test.wiki', true)
53
- doc.save('test.txt', true)
54
- doc.save('test.tex', true)
81
+ doc.save('test.html')
82
+ doc.save('test.wiki')
83
+ doc.save('test.txt')
84
+ doc.save('test.tex')
55
85
 
56
86
  ==Titel 1==
57
87
  ===Titel 2===
@@ -95,7 +125,7 @@ text in neuem Absatz
95
125
  ===Wilde Mischung Punkte- und Nummerierte Liste nacheinander===
96
126
  *list (*)
97
127
  **list (**)
98
- #*list (#*) Hier Wechsel auf erster Ebene
128
+ #*list (\#*) Hier Wechsel auf erster Ebene
99
129
 
100
130
  ===Definitionsliste ===
101
131
  ;Definitionsliste
@@ -178,7 +208,7 @@ Besonderheiten:
178
208
  ==Tabellen==
179
209
  Die Syntax:
180
210
  *{| beginnt eine Tabelle. Hier k�nnen zus�tzliche Formatierungseigenschaften kommen.
181
- **Zumindest columns==__ sollte gesetzt sein
211
+ **Zumindest columns==?? sollte gesetzt sein
182
212
  *! beginnt eine neue Zelle einer Titelzeile
183
213
  *| beginnt eine neue Zelle
184
214
  *|| trennt zwei Zellen (nicht unterst�tzt)
@@ -193,7 +223,7 @@ Die Syntax:
193
223
  *|} beendet eine Tabelle
194
224
 
195
225
  Beispiel 1:
196
- {|columns=2
226
+ {|columns=2|columndescription=cc
197
227
  |Zelle 1
198
228
  |Zelle 2
199
229
  |-
@@ -205,9 +235,9 @@ Beispiel 1:
205
235
  |}
206
236
 
207
237
  Beispiel 2:
208
- {| border=1|columns=6
238
+ {| border=1|columns=6|columndescription=cccccc
209
239
  |Zelle 1
210
- |colspan=5|text-align=center| Zelle 2 �ber zwei Spalten
240
+ |colspan=5|text-align=center| Zelle 2 �ber f�nf Spalten
211
241
  |-
212
242
  |Zelle 3
213
243
  |Zelle 4
@@ -259,7 +289,6 @@ Mit
259
289
  <<<
260
290
  wird eine externe Aufbereitung gerufen.
261
291
  key wird von WikiCollector genutzt um den Aufbereiter (Klasse) zu rufen.
262
- Der Aufbereiter muss die Methoden << und to_element unterst�tzen.
263
292
 
264
293
  html ist bereits definiert und erlaubt die Verwednung von Original-Htlm
265
294
 
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ #encoding: cp1252
2
2
  =begin rdoc
3
3
  This is a Creole-to-Docgenerator converter.
4
4
  The Docgenerator-data can be exported as
@@ -14,16 +14,17 @@ https://rubyforge.org/projects/wikicreole/
14
14
  More about creole at http://www.wikicreole.org/
15
15
  =end
16
16
 
17
- class Creole
18
- VERSION = '1.2.1'
19
- end
20
- #~ $:.unshift("../") #for test purposes.
21
- #Load the same version of docgenerator
17
+ $:.unshift("..") if $0 == __FILE__ #for test purposes.
22
18
  require 'docgenerator'
23
- if Creole::VERSION != Docgenerator::VERSION
24
- raise LoadError, "Creole V#{Creole::VERSION} needs Docgenerator #{Creole::VERSION}, but gets #{Docgenerator::VERSION}"
25
- end
26
19
 
20
+ module Docgenerator
21
+
22
+ =begin rdoc
23
+ Collect the classes to handle Creole-input.
24
+
25
+ More about creole at http://www.wikicreole.org/
26
+ =end
27
+ module Creole
27
28
 
28
29
  =begin rdoc
29
30
  Some class definitions for the Creole-class.
@@ -32,17 +33,6 @@ class Creole
32
33
 
33
34
  #Little structure to store the parsing result.
34
35
  Creole_line = Struct.new('Creole_line', :type, :content, :add_info)
35
- #Define Placeholders
36
- #Placeholders are used via <<<...>>>
37
- #Default: Creole_dummy_placeholder (set in class definition Creole_dummy_placeholder)
38
- Placeholders = Hash.new()
39
- #Define Inclusions
40
- #Inclusions are used via {{...}}
41
- #Default: Creole_inclusion_img (defined in class definition Creole_inclusion_img)
42
- Inclusions = Hash.new()
43
- #Define Plugins
44
- #Plugins are used via <<...>>
45
- Plugins = Hash.new()
46
36
 
47
37
  #Hash with Characters.
48
38
  #This characters will be converted into elements.
@@ -55,13 +45,13 @@ class Creole
55
45
  '<-' => element(:leftarrow),
56
46
  '<=' => element(:Leftarrow),
57
47
  '_' => element(:underscore),
58
- '' => element(:ldots),
59
- '' => element(:sbquo), # einfaches low-9-Zeichen, U+201A , &#8218;
60
- '' => element(:rsquo), #'zu &#8217;
61
- '' => element(:bdquo), #"auf &#8222;
62
- '' => element(:ldquo), #"zu &#8220;
63
- '' => element(:ndash), # &#8211;
64
- '' => element(:mdash), # &#8211;
48
+ '' => element(:ldots),
49
+ '' => element(:sbquo), # einfaches low-9-Zeichen, U+201A , &#8218;
50
+ '' => element(:rsquo), #'zu &#8217;
51
+ '' => element(:bdquo), #"auf &#8222;
52
+ '' => element(:ldquo), #"zu &#8220;
53
+ '' => element(:ndash), # &#8211;
54
+ '' => element(:mdash), # &#8211;
65
55
  }
66
56
 
67
57
  =begin rdoc
@@ -164,7 +154,7 @@ end #Creole
164
154
  require_relative 'creole_placeholder.rb'
165
155
  require_relative 'creole_tabular.rb'
166
156
  require_relative 'creole_inclusion_and_plugins.rb'
167
- begin require 'privat/creole_affiliate.rb'; rescue LoadError; end #Just some privat extension
157
+ #~ begin require 'privat/creole_affiliate.rb'; rescue LoadError; end #Just some privat extension
168
158
 
169
159
  require 'log4r'
170
160
 
@@ -178,7 +168,6 @@ multiple HTML (corresponding to pages).
178
168
  HTML-pagebreak could be forced with ======== or something similar.
179
169
  =end
180
170
  class Creole_document
181
- include Docgenerator #get VERSION
182
171
 
183
172
  =begin rdoc
184
173
  Define a creole document. The settings are forwarded to Document#new()
@@ -261,7 +250,8 @@ Example:
261
250
  =Test document
262
251
  This is a little test text with **bold** and //italic// text.
263
252
  txt
264
- puts wiki.to_latex()
253
+ wiki.to_latex()
254
+
265
255
  Often I use it in combination with "Here"-Documents with __END__:
266
256
 
267
257
  require 'creole/creole2doc'
@@ -305,9 +295,9 @@ Options:
305
295
  :ignore => nil, #Define a "local" comment, e.g /^#~.*$/
306
296
  :encoding => __ENCODING__,
307
297
  }.update(options)
308
- @placeholders = Placeholders.dup
309
- @inclusions = Inclusions.dup
310
- @plugins = Plugins.dup
298
+ @placeholders = Placeholders::Collection.dup
299
+ @inclusions = Inclusions::Collection.dup
300
+ @plugins = Plugins::Collection.dup
311
301
 
312
302
  #Store the given source text
313
303
  @source = []
@@ -316,12 +306,13 @@ Options:
316
306
  @toc = [] #Collection of all heading lines
317
307
  @footnotegroups = {} #Collection of footnote groups
318
308
 
319
-
320
309
  @targetdir = @options[:targetdir] if @options[:targetdir]
310
+
321
311
  @log = @options[:log]
322
312
  @log = Log4r::Logger.new(@options[:name], Log4r::INFO) unless @log
323
313
  @log.outputters = Log4r::StdoutOutputter.new('log_stdout') if @log.outputters.empty?
324
314
 
315
+ @creation_caller = caller.first
325
316
  self << @options[:content] if @options[:content]
326
317
  end
327
318
 
@@ -479,7 +470,7 @@ Parse the given creole code and build a "normalized source"
479
470
  normsource << Creole_line.new(:placeholder,
480
471
  @placeholders['creole_tabular'].new(self),
481
472
  :start => lineno
482
- ) unless normsource.last.content.is_a?(Creole_creoletab)
473
+ ) unless normsource.last.content.is_a?(Creole_tab)
483
474
  normsource.last.content << line
484
475
  #http://www.wikicreole.org/wiki/PreformattedAndNowiki
485
476
  when /^\{\{\{\s*$/ #Kind of verbatim
@@ -489,7 +480,7 @@ Parse the given creole code and build a "normalized source"
489
480
  when /^<<<(.*)/
490
481
  ph, par = $1.split(/\|/,2)
491
482
  placeholder = @placeholders[ph].new(self, par)
492
- if placeholder.is_a?(Creole_dummy_placeholder)
483
+ if placeholder.instance_of?(Placeholders::Dummy)
493
484
  @log.warn("Unknown placeholder #{ph.inspect} used in line #{lineno}" ) if @log.warn?
494
485
  end
495
486
  normsource << Creole_line.new(:placeholder, placeholder, :start => lineno )
@@ -529,7 +520,7 @@ Parse the given creole code and build a "normalized source"
529
520
  #
530
521
 
531
522
  =begin rdoc
532
- Return a table of contents as a list
523
+ Return a table of contents as a list.
533
524
  =end
534
525
  def toc( i_options = {})
535
526
  options = {
@@ -571,6 +562,10 @@ Return a table of contents as a list
571
562
  elsif level < toclabel.size
572
563
  toclabel.pop
573
564
  end
565
+ if ! toclabel[level-1]
566
+ @log.fatal("toclevel error: #{__FILE__}##{__LINE__}")
567
+ return nil
568
+ end
574
569
  toclabel[level-1] = toclabel[level-1] + 1
575
570
 
576
571
  #Check if there was already a label.
@@ -650,7 +645,6 @@ Used by
650
645
  }, line.content ).cr
651
646
  #~ }, inline(line.content, options ) ).cr
652
647
  when :list
653
- #~ puts line[:add_info].inspect
654
648
  key = line.add_info[:listtype]
655
649
  if ! elements[key]
656
650
  case key[-1,1]
@@ -771,7 +765,7 @@ Options is a Hash and may contain:
771
765
  else #internal link
772
766
  #This is normally the wiki-links.
773
767
  #But this is no wiki, it's a documentgenerator with wiki syntax.
774
- options[:log].warn("Unclear link <#{el}>") if options[:log].warn?
768
+ options[:log].warn("Unclear link <#{el}> #{self.inspect}") if options[:log].warn?
775
769
  link = link
776
770
  end
777
771
  if link == linktext #Avoid replacement of // inside linktext
@@ -832,7 +826,7 @@ Options is a Hash and may contain:
832
826
  else #text to add
833
827
  #Replace characters.
834
828
  if CHARACTERS[el]
835
- insertion = CHARACTERS[el] if CHARACTERS[el]
829
+ insertion = CHARACTERS[el]
836
830
  startspace = endspace = nil
837
831
  else
838
832
  startspace = ( el[0,1] =~ /\s/ )
@@ -871,7 +865,8 @@ The last paramter contains a hash with the supported inclusions/plugins.
871
865
 
872
866
  inclusion = inclusions[link]
873
867
  #check inclusion.ancestors?
874
- if inclusion.superclass != Creole_inclusion_and_plugin
868
+ #~ if inclusion.superclass != Creole_inclusion_and_plugin
869
+ if inclusion.is_a?(Creole_inclusion_and_plugin)
875
870
  @log.error( "Wrong inclusion/plugin definition for #{link} (#{inclusion.inspect}, expected #{inclusions.default.superclass})") if @log.error?
876
871
  return nil
877
872
  end
@@ -898,28 +893,32 @@ Relative pathes are searched from @options[:targetdir] (default '.').
898
893
  fpath = File.expand_path("#{Dir.pwd}/#{path}")
899
894
  log.debug("Reference not found: <#{fpath}>") if log.debug?
900
895
  end
901
- end #check_link_existence
896
+ end #check_link_existence
897
+
898
+ def inspect()
899
+ "<#{self.class} (created #{@creation_caller})>"
900
+ end
902
901
  end #Creole
902
+ end #module Creole
903
+ end #module Docgenerator
904
+
903
905
 
904
906
  if [__FILE__ ].include?($0)
905
907
 
906
- #~ [
907
- #~ :syntax,
908
- #~ :creole,
909
- #~ :wikimedia,
910
- #~ :trippfall,
911
- #~ :headings,
912
- #~ :links,
913
- #~ ].each{|key|
914
- #~ puts '='*50
915
- #~ puts Creole.help(key)
916
- #~ puts '='*50
917
- #~ }
918
-
919
- #~ puts `call "../../unittest/unittest_creole2doc.rb"`
920
- #~ require 'quicktest'
908
+ [
909
+ :syntax,
910
+ :creole,
911
+ :wikimedia,
912
+ :trippfall,
913
+ :headings,
914
+ :links,
915
+ ].each{|key|
916
+ puts '='*50
917
+ puts Docgenerator::Creole::Creole.help(key)
918
+ puts '='*50
919
+ }
921
920
 
922
- creole = Creole.new
921
+ creole = Docgenerator::Creole::Creole.new
923
922
  creole << 'x{{-}}y{{-}}z'
924
923
  creole << 'x{{shy}}y{{shy}}z'
925
924
  creole << ''