webgen 0.4.7 → 0.5.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 (782) hide show
  1. data/AUTHORS +5 -0
  2. data/COPYING +8 -338
  3. data/GPL +340 -0
  4. data/Rakefile +188 -445
  5. data/THANKS +7 -22
  6. data/VERSION +1 -1
  7. data/bin/webgen +6 -1
  8. data/data/webgen/resources.yaml +3 -0
  9. data/data/webgen/website_skeleton/README +10 -0
  10. data/data/webgen/website_skeleton/Rakefile +40 -0
  11. data/data/webgen/website_skeleton/config.yaml +17 -0
  12. data/data/webgen/website_styles/1024px/{default.css → src/default.css} +0 -0
  13. data/data/webgen/website_styles/1024px/{default.template → src/default.template} +3 -5
  14. data/data/webgen/website_styles/1024px/{images → src/images}/background.gif +0 -0
  15. data/data/webgen/website_styles/andreas00/{default.css → src/default.css} +0 -0
  16. data/{doc/examples → data/webgen}/website_styles/andreas00/src/default.template +3 -5
  17. data/data/webgen/website_styles/andreas00/{images → src/images}/bg.gif +0 -0
  18. data/data/webgen/website_styles/andreas00/{images → src/images}/front.jpg +0 -0
  19. data/data/webgen/website_styles/andreas00/{images → src/images}/menubg.gif +0 -0
  20. data/data/webgen/website_styles/andreas00/{images → src/images}/menubg2.gif +0 -0
  21. data/data/webgen/website_styles/andreas01/{default.css → src/default.css} +0 -0
  22. data/{doc/examples → data/webgen}/website_styles/andreas01/src/default.template +3 -5
  23. data/data/webgen/website_styles/andreas01/{images → src/images}/bg.gif +0 -0
  24. data/data/webgen/website_styles/andreas01/{images → src/images}/front.jpg +0 -0
  25. data/data/webgen/website_styles/andreas01/{print.css → src/print.css} +0 -0
  26. data/data/webgen/website_styles/andreas03/{default.css → src/default.css} +0 -0
  27. data/data/webgen/website_styles/andreas03/{default.template → src/default.template} +2 -4
  28. data/data/webgen/website_styles/andreas03/{images → src/images}/bodybg.png +0 -0
  29. data/data/webgen/website_styles/andreas03/{images → src/images}/contbg.png +0 -0
  30. data/data/webgen/website_styles/andreas03/{images → src/images}/footerbg.png +0 -0
  31. data/data/webgen/website_styles/andreas03/{images → src/images}/gradient1.png +0 -0
  32. data/data/webgen/website_styles/andreas03/{images → src/images}/gradient2.png +0 -0
  33. data/data/webgen/website_styles/andreas04/{default.css → src/default.css} +0 -0
  34. data/data/webgen/website_styles/andreas04/{default.template → src/default.template} +2 -4
  35. data/data/webgen/website_styles/andreas04/{images → src/images}/blinkarrow.gif +0 -0
  36. data/data/webgen/website_styles/andreas04/{images → src/images}/bodybg.png +0 -0
  37. data/data/webgen/website_styles/andreas04/{images → src/images}/contentbg.png +0 -0
  38. data/data/webgen/website_styles/andreas04/{images → src/images}/entrybg.png +0 -0
  39. data/data/webgen/website_styles/andreas04/{images → src/images}/flash.gif +0 -0
  40. data/data/webgen/website_styles/andreas04/{images → src/images}/flash2.gif +0 -0
  41. data/data/webgen/website_styles/andreas04/{images → src/images}/globe.gif +0 -0
  42. data/data/webgen/website_styles/andreas04/{images → src/images}/globebottom.gif +0 -0
  43. data/data/webgen/website_styles/andreas04/{images → src/images}/linkarrow.gif +0 -0
  44. data/data/webgen/website_styles/andreas04/{images → src/images}/menuhover.png +0 -0
  45. data/data/webgen/website_styles/andreas05/{default.css → src/default.css} +0 -0
  46. data/data/webgen/website_styles/andreas05/{default.template → src/default.template} +2 -4
  47. data/data/webgen/website_styles/andreas05/{images → src/images}/bodybg.gif +0 -0
  48. data/data/webgen/website_styles/andreas05/{images → src/images}/front.png +0 -0
  49. data/data/webgen/website_styles/andreas06/{default.css → src/default.css} +0 -0
  50. data/{doc/examples → data/webgen}/website_styles/andreas06/src/default.template +4 -6
  51. data/data/webgen/website_styles/andreas06/{images → src/images}/bodybg.gif +0 -0
  52. data/data/webgen/website_styles/andreas06/{images → src/images}/boxbg.gif +0 -0
  53. data/data/webgen/website_styles/andreas06/{images → src/images}/greypx.gif +0 -0
  54. data/data/webgen/website_styles/andreas06/{images → src/images}/header.jpg +0 -0
  55. data/data/webgen/website_styles/andreas06/{images → src/images}/innerbg.gif +0 -0
  56. data/data/webgen/website_styles/andreas06/{images → src/images}/leaves.jpg +0 -0
  57. data/data/webgen/website_styles/andreas06/{images → src/images}/tabs.gif +0 -0
  58. data/data/webgen/website_styles/andreas07/{browserfix.css → src/browserfix.css} +0 -0
  59. data/data/webgen/website_styles/andreas07/{default.css → src/default.css} +0 -0
  60. data/{doc/examples → data/webgen}/website_styles/andreas07/src/default.template +2 -4
  61. data/data/webgen/website_styles/andreas07/{images → src/images}/bodybg.gif +0 -0
  62. data/data/webgen/website_styles/andreas07/{images → src/images}/sidebarbg.gif +0 -0
  63. data/data/webgen/website_styles/andreas08/{default.css → src/default.css} +0 -0
  64. data/{doc/examples → data/webgen}/website_styles/andreas08/src/default.template +3 -5
  65. data/data/webgen/website_styles/andreas09/{default.css → src/default.css} +0 -0
  66. data/data/webgen/website_styles/andreas09/{default.template → src/default.template} +4 -6
  67. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-black.jpg +0 -0
  68. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-green.jpg +0 -0
  69. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-orange.jpg +0 -0
  70. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-purple.jpg +0 -0
  71. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-red.jpg +0 -0
  72. data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg.jpg +0 -0
  73. data/data/webgen/website_styles/andreas09/{images → src/images}/footerbg.jpg +0 -0
  74. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-black.jpg +0 -0
  75. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-green.jpg +0 -0
  76. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-orange.jpg +0 -0
  77. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-purple.jpg +0 -0
  78. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-red.jpg +0 -0
  79. data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover.jpg +0 -0
  80. data/data/webgen/website_styles/{default → simple}/README +0 -0
  81. data/data/webgen/website_styles/{default → simple/src}/default.css +0 -0
  82. data/{doc/examples/website_styles/default → data/webgen/website_styles/simple}/src/default.template +3 -5
  83. data/data/webgen/website_templates/default/README +0 -2
  84. data/data/webgen/website_templates/default/src/index.page +3 -3
  85. data/data/webgen/website_templates/project/README +0 -4
  86. data/data/webgen/website_templates/project/src/about.page +5 -5
  87. data/data/webgen/website_templates/project/src/download.page +3 -3
  88. data/data/webgen/website_templates/project/src/features.page +3 -3
  89. data/data/webgen/website_templates/project/src/index.page +4 -4
  90. data/data/webgen/website_templates/project/src/screenshots.page +5 -5
  91. data/doc/contentprocessor/erb.page +38 -0
  92. data/doc/contentprocessor/tags.page +61 -0
  93. data/doc/extensions.page +11 -0
  94. data/doc/faq.page +177 -0
  95. data/doc/getting_started.page +130 -0
  96. data/doc/index.page +50 -0
  97. data/doc/manual.page +356 -0
  98. data/doc/reference_configuration.page +328 -0
  99. data/doc/reference_metainfo.page +128 -0
  100. data/doc/sourcehandler/metainfo.page +117 -0
  101. data/doc/sourcehandler/page.page +32 -0
  102. data/doc/webgen_page_format.page +126 -0
  103. data/lib/webgen/blackboard.rb +73 -0
  104. data/lib/webgen/cache.rb +77 -0
  105. data/lib/webgen/cli.rb +99 -440
  106. data/lib/webgen/cli/create_command.rb +64 -0
  107. data/lib/webgen/cli/run_command.rb +20 -0
  108. data/lib/webgen/cli/utils.rb +82 -0
  109. data/lib/webgen/configuration.rb +71 -0
  110. data/lib/webgen/contentprocessor.rb +89 -0
  111. data/lib/webgen/contentprocessor/blocks.rb +46 -0
  112. data/lib/webgen/contentprocessor/context.rb +86 -0
  113. data/lib/webgen/contentprocessor/maruku.rb +18 -0
  114. data/lib/webgen/contentprocessor/redcloth.rb +15 -0
  115. data/lib/webgen/contentprocessor/tags.rb +134 -0
  116. data/lib/webgen/default_config.rb +128 -0
  117. data/lib/webgen/languages.rb +508 -40
  118. data/lib/webgen/loggable.rb +23 -0
  119. data/lib/webgen/logger.rb +78 -0
  120. data/lib/webgen/node.rb +275 -237
  121. data/lib/webgen/output.rb +31 -0
  122. data/lib/webgen/output/filesystem.rb +61 -0
  123. data/lib/webgen/page.rb +129 -0
  124. data/lib/webgen/path.rb +172 -0
  125. data/lib/webgen/source.rb +24 -0
  126. data/lib/webgen/source/filesystem.rb +56 -0
  127. data/lib/webgen/source/resource.rb +33 -0
  128. data/lib/webgen/source/stacked.rb +53 -0
  129. data/lib/webgen/sourcehandler.rb +175 -0
  130. data/lib/webgen/sourcehandler/base.rb +188 -0
  131. data/lib/webgen/sourcehandler/copy.rb +41 -0
  132. data/lib/webgen/sourcehandler/directory.rb +31 -0
  133. data/lib/webgen/sourcehandler/fragment.rb +66 -0
  134. data/lib/webgen/sourcehandler/metainfo.rb +107 -0
  135. data/lib/webgen/sourcehandler/page.rb +47 -0
  136. data/lib/webgen/sourcehandler/template.rb +64 -0
  137. data/lib/webgen/sourcehandler/virtual.rb +72 -0
  138. data/lib/webgen/tag.rb +16 -0
  139. data/lib/webgen/tag/base.rb +162 -0
  140. data/lib/webgen/tag/menu.rb +187 -0
  141. data/lib/webgen/tag/metainfo.rb +25 -0
  142. data/lib/webgen/tag/relocatable.rb +53 -0
  143. data/lib/webgen/tree.rb +80 -0
  144. data/lib/webgen/version.rb +6 -0
  145. data/lib/webgen/webgentask.rb +153 -0
  146. data/lib/webgen/website.rb +166 -288
  147. data/lib/webgen/websiteaccess.rb +29 -0
  148. data/lib/webgen/websitemanager.rb +124 -0
  149. data/man/man1/webgen.1 +31 -42
  150. data/misc/default.css +337 -0
  151. data/misc/default.template +73 -0
  152. data/misc/htmldoc.metainfo +22 -0
  153. data/misc/htmldoc.virtual +5 -0
  154. data/misc/images/arrow.gif +0 -0
  155. data/misc/images/error.gif +0 -0
  156. data/misc/images/exclamation.gif +0 -0
  157. data/misc/images/headerbg.jpg +0 -0
  158. data/misc/images/information.gif +0 -0
  159. data/misc/images/quote.gif +0 -0
  160. data/test/helper.rb +28 -0
  161. data/test/test_blackboard.rb +58 -0
  162. data/test/test_cache.rb +57 -0
  163. data/test/test_configuration.rb +35 -0
  164. data/test/test_contentprocessor.rb +31 -0
  165. data/test/test_contentprocessor_blocks.rb +34 -0
  166. data/test/test_contentprocessor_context.rb +38 -0
  167. data/test/test_contentprocessor_maruku.rb +24 -0
  168. data/test/test_contentprocessor_redcloth.rb +12 -0
  169. data/test/test_contentprocessor_tags.rb +97 -0
  170. data/test/test_languages.rb +53 -0
  171. data/test/test_loggable.rb +30 -0
  172. data/test/test_logger.rb +73 -0
  173. data/test/test_node.rb +305 -0
  174. data/test/test_output_filesystem.rb +57 -0
  175. data/test/test_page.rb +180 -0
  176. data/test/test_path.rb +112 -0
  177. data/test/test_source_filesystem.rb +59 -0
  178. data/test/test_source_resource.rb +21 -0
  179. data/test/test_source_stacked.rb +34 -0
  180. data/test/test_sourcehandler_base.rb +78 -0
  181. data/test/test_sourcehandler_copy.rb +45 -0
  182. data/test/test_sourcehandler_directory.rb +25 -0
  183. data/test/test_sourcehandler_fragment.rb +62 -0
  184. data/test/test_sourcehandler_metainfo.rb +79 -0
  185. data/test/test_sourcehandler_page.rb +62 -0
  186. data/test/test_sourcehandler_template.rb +61 -0
  187. data/test/test_sourcehandler_virtual.rb +46 -0
  188. data/test/test_tag_base.rb +82 -0
  189. data/test/test_tag_menu.rb +196 -0
  190. data/test/test_tag_metainfo.rb +17 -0
  191. data/test/test_tag_relocatable.rb +57 -0
  192. data/test/test_tree.rb +69 -0
  193. data/test/test_website.rb +96 -0
  194. data/test/test_websiteaccess.rb +23 -0
  195. data/test/test_websitemanager.rb +68 -0
  196. metadata +276 -800
  197. data/ChangeLog +0 -46
  198. data/README +0 -14
  199. data/TODO +0 -376
  200. data/data/webgen/data/ISO-639-2_values_8bits.txt +0 -492
  201. data/data/webgen/gallery-creator/default.png +0 -0
  202. data/data/webgen/gallery_styles/default/README +0 -6
  203. data/data/webgen/gallery_styles/default/gallery_gallery.template +0 -38
  204. data/data/webgen/gallery_styles/default/gallery_image.template +0 -30
  205. data/data/webgen/gallery_styles/default/gallery_main.template +0 -18
  206. data/data/webgen/gallery_styles/slides/README +0 -18
  207. data/data/webgen/gallery_styles/slides/collage.rb +0 -337
  208. data/data/webgen/gallery_styles/slides/gallery_gallery.template +0 -62
  209. data/data/webgen/gallery_styles/slides/gallery_image.template +0 -53
  210. data/data/webgen/gallery_styles/slides/gallery_main.template +0 -32
  211. data/data/webgen/icon_mapping.yaml +0 -27
  212. data/data/webgen/resources/emoticons/bigeyes/angry.png +0 -0
  213. data/data/webgen/resources/emoticons/bigeyes/cool.png +0 -0
  214. data/data/webgen/resources/emoticons/bigeyes/cry.png +0 -0
  215. data/data/webgen/resources/emoticons/bigeyes/drunk.png +0 -0
  216. data/data/webgen/resources/emoticons/bigeyes/lol.png +0 -0
  217. data/data/webgen/resources/emoticons/bigeyes/oops.png +0 -0
  218. data/data/webgen/resources/emoticons/bigeyes/sad.png +0 -0
  219. data/data/webgen/resources/emoticons/bigeyes/sleep.png +0 -0
  220. data/data/webgen/resources/emoticons/bigeyes/smile.png +0 -0
  221. data/data/webgen/resources/emoticons/bigeyes/tongue.png +0 -0
  222. data/data/webgen/resources/emoticons/bigeyes/wink.png +0 -0
  223. data/data/webgen/resources/emoticons/crystal/angry.png +0 -0
  224. data/data/webgen/resources/emoticons/crystal/cool.png +0 -0
  225. data/data/webgen/resources/emoticons/crystal/cry.png +0 -0
  226. data/data/webgen/resources/emoticons/crystal/drunk.png +0 -0
  227. data/data/webgen/resources/emoticons/crystal/lol.png +0 -0
  228. data/data/webgen/resources/emoticons/crystal/oops.png +0 -0
  229. data/data/webgen/resources/emoticons/crystal/sad.png +0 -0
  230. data/data/webgen/resources/emoticons/crystal/sleep.png +0 -0
  231. data/data/webgen/resources/emoticons/crystal/smile.png +0 -0
  232. data/data/webgen/resources/emoticons/crystal/tongue.png +0 -0
  233. data/data/webgen/resources/emoticons/crystal/wink.png +0 -0
  234. data/data/webgen/resources/emoticons/cyclops/angry.png +0 -0
  235. data/data/webgen/resources/emoticons/cyclops/cool.png +0 -0
  236. data/data/webgen/resources/emoticons/cyclops/cry.png +0 -0
  237. data/data/webgen/resources/emoticons/cyclops/drunk.png +0 -0
  238. data/data/webgen/resources/emoticons/cyclops/lol.png +0 -0
  239. data/data/webgen/resources/emoticons/cyclops/oops.png +0 -0
  240. data/data/webgen/resources/emoticons/cyclops/sad.png +0 -0
  241. data/data/webgen/resources/emoticons/cyclops/sleep.png +0 -0
  242. data/data/webgen/resources/emoticons/cyclops/smile.png +0 -0
  243. data/data/webgen/resources/emoticons/cyclops/tongue.png +0 -0
  244. data/data/webgen/resources/emoticons/cyclops/wink.png +0 -0
  245. data/data/webgen/resources/emoticons/glass/angry.png +0 -0
  246. data/data/webgen/resources/emoticons/glass/cool.png +0 -0
  247. data/data/webgen/resources/emoticons/glass/cry.png +0 -0
  248. data/data/webgen/resources/emoticons/glass/drunk.png +0 -0
  249. data/data/webgen/resources/emoticons/glass/lol.png +0 -0
  250. data/data/webgen/resources/emoticons/glass/oops.png +0 -0
  251. data/data/webgen/resources/emoticons/glass/sad.png +0 -0
  252. data/data/webgen/resources/emoticons/glass/sleep.png +0 -0
  253. data/data/webgen/resources/emoticons/glass/smile.png +0 -0
  254. data/data/webgen/resources/emoticons/glass/tongue.png +0 -0
  255. data/data/webgen/resources/emoticons/glass/wink.png +0 -0
  256. data/data/webgen/resources/emoticons/icqstyle/angry.png +0 -0
  257. data/data/webgen/resources/emoticons/icqstyle/cool.png +0 -0
  258. data/data/webgen/resources/emoticons/icqstyle/cry.png +0 -0
  259. data/data/webgen/resources/emoticons/icqstyle/drunk.png +0 -0
  260. data/data/webgen/resources/emoticons/icqstyle/lol.png +0 -0
  261. data/data/webgen/resources/emoticons/icqstyle/oops.png +0 -0
  262. data/data/webgen/resources/emoticons/icqstyle/sad.png +0 -0
  263. data/data/webgen/resources/emoticons/icqstyle/sleep.png +0 -0
  264. data/data/webgen/resources/emoticons/icqstyle/smile.png +0 -0
  265. data/data/webgen/resources/emoticons/icqstyle/tongue.png +0 -0
  266. data/data/webgen/resources/emoticons/icqstyle/wink.png +0 -0
  267. data/data/webgen/resources/emoticons/matrix/angry.gif +0 -0
  268. data/data/webgen/resources/emoticons/matrix/cool.gif +0 -0
  269. data/data/webgen/resources/emoticons/matrix/cry.gif +0 -0
  270. data/data/webgen/resources/emoticons/matrix/drunk.gif +0 -0
  271. data/data/webgen/resources/emoticons/matrix/lol.gif +0 -0
  272. data/data/webgen/resources/emoticons/matrix/oops.gif +0 -0
  273. data/data/webgen/resources/emoticons/matrix/sad.gif +0 -0
  274. data/data/webgen/resources/emoticons/matrix/sleep.gif +0 -0
  275. data/data/webgen/resources/emoticons/matrix/smile.gif +0 -0
  276. data/data/webgen/resources/emoticons/matrix/tongue.gif +0 -0
  277. data/data/webgen/resources/emoticons/matrix/wink.gif +0 -0
  278. data/data/webgen/resources/emoticons/smellies/angry.gif +0 -0
  279. data/data/webgen/resources/emoticons/smellies/cool.gif +0 -0
  280. data/data/webgen/resources/emoticons/smellies/cry.gif +0 -0
  281. data/data/webgen/resources/emoticons/smellies/drunk.gif +0 -0
  282. data/data/webgen/resources/emoticons/smellies/lol.gif +0 -0
  283. data/data/webgen/resources/emoticons/smellies/oops.gif +0 -0
  284. data/data/webgen/resources/emoticons/smellies/sad.gif +0 -0
  285. data/data/webgen/resources/emoticons/smellies/sleep.gif +0 -0
  286. data/data/webgen/resources/emoticons/smellies/smile.gif +0 -0
  287. data/data/webgen/resources/emoticons/smellies/tongue.gif +0 -0
  288. data/data/webgen/resources/emoticons/smellies/wink.gif +0 -0
  289. data/data/webgen/resources/icons/compressed.png +0 -0
  290. data/data/webgen/resources/icons/document.png +0 -0
  291. data/data/webgen/resources/icons/download.png +0 -0
  292. data/data/webgen/resources/icons/image.png +0 -0
  293. data/data/webgen/resources/icons/linux.png +0 -0
  294. data/data/webgen/resources/icons/mac.png +0 -0
  295. data/data/webgen/resources/icons/pdf.png +0 -0
  296. data/data/webgen/resources/icons/penguin.png +0 -0
  297. data/data/webgen/resources/icons/quicktime.png +0 -0
  298. data/data/webgen/resources/icons/real.png +0 -0
  299. data/data/webgen/resources/icons/rpm.png +0 -0
  300. data/data/webgen/resources/icons/sound.png +0 -0
  301. data/data/webgen/resources/icons/source.png +0 -0
  302. data/data/webgen/resources/icons/spreadsheet.png +0 -0
  303. data/data/webgen/resources/icons/text.png +0 -0
  304. data/data/webgen/resources/icons/vcard.png +0 -0
  305. data/data/webgen/resources/icons/video.png +0 -0
  306. data/data/webgen/resources/icons/win.png +0 -0
  307. data/data/webgen/resources/images/generated_by_webgen.png +0 -0
  308. data/data/webgen/resources/images/valid-css.gif +0 -0
  309. data/data/webgen/resources/images/valid-xhtml11.png +0 -0
  310. data/data/webgen/resources/images/webgen_logo.png +0 -0
  311. data/data/webgen/sipttra_styles/default/README +0 -7
  312. data/data/webgen/sipttra_styles/default/css/sipttra.rcss +0 -71
  313. data/data/webgen/sipttra_styles/default/js/sipttra.js +0 -7
  314. data/data/webgen/sipttra_styles/default/sipttra.template +0 -105
  315. data/data/webgen/website_styles/andreas00/default.template +0 -62
  316. data/data/webgen/website_styles/andreas01/default.template +0 -63
  317. data/data/webgen/website_styles/andreas06/default.template +0 -72
  318. data/data/webgen/website_styles/andreas07/default.template +0 -44
  319. data/data/webgen/website_styles/andreas08/default.template +0 -53
  320. data/data/webgen/website_styles/default/default.template +0 -38
  321. data/data/webgen/website_templates/personal_hp/README +0 -8
  322. data/data/webgen/website_templates/personal_hp/src/about.page +0 -12
  323. data/data/webgen/website_templates/personal_hp/src/index.page +0 -9
  324. data/data/webgen/website_templates/personal_hp/src/links.page +0 -22
  325. data/data/webgen/website_templates/personal_hp/src/projects.page +0 -20
  326. data/doc/config.yaml +0 -8
  327. data/doc/examples/website_styles/1024px/README +0 -9
  328. data/doc/examples/website_styles/1024px/config.yaml +0 -2
  329. data/doc/examples/website_styles/1024px/src/about.page +0 -12
  330. data/doc/examples/website_styles/1024px/src/default.css +0 -188
  331. data/doc/examples/website_styles/1024px/src/default.template +0 -62
  332. data/doc/examples/website_styles/1024px/src/download.page +0 -15
  333. data/doc/examples/website_styles/1024px/src/features.page +0 -8
  334. data/doc/examples/website_styles/1024px/src/images/background.gif +0 -0
  335. data/doc/examples/website_styles/1024px/src/index.page +0 -9
  336. data/doc/examples/website_styles/1024px/src/screenshots.page +0 -18
  337. data/doc/examples/website_styles/andreas00/README +0 -9
  338. data/doc/examples/website_styles/andreas00/config.yaml +0 -2
  339. data/doc/examples/website_styles/andreas00/src/about.page +0 -12
  340. data/doc/examples/website_styles/andreas00/src/default.css +0 -290
  341. data/doc/examples/website_styles/andreas00/src/download.page +0 -15
  342. data/doc/examples/website_styles/andreas00/src/features.page +0 -8
  343. data/doc/examples/website_styles/andreas00/src/images/bg.gif +0 -0
  344. data/doc/examples/website_styles/andreas00/src/images/front.jpg +0 -0
  345. data/doc/examples/website_styles/andreas00/src/images/menubg.gif +0 -0
  346. data/doc/examples/website_styles/andreas00/src/images/menubg2.gif +0 -0
  347. data/doc/examples/website_styles/andreas00/src/index.page +0 -9
  348. data/doc/examples/website_styles/andreas00/src/screenshots.page +0 -18
  349. data/doc/examples/website_styles/andreas01/README +0 -9
  350. data/doc/examples/website_styles/andreas01/config.yaml +0 -2
  351. data/doc/examples/website_styles/andreas01/src/about.page +0 -12
  352. data/doc/examples/website_styles/andreas01/src/default.css +0 -310
  353. data/doc/examples/website_styles/andreas01/src/download.page +0 -15
  354. data/doc/examples/website_styles/andreas01/src/features.page +0 -8
  355. data/doc/examples/website_styles/andreas01/src/images/bg.gif +0 -0
  356. data/doc/examples/website_styles/andreas01/src/images/front.jpg +0 -0
  357. data/doc/examples/website_styles/andreas01/src/index.page +0 -9
  358. data/doc/examples/website_styles/andreas01/src/print.css +0 -35
  359. data/doc/examples/website_styles/andreas01/src/screenshots.page +0 -18
  360. data/doc/examples/website_styles/andreas03/README +0 -9
  361. data/doc/examples/website_styles/andreas03/config.yaml +0 -2
  362. data/doc/examples/website_styles/andreas03/src/about.page +0 -12
  363. data/doc/examples/website_styles/andreas03/src/default.css +0 -223
  364. data/doc/examples/website_styles/andreas03/src/default.template +0 -60
  365. data/doc/examples/website_styles/andreas03/src/download.page +0 -15
  366. data/doc/examples/website_styles/andreas03/src/features.page +0 -8
  367. data/doc/examples/website_styles/andreas03/src/images/bodybg.png +0 -0
  368. data/doc/examples/website_styles/andreas03/src/images/contbg.png +0 -0
  369. data/doc/examples/website_styles/andreas03/src/images/footerbg.png +0 -0
  370. data/doc/examples/website_styles/andreas03/src/images/gradient1.png +0 -0
  371. data/doc/examples/website_styles/andreas03/src/images/gradient2.png +0 -0
  372. data/doc/examples/website_styles/andreas03/src/index.page +0 -9
  373. data/doc/examples/website_styles/andreas03/src/screenshots.page +0 -18
  374. data/doc/examples/website_styles/andreas04/README +0 -9
  375. data/doc/examples/website_styles/andreas04/config.yaml +0 -2
  376. data/doc/examples/website_styles/andreas04/src/about.page +0 -12
  377. data/doc/examples/website_styles/andreas04/src/default.css +0 -290
  378. data/doc/examples/website_styles/andreas04/src/default.template +0 -83
  379. data/doc/examples/website_styles/andreas04/src/download.page +0 -15
  380. data/doc/examples/website_styles/andreas04/src/features.page +0 -8
  381. data/doc/examples/website_styles/andreas04/src/images/blinkarrow.gif +0 -0
  382. data/doc/examples/website_styles/andreas04/src/images/bodybg.png +0 -0
  383. data/doc/examples/website_styles/andreas04/src/images/contentbg.png +0 -0
  384. data/doc/examples/website_styles/andreas04/src/images/entrybg.png +0 -0
  385. data/doc/examples/website_styles/andreas04/src/images/flash.gif +0 -0
  386. data/doc/examples/website_styles/andreas04/src/images/flash2.gif +0 -0
  387. data/doc/examples/website_styles/andreas04/src/images/globe.gif +0 -0
  388. data/doc/examples/website_styles/andreas04/src/images/globebottom.gif +0 -0
  389. data/doc/examples/website_styles/andreas04/src/images/linkarrow.gif +0 -0
  390. data/doc/examples/website_styles/andreas04/src/images/menuhover.png +0 -0
  391. data/doc/examples/website_styles/andreas04/src/index.page +0 -9
  392. data/doc/examples/website_styles/andreas04/src/screenshots.page +0 -18
  393. data/doc/examples/website_styles/andreas05/README +0 -9
  394. data/doc/examples/website_styles/andreas05/config.yaml +0 -2
  395. data/doc/examples/website_styles/andreas05/src/about.page +0 -12
  396. data/doc/examples/website_styles/andreas05/src/default.css +0 -33
  397. data/doc/examples/website_styles/andreas05/src/default.template +0 -42
  398. data/doc/examples/website_styles/andreas05/src/download.page +0 -15
  399. data/doc/examples/website_styles/andreas05/src/features.page +0 -8
  400. data/doc/examples/website_styles/andreas05/src/images/bodybg.gif +0 -0
  401. data/doc/examples/website_styles/andreas05/src/images/front.png +0 -0
  402. data/doc/examples/website_styles/andreas05/src/index.page +0 -9
  403. data/doc/examples/website_styles/andreas05/src/screenshots.page +0 -18
  404. data/doc/examples/website_styles/andreas06/README +0 -9
  405. data/doc/examples/website_styles/andreas06/config.yaml +0 -2
  406. data/doc/examples/website_styles/andreas06/src/about.page +0 -12
  407. data/doc/examples/website_styles/andreas06/src/default.css +0 -354
  408. data/doc/examples/website_styles/andreas06/src/download.page +0 -15
  409. data/doc/examples/website_styles/andreas06/src/features.page +0 -8
  410. data/doc/examples/website_styles/andreas06/src/images/bodybg.gif +0 -0
  411. data/doc/examples/website_styles/andreas06/src/images/boxbg.gif +0 -0
  412. data/doc/examples/website_styles/andreas06/src/images/greypx.gif +0 -0
  413. data/doc/examples/website_styles/andreas06/src/images/header.jpg +0 -0
  414. data/doc/examples/website_styles/andreas06/src/images/innerbg.gif +0 -0
  415. data/doc/examples/website_styles/andreas06/src/images/leaves.jpg +0 -0
  416. data/doc/examples/website_styles/andreas06/src/images/tabs.gif +0 -0
  417. data/doc/examples/website_styles/andreas06/src/index.page +0 -9
  418. data/doc/examples/website_styles/andreas06/src/screenshots.page +0 -18
  419. data/doc/examples/website_styles/andreas07/README +0 -9
  420. data/doc/examples/website_styles/andreas07/config.yaml +0 -2
  421. data/doc/examples/website_styles/andreas07/src/about.page +0 -12
  422. data/doc/examples/website_styles/andreas07/src/browserfix.css +0 -7
  423. data/doc/examples/website_styles/andreas07/src/default.css +0 -92
  424. data/doc/examples/website_styles/andreas07/src/download.page +0 -15
  425. data/doc/examples/website_styles/andreas07/src/features.page +0 -8
  426. data/doc/examples/website_styles/andreas07/src/images/bodybg.gif +0 -0
  427. data/doc/examples/website_styles/andreas07/src/images/sidebarbg.gif +0 -0
  428. data/doc/examples/website_styles/andreas07/src/index.page +0 -9
  429. data/doc/examples/website_styles/andreas07/src/screenshots.page +0 -18
  430. data/doc/examples/website_styles/andreas08/README +0 -9
  431. data/doc/examples/website_styles/andreas08/config.yaml +0 -2
  432. data/doc/examples/website_styles/andreas08/src/about.page +0 -12
  433. data/doc/examples/website_styles/andreas08/src/default.css +0 -224
  434. data/doc/examples/website_styles/andreas08/src/download.page +0 -15
  435. data/doc/examples/website_styles/andreas08/src/features.page +0 -8
  436. data/doc/examples/website_styles/andreas08/src/index.page +0 -9
  437. data/doc/examples/website_styles/andreas08/src/screenshots.page +0 -18
  438. data/doc/examples/website_styles/andreas09/README +0 -9
  439. data/doc/examples/website_styles/andreas09/config.yaml +0 -2
  440. data/doc/examples/website_styles/andreas09/src/about.page +0 -12
  441. data/doc/examples/website_styles/andreas09/src/default.css +0 -308
  442. data/doc/examples/website_styles/andreas09/src/default.template +0 -70
  443. data/doc/examples/website_styles/andreas09/src/download.page +0 -15
  444. data/doc/examples/website_styles/andreas09/src/features.page +0 -8
  445. data/doc/examples/website_styles/andreas09/src/images/bodybg-black.jpg +0 -0
  446. data/doc/examples/website_styles/andreas09/src/images/bodybg-green.jpg +0 -0
  447. data/doc/examples/website_styles/andreas09/src/images/bodybg-orange.jpg +0 -0
  448. data/doc/examples/website_styles/andreas09/src/images/bodybg-purple.jpg +0 -0
  449. data/doc/examples/website_styles/andreas09/src/images/bodybg-red.jpg +0 -0
  450. data/doc/examples/website_styles/andreas09/src/images/bodybg.jpg +0 -0
  451. data/doc/examples/website_styles/andreas09/src/images/footerbg.jpg +0 -0
  452. data/doc/examples/website_styles/andreas09/src/images/menuhover-black.jpg +0 -0
  453. data/doc/examples/website_styles/andreas09/src/images/menuhover-green.jpg +0 -0
  454. data/doc/examples/website_styles/andreas09/src/images/menuhover-orange.jpg +0 -0
  455. data/doc/examples/website_styles/andreas09/src/images/menuhover-purple.jpg +0 -0
  456. data/doc/examples/website_styles/andreas09/src/images/menuhover-red.jpg +0 -0
  457. data/doc/examples/website_styles/andreas09/src/images/menuhover.jpg +0 -0
  458. data/doc/examples/website_styles/andreas09/src/index.page +0 -9
  459. data/doc/examples/website_styles/andreas09/src/screenshots.page +0 -18
  460. data/doc/examples/website_styles/default/README +0 -9
  461. data/doc/examples/website_styles/default/config.yaml +0 -2
  462. data/doc/examples/website_styles/default/src/about.page +0 -12
  463. data/doc/examples/website_styles/default/src/default.css +0 -84
  464. data/doc/examples/website_styles/default/src/download.page +0 -15
  465. data/doc/examples/website_styles/default/src/features.page +0 -8
  466. data/doc/examples/website_styles/default/src/index.page +0 -9
  467. data/doc/examples/website_styles/default/src/screenshots.page +0 -18
  468. data/doc/examples/website_templates/default/README +0 -8
  469. data/doc/examples/website_templates/default/config.yaml +0 -2
  470. data/doc/examples/website_templates/default/src/default.css +0 -84
  471. data/doc/examples/website_templates/default/src/default.template +0 -38
  472. data/doc/examples/website_templates/default/src/index.page +0 -8
  473. data/doc/examples/website_templates/personal_hp/README +0 -8
  474. data/doc/examples/website_templates/personal_hp/config.yaml +0 -2
  475. data/doc/examples/website_templates/personal_hp/src/about.page +0 -12
  476. data/doc/examples/website_templates/personal_hp/src/default.css +0 -84
  477. data/doc/examples/website_templates/personal_hp/src/default.template +0 -38
  478. data/doc/examples/website_templates/personal_hp/src/index.page +0 -9
  479. data/doc/examples/website_templates/personal_hp/src/links.page +0 -22
  480. data/doc/examples/website_templates/personal_hp/src/projects.page +0 -20
  481. data/doc/examples/website_templates/project/README +0 -9
  482. data/doc/examples/website_templates/project/config.yaml +0 -2
  483. data/doc/examples/website_templates/project/src/about.page +0 -12
  484. data/doc/examples/website_templates/project/src/default.css +0 -84
  485. data/doc/examples/website_templates/project/src/default.template +0 -38
  486. data/doc/examples/website_templates/project/src/download.page +0 -15
  487. data/doc/examples/website_templates/project/src/features.page +0 -8
  488. data/doc/examples/website_templates/project/src/index.page +0 -9
  489. data/doc/examples/website_templates/project/src/screenshots.page +0 -18
  490. data/doc/metainfo.yaml +0 -105
  491. data/doc/plugin/emoticon.rb +0 -27
  492. data/doc/plugin/extension.rb +0 -163
  493. data/doc/plugin/gallery/slides/collage.rb +0 -337
  494. data/doc/plugin/listpluginparameters.rb +0 -37
  495. data/doc/plugin/resources.rb +0 -28
  496. data/doc/src/css/sipttra.rcss +0 -71
  497. data/doc/src/default.css +0 -434
  498. data/doc/src/default.template +0 -125
  499. data/doc/src/documentation/basics.page +0 -148
  500. data/doc/src/documentation/extending_webgen.page +0 -104
  501. data/doc/src/documentation/howto.page +0 -221
  502. data/doc/src/documentation/index.page +0 -50
  503. data/doc/src/documentation/plugins/contentconverter/default.page +0 -16
  504. data/doc/src/documentation/plugins/contentconverter/haml.page +0 -21
  505. data/doc/src/documentation/plugins/contentconverter/html.page +0 -10
  506. data/doc/src/documentation/plugins/contentconverter/markdown.page +0 -21
  507. data/doc/src/documentation/plugins/contentconverter/maruku.page +0 -23
  508. data/doc/src/documentation/plugins/contentconverter/rdoc.page +0 -11
  509. data/doc/src/documentation/plugins/contentconverter/sass.page +0 -36
  510. data/doc/src/documentation/plugins/contentconverter/textile.page +0 -21
  511. data/doc/src/documentation/plugins/contentconverter/xmlbuilder.page +0 -61
  512. data/doc/src/documentation/plugins/core/configuration.page +0 -17
  513. data/doc/src/documentation/plugins/core/filehandler.page +0 -220
  514. data/doc/src/documentation/plugins/core/index.page +0 -11
  515. data/doc/src/documentation/plugins/core/resourcemanager.page +0 -40
  516. data/doc/src/documentation/plugins/core/tagprocessor.page +0 -17
  517. data/doc/src/documentation/plugins/file/copyhandler.page +0 -26
  518. data/doc/src/documentation/plugins/file/defaulthandler.page +0 -16
  519. data/doc/src/documentation/plugins/file/directoryhandler.page +0 -37
  520. data/doc/src/documentation/plugins/file/galleryhandler.page +0 -190
  521. data/doc/src/documentation/plugins/file/pagehandler.page +0 -154
  522. data/doc/src/documentation/plugins/file/sipttrahandler.page +0 -18
  523. data/doc/src/documentation/plugins/file/templatehandler.page +0 -51
  524. data/doc/src/documentation/plugins/file/thumbnailwriter.page +0 -42
  525. data/doc/src/documentation/plugins/htmlvalidator/default.page +0 -13
  526. data/doc/src/documentation/plugins/htmlvalidator/xmllint.page +0 -12
  527. data/doc/src/documentation/plugins/index.page +0 -53
  528. data/doc/src/documentation/plugins/menustyle/default.page +0 -20
  529. data/doc/src/documentation/plugins/menustyle/horizontal.page +0 -36
  530. data/doc/src/documentation/plugins/menustyle/horizontaldropdown.page +0 -48
  531. data/doc/src/documentation/plugins/menustyle/section.page +0 -34
  532. data/doc/src/documentation/plugins/menustyle/vertical.page +0 -48
  533. data/doc/src/documentation/plugins/menustyle/verticaldropdown.page +0 -29
  534. data/doc/src/documentation/plugins/misc/index.page +0 -9
  535. data/doc/src/documentation/plugins/misc/smileyreplacer.page +0 -39
  536. data/doc/src/documentation/plugins/misc/syntaxhighlighter.page +0 -26
  537. data/doc/src/documentation/plugins/tag/block.page +0 -29
  538. data/doc/src/documentation/plugins/tag/breadcrumbtrail.page +0 -41
  539. data/doc/src/documentation/plugins/tag/customvar.page +0 -11
  540. data/doc/src/documentation/plugins/tag/date.page +0 -34
  541. data/doc/src/documentation/plugins/tag/default.page +0 -28
  542. data/doc/src/documentation/plugins/tag/download.page +0 -60
  543. data/doc/src/documentation/plugins/tag/executecommand.page +0 -29
  544. data/doc/src/documentation/plugins/tag/htmlmetainfo.page +0 -32
  545. data/doc/src/documentation/plugins/tag/includefile.page +0 -30
  546. data/doc/src/documentation/plugins/tag/langbar.de.page +0 -6
  547. data/doc/src/documentation/plugins/tag/langbar.fr.page +0 -6
  548. data/doc/src/documentation/plugins/tag/langbar.page +0 -41
  549. data/doc/src/documentation/plugins/tag/menu.page +0 -78
  550. data/doc/src/documentation/plugins/tag/meta.page +0 -21
  551. data/doc/src/documentation/plugins/tag/news.page +0 -48
  552. data/doc/src/documentation/plugins/tag/relocatable.page +0 -46
  553. data/doc/src/documentation/plugins/tag/resource.page +0 -35
  554. data/doc/src/documentation/plugins/tag/sitemap.page +0 -35
  555. data/doc/src/documentation/plugins/tag/wikilink.page +0 -33
  556. data/doc/src/documentation/references/index.page +0 -34
  557. data/doc/src/documentation/references/meta_info_reference.page +0 -136
  558. data/doc/src/documentation/references/parameter_reference.page +0 -11
  559. data/doc/src/documentation/references/resource_reference.page +0 -18
  560. data/doc/src/documentation/references/sipttra_format.page +0 -241
  561. data/doc/src/documentation/references/webpage_format.page +0 -253
  562. data/doc/src/documentation/tutorial.page +0 -167
  563. data/doc/src/download.page +0 -74
  564. data/doc/src/examples/example_sites/index.page +0 -45
  565. data/doc/src/examples/example_sites/personal.zip +0 -0
  566. data/doc/src/examples/example_sites/photo_gallery.zip +0 -0
  567. data/doc/src/examples/gallery_styles/default/default.gallery +0 -78
  568. data/doc/src/examples/gallery_styles/default/gallery_gallery.template +0 -38
  569. data/doc/src/examples/gallery_styles/default/gallery_image.template +0 -30
  570. data/doc/src/examples/gallery_styles/default/gallery_main.template +0 -18
  571. data/doc/src/examples/gallery_styles/index.page +0 -22
  572. data/doc/src/examples/gallery_styles/slides/gallery_gallery.template +0 -62
  573. data/doc/src/examples/gallery_styles/slides/gallery_image.template +0 -53
  574. data/doc/src/examples/gallery_styles/slides/gallery_main.template +0 -32
  575. data/doc/src/examples/gallery_styles/slides/slides.gallery +0 -79
  576. data/doc/src/examples/images/image01.jpg +0 -0
  577. data/doc/src/examples/images/image02.jpg +0 -0
  578. data/doc/src/examples/images/image03.jpg +0 -0
  579. data/doc/src/examples/images/image04.jpg +0 -0
  580. data/doc/src/examples/images/image05.jpg +0 -0
  581. data/doc/src/examples/images/image06.jpg +0 -0
  582. data/doc/src/examples/images/image07.jpg +0 -0
  583. data/doc/src/examples/images/image08.jpg +0 -0
  584. data/doc/src/examples/images/image09.jpg +0 -0
  585. data/doc/src/examples/images/image10.jpg +0 -0
  586. data/doc/src/examples/images/image11.jpg +0 -0
  587. data/doc/src/examples/images/image12.jpg +0 -0
  588. data/doc/src/examples/images/image13.jpg +0 -0
  589. data/doc/src/examples/images/image14.jpg +0 -0
  590. data/doc/src/examples/images/image15.jpg +0 -0
  591. data/doc/src/examples/images/image16.jpg +0 -0
  592. data/doc/src/examples/images/image17.jpg +0 -0
  593. data/doc/src/examples/images/image18.jpg +0 -0
  594. data/doc/src/examples/index.page +0 -19
  595. data/doc/src/examples/sipttra_styles/default.page +0 -5
  596. data/doc/src/examples/sipttra_styles/default/css/sipttra.rcss +0 -71
  597. data/doc/src/examples/sipttra_styles/default/default.template +0 -16
  598. data/doc/src/examples/sipttra_styles/default/index.todo +0 -60
  599. data/doc/src/examples/sipttra_styles/default/js/sipttra.js +0 -7
  600. data/doc/src/examples/sipttra_styles/default/sipttra.template +0 -105
  601. data/doc/src/examples/sipttra_styles/index.page +0 -17
  602. data/doc/src/examples/website_styles/1024px.page +0 -5
  603. data/doc/src/examples/website_styles/andreas00.page +0 -5
  604. data/doc/src/examples/website_styles/andreas01.page +0 -5
  605. data/doc/src/examples/website_styles/andreas03.page +0 -5
  606. data/doc/src/examples/website_styles/andreas04.page +0 -5
  607. data/doc/src/examples/website_styles/andreas05.page +0 -5
  608. data/doc/src/examples/website_styles/andreas06.page +0 -5
  609. data/doc/src/examples/website_styles/andreas07.page +0 -5
  610. data/doc/src/examples/website_styles/andreas08.page +0 -5
  611. data/doc/src/examples/website_styles/andreas09.page +0 -5
  612. data/doc/src/examples/website_styles/default.page +0 -5
  613. data/doc/src/examples/website_styles/index.page +0 -76
  614. data/doc/src/examples/website_templates/default.page +0 -5
  615. data/doc/src/examples/website_templates/index.page +0 -24
  616. data/doc/src/examples/website_templates/personal_hp.page +0 -5
  617. data/doc/src/examples/website_templates/project.page +0 -5
  618. data/doc/src/features.page +0 -41
  619. data/doc/src/images/bodybg.jpg +0 -0
  620. data/doc/src/images/footerbg.jpg +0 -0
  621. data/doc/src/images/menuhover.jpg +0 -0
  622. data/doc/src/images/node_diagram.svg +0 -7132
  623. data/doc/src/images/thumb_example.jpg +0 -0
  624. data/doc/src/images/thumb_example_cropped.jpg +0 -0
  625. data/doc/src/images/thumb_example_normal.jpg +0 -0
  626. data/doc/src/index.page +0 -32
  627. data/doc/src/js/sipttra.js +0 -7
  628. data/doc/src/news.page +0 -256
  629. data/doc/src/plugin.template +0 -10
  630. data/doc/src/project.todo +0 -144
  631. data/doc/src/sipttra.template +0 -105
  632. data/lib/webgen/composite.rb +0 -101
  633. data/lib/webgen/config.rb +0 -52
  634. data/lib/webgen/content.rb +0 -172
  635. data/lib/webgen/extcommand.rb +0 -23
  636. data/lib/webgen/gui/common.rb +0 -38
  637. data/lib/webgen/gui/main.rb +0 -219
  638. data/lib/webgen/gui/new_website_dlg.rb +0 -125
  639. data/lib/webgen/listener.rb +0 -105
  640. data/lib/webgen/plugin.rb +0 -578
  641. data/lib/webgen/plugins/contentconverters/default.rb +0 -40
  642. data/lib/webgen/plugins/contentconverters/haml.rb +0 -71
  643. data/lib/webgen/plugins/contentconverters/html.rb +0 -43
  644. data/lib/webgen/plugins/contentconverters/markdown.rb +0 -54
  645. data/lib/webgen/plugins/contentconverters/maruku.rb +0 -33
  646. data/lib/webgen/plugins/contentconverters/rdoc.rb +0 -54
  647. data/lib/webgen/plugins/contentconverters/textile.rb +0 -54
  648. data/lib/webgen/plugins/contentconverters/xmlbuilder.rb +0 -58
  649. data/lib/webgen/plugins/coreplugins/configuration.rb +0 -45
  650. data/lib/webgen/plugins/coreplugins/resourcemanager.rb +0 -307
  651. data/lib/webgen/plugins/filehandlers/copy.rb +0 -82
  652. data/lib/webgen/plugins/filehandlers/directory.rb +0 -126
  653. data/lib/webgen/plugins/filehandlers/filehandler.rb +0 -486
  654. data/lib/webgen/plugins/filehandlers/gallery.rb +0 -486
  655. data/lib/webgen/plugins/filehandlers/page.rb +0 -255
  656. data/lib/webgen/plugins/filehandlers/sipttra.rb +0 -73
  657. data/lib/webgen/plugins/filehandlers/template.rb +0 -115
  658. data/lib/webgen/plugins/htmlvalidators/default.rb +0 -39
  659. data/lib/webgen/plugins/htmlvalidators/xmllint.rb +0 -54
  660. data/lib/webgen/plugins/menustyles/default.rb +0 -80
  661. data/lib/webgen/plugins/menustyles/horizontal.rb +0 -85
  662. data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +0 -99
  663. data/lib/webgen/plugins/menustyles/section.rb +0 -68
  664. data/lib/webgen/plugins/menustyles/vertical.rb +0 -87
  665. data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +0 -99
  666. data/lib/webgen/plugins/miscplugins/rendered_files.rb +0 -75
  667. data/lib/webgen/plugins/miscplugins/smileyreplacer.rb +0 -87
  668. data/lib/webgen/plugins/miscplugins/syntax_highlighter.rb +0 -72
  669. data/lib/webgen/plugins/miscplugins/treewalker.rb +0 -91
  670. data/lib/webgen/plugins/tags/block.rb +0 -65
  671. data/lib/webgen/plugins/tags/breadcrumbtrail.rb +0 -75
  672. data/lib/webgen/plugins/tags/customvar.rb +0 -54
  673. data/lib/webgen/plugins/tags/date.rb +0 -46
  674. data/lib/webgen/plugins/tags/download.rb +0 -155
  675. data/lib/webgen/plugins/tags/executecommand.rb +0 -69
  676. data/lib/webgen/plugins/tags/htmlmetainfo.rb +0 -27
  677. data/lib/webgen/plugins/tags/includefile.rb +0 -69
  678. data/lib/webgen/plugins/tags/langbar.rb +0 -55
  679. data/lib/webgen/plugins/tags/menu.rb +0 -111
  680. data/lib/webgen/plugins/tags/meta.rb +0 -53
  681. data/lib/webgen/plugins/tags/news.rb +0 -151
  682. data/lib/webgen/plugins/tags/relocatable.rb +0 -94
  683. data/lib/webgen/plugins/tags/sitemap.rb +0 -82
  684. data/lib/webgen/plugins/tags/tag_processor.rb +0 -279
  685. data/lib/webgen/plugins/tags/wikilink.rb +0 -62
  686. data/lib/webgen/rake/webgentask.rb +0 -161
  687. data/lib/webgen/sipttra_format.rb +0 -343
  688. data/lib/webgen/test.rb +0 -202
  689. data/test/fixtures/sample_site/src/chained.template +0 -3
  690. data/test/fixtures/sample_site/src/default.template +0 -3
  691. data/test/fixtures/sample_site/src/dir1/dir11/file111.de.page +0 -3
  692. data/test/fixtures/sample_site/src/dir1/dir11/file111.page +0 -3
  693. data/test/fixtures/sample_site/src/dir1/dir11/index.page +0 -3
  694. data/test/fixtures/sample_site/src/dir1/file11.page +0 -3
  695. data/test/fixtures/sample_site/src/dir2/file21.page +0 -3
  696. data/test/fixtures/sample_site/src/embedded.rhtml +0 -1
  697. data/test/fixtures/sample_site/src/file1.page +0 -8
  698. data/test/fixtures/sample_site/src/file2.de.page +0 -6
  699. data/test/fixtures/sample_site/src/index.de.page +0 -5
  700. data/test/fixtures/sample_site/src/index.en.page +0 -1
  701. data/test/fixtures/sample_site/src/invalid.template +0 -3
  702. data/test/fixtures/sample_site/src/test.jpg +0 -1
  703. data/test/fixtures/sample_site/src/test.template +0 -3
  704. data/test/fixtures/sample_site/src/test.todo +0 -7
  705. data/test/fixtures/tc_content/blocks.yaml +0 -40
  706. data/test/fixtures/tc_content/correct.yaml +0 -65
  707. data/test/fixtures/tc_content/incorrect.yaml +0 -42
  708. data/test/fixtures/tc_filehandler_filehandler/backing/metainfo.yaml +0 -9
  709. data/test/fixtures/tc_filehandler_filehandler/backing_empty/metainfo.yaml +0 -6
  710. data/test/fixtures/tc_filehandler_filehandler/sample_plugin.rb +0 -49
  711. data/test/fixtures/tc_filehandler_filehandler/unmodified +0 -0
  712. data/test/fixtures/tc_filehandler_gallery/test.gallery +0 -2
  713. data/test/fixtures/tc_filehandler_gallery/test1.gallery +0 -2
  714. data/test/fixtures/tc_filehandler_gallery/test1.jpg +0 -0
  715. data/test/fixtures/tc_filehandler_gallery/test2.jpg +0 -0
  716. data/test/fixtures/tc_filehandler_gallery/test3.jpg +0 -0
  717. data/test/fixtures/tc_filehandler_gallery/test4.jpg +0 -0
  718. data/test/fixtures/tc_filehandler_page/testdata.yaml +0 -10
  719. data/test/fixtures/tc_menustyles_default/menustyle.rb +0 -7
  720. data/test/fixtures/tc_node/nodes.yaml +0 -64
  721. data/test/fixtures/tc_plugin/handlerplugin.rb +0 -15
  722. data/test/fixtures/tc_plugin/plugin1.rb +0 -35
  723. data/test/fixtures/tc_plugin/plugin2.rb +0 -8
  724. data/test/fixtures/tc_sipttra_format/test.sipttra +0 -46
  725. data/test/fixtures/tc_tags_includefile/testfile +0 -1
  726. data/test/fixtures/tc_tags_tag_processor/test_file1 +0 -1
  727. data/test/fixtures/tc_tags_tag_processor/testtag.rb +0 -17
  728. data/test/fixtures/tc_website/correct.yaml +0 -6
  729. data/test/fixtures/tc_website/incorrect_structure.yaml +0 -2
  730. data/test/fixtures/tc_website/incorrect_yaml.yaml +0 -5
  731. data/test/fixtures/tc_website/meta_info_test.yaml +0 -10
  732. data/test/fixtures/tc_website/testdir/README +0 -1
  733. data/test/fixtures/tc_website/testdir/falsedir/README +0 -1
  734. data/test/runtests.rb +0 -2
  735. data/test/unittests/tc_composite.rb +0 -82
  736. data/test/unittests/tc_config.rb +0 -18
  737. data/test/unittests/tc_content.rb +0 -96
  738. data/test/unittests/tc_contentconverters_default.rb +0 -13
  739. data/test/unittests/tc_contentconverters_html.rb +0 -16
  740. data/test/unittests/tc_contentconverters_markdown.rb +0 -22
  741. data/test/unittests/tc_contentconverters_rdoc.rb +0 -16
  742. data/test/unittests/tc_contentconverters_textile.rb +0 -22
  743. data/test/unittests/tc_contentconverters_xmlbuilder.rb +0 -22
  744. data/test/unittests/tc_filehandler_copy.rb +0 -65
  745. data/test/unittests/tc_filehandler_directory.rb +0 -134
  746. data/test/unittests/tc_filehandler_filehandler.rb +0 -294
  747. data/test/unittests/tc_filehandler_gallery.rb +0 -165
  748. data/test/unittests/tc_filehandler_page.rb +0 -183
  749. data/test/unittests/tc_filehandler_sipttra.rb +0 -26
  750. data/test/unittests/tc_filehandler_template.rb +0 -64
  751. data/test/unittests/tc_htmlvalidators_default.rb +0 -12
  752. data/test/unittests/tc_htmlvalidators_xmllint.rb +0 -19
  753. data/test/unittests/tc_languages.rb +0 -57
  754. data/test/unittests/tc_listener.rb +0 -72
  755. data/test/unittests/tc_menustyles_default.rb +0 -51
  756. data/test/unittests/tc_menustyles_horizontal.rb +0 -64
  757. data/test/unittests/tc_menustyles_horizontal_dropdown.rb +0 -18
  758. data/test/unittests/tc_menustyles_section.rb +0 -59
  759. data/test/unittests/tc_menustyles_vertical.rb +0 -79
  760. data/test/unittests/tc_menustyles_vertical_dropdown.rb +0 -18
  761. data/test/unittests/tc_node.rb +0 -205
  762. data/test/unittests/tc_plugin.rb +0 -221
  763. data/test/unittests/tc_resourcemanager.rb +0 -42
  764. data/test/unittests/tc_sipttra_format.rb +0 -58
  765. data/test/unittests/tc_smileyreplacer.rb +0 -25
  766. data/test/unittests/tc_syntax_highlighter.rb +0 -30
  767. data/test/unittests/tc_tags_block.rb +0 -27
  768. data/test/unittests/tc_tags_breadcrumbtrail.rb +0 -56
  769. data/test/unittests/tc_tags_customvar.rb +0 -24
  770. data/test/unittests/tc_tags_date.rb +0 -16
  771. data/test/unittests/tc_tags_download.rb +0 -32
  772. data/test/unittests/tc_tags_executecommand.rb +0 -37
  773. data/test/unittests/tc_tags_includefile.rb +0 -46
  774. data/test/unittests/tc_tags_langbar.rb +0 -42
  775. data/test/unittests/tc_tags_menu.rb +0 -50
  776. data/test/unittests/tc_tags_meta.rb +0 -19
  777. data/test/unittests/tc_tags_relocatable.rb +0 -66
  778. data/test/unittests/tc_tags_sitemap.rb +0 -33
  779. data/test/unittests/tc_tags_tag_processor.rb +0 -107
  780. data/test/unittests/tc_tags_wikilink.rb +0 -22
  781. data/test/unittests/tc_treewalker.rb +0 -51
  782. data/test/unittests/tc_website.rb +0 -188
@@ -0,0 +1,6 @@
1
+ module Webgen
2
+
3
+ # The version of webgen.
4
+ VERSION = '0.5.0'
5
+
6
+ end
@@ -0,0 +1,153 @@
1
+ # -*- ruby -*-
2
+ #
3
+ #--
4
+ # webgentask.rb:
5
+ #
6
+ # Define a task library for running webgen
7
+ #
8
+ # Copyright (C) 2007 Jeremy Hinegardner
9
+ #
10
+ # Tasks restructuration by Massimiliano Filacchioni
11
+ # Modifications for 0.5.0 by Thomas Leitner
12
+ #
13
+ # This program is free software; you can redistribute it and/or modify
14
+ # it under the terms of the GNU General Public License as published by
15
+ # the Free Software Foundation; either version 2 of the License, or (at
16
+ # your option) any later version.
17
+ #
18
+ # This program is distributed in the hope that it will be useful, but
19
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
+ # General Public License for more details.
22
+ #
23
+ # You should have received a copy of the GNU General Public License
24
+ # along with this program; if not, write to the Free Software
25
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
26
+ # USA
27
+ #
28
+ #++
29
+ #
30
+
31
+ require 'rake'
32
+ require 'rake/tasklib'
33
+
34
+ module Webgen
35
+
36
+ ##
37
+ # Task library to manage a webgen website.
38
+ #
39
+ # It is assumed that you have already used the 'webgen' command to create the website directory
40
+ # for the site.
41
+ #
42
+ # === Basics
43
+ #
44
+ # require 'webgen/webgentask'
45
+ #
46
+ # Webgen::WebgenTask.new
47
+ #
48
+ # === Attributes
49
+ #
50
+ # The attributes available in the new block are:
51
+ #
52
+ # * directory - the root directory of the webgen site
53
+ # (default Dir.pwd)
54
+ # * config - the config block for setting additional configuration options
55
+ # * clobber_outdir - remove webgens output directory on clobber
56
+ # (default false)
57
+ #
58
+ # === Tasks Provided
59
+ #
60
+ # The tasks provided are :
61
+ #
62
+ # * webgen - render the webgen website
63
+ # * clobber_webgen - remove all the files created during generation
64
+ #
65
+ # === Integrate webgen in other project
66
+ #
67
+ # To integrate webgen tasks in another project you can use rake namespaces. For example assuming
68
+ # webgen's site directory is +webgen+ under the main project directory use the following code
69
+ # fragment in project Rakefile:
70
+ #
71
+ # require 'webgen/webgentask'
72
+ #
73
+ # namespace :dev do
74
+ # Webgen::WebgenTask.new do |site|
75
+ # site.directory = File.join(Dir.pwd, "webgen")
76
+ # site.clobber_outdir = true
77
+ # site.config_block = lambda |config|
78
+ # config['website.lang'] = 'de'
79
+ # end
80
+ # end
81
+ # end
82
+ #
83
+ # task :clobber => ['dev:clobber_webgen']
84
+ #
85
+ # This will create the following tasks:
86
+ #
87
+ # * dev:webgen
88
+ # * dev:clobber_webgen
89
+ #
90
+ # and add dev:clobber_webgen to the main clobber task.
91
+ #
92
+ class WebgenTask < ::Rake::TaskLib
93
+
94
+ # The directory of the webgen website. This would be the directory of your <tt>config.yaml</tt>
95
+ # file. Or the parent directory of the <tt>src/</tt> directory for webgen.
96
+ #
97
+ # The default for this is assumed to be
98
+ # Dir.pwd
99
+ attr_accessor :directory
100
+
101
+ # The configuration block that is invoked when the Webgen::Website object is initialized. This
102
+ # can be used to set configuration parameters and to avoid having a <tt>config.yaml</tt> file
103
+ # lying around.
104
+ attr_accessor :config_block
105
+
106
+ # During the clobber, should webgen's output directory be clobbered. The default is false.
107
+ attr_accessor :clobber_outdir
108
+
109
+ # Create webgen tasks. You can override the task name with the parameter +name+.
110
+ def initialize(name = 'webgen')
111
+ @name = name
112
+ @directory = Dir.pwd
113
+ @clobber_outdir = false
114
+ @config_block = nil
115
+
116
+ yield self if block_given?
117
+
118
+ define
119
+ end
120
+
121
+ #######
122
+ private
123
+ #######
124
+
125
+ def define # :nodoc:
126
+ desc "Render the webgen website"
127
+ task @name, :verbosity, :log_level do |t, args|
128
+ begin
129
+ require 'webgen/website'
130
+ website = Webgen::Website.new(@directory, Webgen::Logger.new($stdout), &@config_block)
131
+ website.logger.verbosity = args[:verbosity].to_s.intern unless args[:verbosity].to_s.empty?
132
+ website.logger.level = args[:log_level].to_i if args[:log_level]
133
+ website.render
134
+ rescue => e
135
+ puts "webgen task failed: #{e}"
136
+ raise e
137
+ end
138
+ end
139
+
140
+ task :clobber => paste('clobber_', @name)
141
+
142
+ desc "Remove webgen products"
143
+ task paste('clobber_', @name) do
144
+ require 'webgen/website'
145
+ website = Webgen::Website.new(@directory, Webgen::Logger.new($stdout), &@config_block)
146
+ website.clean(@clobber_outdir)
147
+ end
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+
@@ -1,333 +1,211 @@
1
- #
2
- #--
3
- #
4
- # $Id: website.rb 601 2007-02-14 21:20:44Z thomas $
5
- #
6
- # webgen: template based static website generator
7
- # Copyright (C) 2004 Thomas Leitner
8
- #
9
- # This program is free software; you can redistribute it and/or modify it under the terms of the GNU
10
- # General Public License as published by the Free Software Foundation; either version 2 of the
11
- # License, or (at your option) any later version.
12
- #
13
- # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
14
- # even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- # General Public License for more details.
16
- #
17
- # You should have received a copy of the GNU General Public License along with this program; if not,
18
- # write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
- #
20
- #++
21
- #
22
-
23
- require 'pathname'
24
- require 'yaml'
25
- require 'fileutils'
26
- require 'webgen/config'
27
- require 'webgen/plugin'
28
-
1
+ # Standard lib requires
2
+ require 'logger'
3
+ require 'set'
4
+
5
+ # Requirements for Website
6
+ require 'webgen/loggable'
7
+ require 'webgen/logger'
8
+ require 'webgen/configuration'
9
+ require 'webgen/websiteaccess'
10
+ require 'webgen/blackboard'
11
+ require 'webgen/cache'
12
+ require 'webgen/tree'
13
+
14
+ # Files for autoloading
15
+ require 'webgen/source'
16
+ require 'webgen/output'
17
+ require 'webgen/sourcehandler'
18
+ require 'webgen/contentprocessor'
19
+
20
+ # Load other needed files
21
+ require 'webgen/path'
22
+ require 'webgen/node'
23
+ require 'webgen/page'
24
+
25
+
26
+ # The Webgen namespace houses all classes/modules used by webgen.
29
27
  module Webgen
30
28
 
31
-
32
- # Base class for directories which have a README file with information stored in YAML format.
33
- # Should not be used directly, use its child classes!
34
- class DirectoryInfo
35
-
36
- # The unique name.
37
- attr_reader :name
38
-
39
- # Contains additional information, like a description or the creator.
40
- attr_reader :infos
41
-
42
- # Returns a new object for the given +name+.
43
- def initialize( name )
44
- @name = name
45
- raise ArgumentError.new( "'#{name}' is not a directory!" ) if !File.directory?( path )
46
- @infos = YAML::load( File.read( File.join( path, 'README' ) ) )
47
- raise ArgumentError.new( "'#{name}/README' does not contain key-value pairs in YAML format!" ) unless @infos.kind_of?( Hash )
48
- end
49
-
50
- # The absolute directory path. Requires that child classes have defined a constant +BASE_PATH+.
51
- def path
52
- File.expand_path( File.join( self.class::BASE_PATH, name ) )
53
- end
54
-
55
- # The files under the directory.
56
- def files
57
- Dir.glob( File.join( path, '**', '*' ), File::FNM_CASEFOLD )
58
- end
59
-
60
- # Copies the files returned by +#files+ into the directory +dest+, preserving the directory
61
- # hierarchy.
62
- def copy_to( dest )
63
- files.collect do |file|
64
- destpath = File.join( dest, File.dirname( file ).sub( /^#{path}/, '' ) )
65
- FileUtils.mkdir_p( File.dirname( destpath ) )
66
- if File.directory?( file )
67
- FileUtils.mkdir_p( File.join( destpath, File.basename( file ) ) )
68
- else
69
- FileUtils.cp( file, destpath )
70
- end
71
- File.join( destpath, File.basename( file ) )
72
- end
73
- end
74
-
75
- # Returns all available entries.
76
- def self.entries
77
- unless defined?( @entries )
78
- @entries = {}
79
- Dir.glob( File.join( self::BASE_PATH, '*' ), File::FNM_CASEFOLD ).each do |f|
80
- next unless File.directory?( f )
81
- name = File.basename( f );
82
- @entries[name] = self.new( name )
83
- end
84
- end
85
- @entries
86
- end
87
-
88
- end
89
-
90
-
91
- # A Web site template is a collection of files which provide a starting point for a Web site.
92
- # These files provide stubs for the content and should not contain any style information.
93
- class WebSiteTemplate < DirectoryInfo
94
-
95
- # Base path for the templates.
96
- BASE_PATH = File.join( Webgen.data_dir, 'website_templates' )
97
-
98
- end
99
-
100
-
101
- # A Web site style provides style information for a Web site. This means it contains, at least, a
102
- # template file and a CSS file.
103
- class WebSiteStyle < DirectoryInfo
104
-
105
- # Base path for the styles.
106
- BASE_PATH = File.join( Webgen.data_dir, 'website_styles' )
107
-
108
- # See DirectoryInfo#files
109
- def files
110
- super.select {|f| f != File.join( path, 'README' )}
29
+ # Returns the data directory for webgen.
30
+ def self.data_dir
31
+ unless defined?(@@data_dir)
32
+ require 'rbconfig'
33
+ @@data_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data', 'webgen'))
34
+ @@data_dir = File.expand_path(File.join(Config::CONFIG["datadir"], "webgen")) if !File.exists?(@@data_dir)
35
+ raise "Could not find webgen data directory! This is a bug, report it please!" unless File.directory?(@@data_dir)
111
36
  end
112
-
37
+ @@data_dir
113
38
  end
114
39
 
115
40
 
116
- # A gallery style provides style information for gallery pages. It should contains the files
117
- # +gallery_main.template+, +gallery_gallery.template+ and +gallery_image.template+ and an optional
118
- # readme file.
119
- class GalleryStyle < DirectoryInfo
41
+ # Represents a webgen website and is used to render it.
42
+ class Website
120
43
 
121
- # Base path for the styles.
122
- BASE_PATH = File.join( Webgen.data_dir, 'gallery_styles' )
44
+ # Raised when the configuration file of the website is invalid.
45
+ class ConfigFileInvalid < RuntimeError; end
123
46
 
124
- # See DirectoryInfo#files
125
- def files
126
- super.select {|f| f != File.join( path, 'README' )} - plugin_files
127
- end
128
-
129
- def plugin_files
130
- plugin_files = []
131
- @infos['plugin files'].each do |pfile|
132
- plugin_files += Dir.glob( File.join( path, pfile ), File::FNM_CASEFOLD )
133
- end if @infos['plugin files']
134
- plugin_files
135
- end
136
-
137
- end
47
+ include Loggable
138
48
 
139
- # A sipttra style provides a template and other files for styling sipttra files. It should contain
140
- # at least a +sipttra.template+.
141
- class SipttraStyle < DirectoryInfo
49
+ # The website configuration. Can only be used after #init has been called (which is
50
+ # automatically done in #render).
51
+ attr_reader :config
142
52
 
143
- # Base path for the styles.
144
- BASE_PATH = File.join( Webgen.data_dir, 'sipttra_styles' )
53
+ # The blackboard used for inter-object communication. Can only be used after #init has been
54
+ # called.
55
+ attr_reader :blackboard
145
56
 
146
- # See DirectoryInfo#files
147
- def files
148
- super.select {|f| f != File.join( path, 'README' )}
149
- end
57
+ # A cache to store information that should be available between runs. Can only be used after
58
+ # #init has been called.
59
+ attr_reader :cache
150
60
 
151
- end
61
+ # The internal data structure used to store information about individual nodes.
62
+ attr_reader :tree
152
63
 
153
-
154
- # A WebSite object represents a webgen website directory and is used for manipulating it.
155
- class WebSite
64
+ # The logger used for logging. If set to +nil+, logging is disabled.
65
+ attr_accessor :logger
156
66
 
157
67
  # The website directory.
158
68
  attr_reader :directory
159
69
 
160
- # The logger used for the website
161
- attr_reader :logger
162
-
163
- # The plugin manager used for this website.
164
- attr_reader :manager
165
-
166
- # Creates a new WebSite object for the given +directory+ and loads its plugins. If the
167
- # +plugin_config+ parameter is given, it is used to resolve the values for plugin parameters.
168
- # Otherwise, a ConfigurationFile instance is used as plugin configuration.
169
- def initialize( directory = Dir.pwd, plugin_config = nil )
170
- @directory = File.expand_path( directory )
171
- @logger = Webgen::Logger.new
172
-
173
- wrapper_mod = Module.new
174
- wrapper_mod.module_eval { include DEFAULT_WRAPPER_MODULE }
175
- @loader = PluginLoader.new( wrapper_mod )
176
- @loader.load_from_dir( File.join( @directory, Webgen::PLUGIN_DIR ) )
177
-
178
- @manager = PluginManager.new( [DEFAULT_PLUGIN_LOADER, @loader], DEFAULT_PLUGIN_LOADER.plugin_classes + @loader.plugin_classes )
179
- @manager.logger = @logger
180
- set_plugin_config( plugin_config )
181
- end
182
-
183
- # Returns a modified value for Configuration:srcDir, Configuration:outDir and Configuration:websiteDir.
184
- def param_for_plugin( plugin_name, param )
185
- case [plugin_name, param]
186
- when ['Core/Configuration', 'srcDir'] then @srcDir
187
- when ['Core/Configuration', 'outDir'] then @outDir
188
- when ['Core/Configuration', 'websiteDir'] then @directory
189
- else
190
- (@plugin_config ? @plugin_config.param_for_plugin( plugin_name, param ) : PluginParamValueNotFound)
70
+ # Create a new webgen website for the website in the directory +dir+. You can provide a
71
+ # block (has to take the configuration object as parameter) for adjusting the configuration
72
+ # values during the initialization.
73
+ def initialize(dir, logger=Webgen::Logger.new($stdout, false), &block)
74
+ @blackboard = nil
75
+ @cache = nil
76
+ @logger = logger
77
+ @config_block = block
78
+ @directory = dir
79
+ end
80
+
81
+ # Define a service +service_name+ provided by the instance of +klass+. The parameter +method+
82
+ # needs to define the method which should be invoked when the service is invoked. Can only be
83
+ # used after #init has been called.
84
+ def autoload_service(service_name, klass, method = service_name)
85
+ blackboard.add_service(service_name) {|*args| cache.instance(klass).send(method, *args)}
86
+ end
87
+
88
+ # Initialize the configuration, blackboard and cache objects and load the default configuration
89
+ # as well as website specific extension files. An already existing configuration/blackboard is
90
+ # deleted!
91
+ def init
92
+ execute_in_env do
93
+ @blackboard = Blackboard.new
94
+ @config = Configuration.new
95
+
96
+ load 'webgen/default_config.rb'
97
+ Dir.glob(File.join(@directory, 'ext', '**/init.rb')) {|f| load(f)}
98
+ read_config_file
99
+
100
+ @config_block.call(@config) if @config_block
101
+ restore_tree_and_cache
191
102
  end
103
+ self
192
104
  end
193
105
 
194
- # Initializes all plugins and renders the website.
195
- def render( files = [] )
196
- @logger.level = @manager.param_for_plugin( 'Core/Configuration', 'loggerLevel' )
197
- @manager.init
106
+ # Render the website (after calling #init if the website is not already initialized).
107
+ def render
108
+ execute_in_env do
109
+ init unless @config
198
110
 
199
- @logger.info( 'WebSite#render' ) { "Starting rendering of website <#{directory}>..." }
200
- @logger.info( 'WebSite#render' ) { "Using webgen data directory at <#{Webgen.data_dir}>!" }
201
- if files.empty?
202
- @manager['Core/FileHandler'].render_site
203
- else
204
- @manager['Core/FileHandler'].render_files( files )
205
- end
206
- @logger.info( 'WebSite#render' ) { "Rendering of website <#{directory}> finished" }
207
- end
111
+ puts "Starting webgen..."
112
+ shm = SourceHandler::Main.new
113
+ shm.render(@tree)
114
+ save_tree_and_cache
115
+ puts "Finished"
208
116
 
209
- # Loads the configuration file from the +directory+.
210
- def self.load_config_file( directory = Dir.pwd )
211
- begin
212
- ConfigurationFile.new( File.join( directory, 'config.yaml' ) )
213
- rescue ConfigurationFileInvalid => e
214
- nil
117
+ if @logger && @logger.log_output.length > 0
118
+ puts "\nLog messages:"
119
+ puts @logger.log_output
120
+ end
215
121
  end
216
122
  end
217
123
 
218
- # Create a website in the +directory+, using the template +template_name+ and the style +style_name+.
219
- def self.create_website( directory, template_name = 'default', style_name = 'default' )
220
- template = WebSiteTemplate.entries[template_name]
221
- style = WebSiteStyle.entries[style_name]
222
- raise ArgumentError.new( "Invalid website template '#{template}'" ) if template.nil?
223
- raise ArgumentError.new( "Invalid website style '#{style}'" ) if style.nil?
224
-
225
- raise ArgumentError.new( "Directory <#{directory}> does already exist!") if File.exists?( directory )
226
- FileUtils.mkdir( directory )
227
- return template.copy_to( directory ) + style.copy_to( File.join( directory, Webgen::SRC_DIR) )
228
- end
229
-
230
- # Copies the style files for +style+ to the source directory of the website +directory+
231
- # overwritting exisiting files.
232
- def self.use_website_style( directory, style_name )
233
- style = WebSiteStyle.entries[style_name]
234
- raise ArgumentError.new( "Invalid website style '#{style_name}'" ) if style.nil?
235
- src_dir = File.join( directory, Webgen::SRC_DIR )
236
- raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
237
- return style.copy_to( src_dir )
238
- end
239
-
240
- # Copies the gallery style files for +style+ to the source directory of the website +directory+
241
- # overwritting exisiting files.
242
- def self.use_gallery_style( directory, style_name )
243
- style = GalleryStyle.entries[style_name]
244
- raise ArgumentError.new( "Invalid gallery style '#{style_name}'" ) if style.nil?
245
- src_dir = File.join( directory, Webgen::SRC_DIR )
246
- plugin_dir = File.join( directory, Webgen::PLUGIN_DIR )
247
- raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
248
- plugin_files = style.plugin_files
249
- FileUtils.mkdir( plugin_dir ) unless File.exists?( plugin_dir )
250
- FileUtils.cp( plugin_files, plugin_dir )
251
- return style.copy_to( src_dir ) + plugin_files.collect {|f| File.join( plugin_dir, File.basename( f ) )}
252
- end
253
-
254
- # Copies the sipttra style files for +style+ to the source directory of the website +directory+
255
- # overwritting exisiting files.
256
- def self.use_sipttra_style( directory, style_name )
257
- style = SipttraStyle.entries[style_name]
258
- raise ArgumentError.new( "Invalid sipttra style '#{style_name}'" ) if style.nil?
259
- src_dir = File.join( directory, Webgen::SRC_DIR )
260
- raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
261
- return style.copy_to( src_dir )
262
- end
263
-
264
- #######
265
- private
266
- #######
267
-
268
- def set_plugin_config( plugin_config )
269
- @manager.plugin_config = ( plugin_config ? plugin_config : self.class.load_config_file( @directory ) )
270
- @srcDir = File.join( @directory, Webgen::SRC_DIR )
271
- outDir = @manager.param_for_plugin( 'Core/Configuration', 'outDir' )
272
- @outDir = (/^(\/|[A-Za-z]:)/ =~ outDir ? outDir : File.join( @directory, outDir ) )
273
- @plugin_config = @manager.plugin_config
274
- @manager.plugin_config = self
275
- end
276
-
277
- end
278
-
279
-
280
- # Raised when a configuration file has an invalid structure
281
- class ConfigurationFileInvalid < RuntimeError; end
282
-
283
- # Represents the configuration file of a website.
284
- class ConfigurationFile
124
+ # Clean the website directory from all generated output files (including the cache file). If
125
+ # +del_outdir+ is +true+, then the base output directory is also deleted. When a delete
126
+ # operation fails, the error is silently ignored and the clean operation continues.
127
+ #
128
+ # Note: Uses the configured output instance for the operations!
129
+ def clean(del_outdir = false)
130
+ init
131
+ execute_in_env do
132
+ output = @blackboard.invoke(:output_instance)
133
+ @tree.node_access[:alcn].each do |name, node|
134
+ next if node.is_fragment? || node['no_output'] || node.path == '/' || node == @tree.dummy_root
135
+ output.delete(node.path) rescue nil
136
+ end
285
137
 
286
- # Returns the whole configuration.
287
- attr_reader :config
138
+ if @config['website.cache'].first == :file
139
+ FileUtils.rm(File.join(@directory, @config['website.cache'].last)) rescue nil
140
+ end
288
141
 
289
- # Reads the content of the given configuration file and initialize a new object with it.
290
- def initialize( config_file )
291
- if File.exists?( config_file )
292
- begin
293
- @config = YAML::load( File.read( config_file ) )
294
- rescue ArgumentError => e
295
- raise ConfigurationFileInvalid, e.message
142
+ if del_outdir
143
+ output.delete('/') rescue nil
296
144
  end
297
- else
298
- @config = {}
299
145
  end
300
- check_config
301
146
  end
302
147
 
303
- # See PluginManager#param_for_plugin .
304
- def param_for_plugin( plugin_name, param )
305
- if @config.has_key?( plugin_name ) && @config[plugin_name].has_key?( param )
306
- @config[plugin_name][param]
307
- else
308
- PluginParamValueNotFound
309
- end
148
+ # The provided block is executed within a proper environment sothat any object can access the
149
+ # Website object.
150
+ def execute_in_env
151
+ set_back = Thread.current[:webgen_website].nil?
152
+ Thread.current[:webgen_website] = self
153
+ yield
154
+ ensure
155
+ Thread.current[:webgen_website] = nil if set_back
310
156
  end
311
157
 
312
158
  #######
313
159
  private
314
160
  #######
315
161
 
316
- def check_config
317
- if !@config.kind_of?( Hash ) || !@config.all? {|k,v| v.kind_of?( Hash )}
318
- raise ConfigurationFileInvalid.new( 'Structure of config file is not valid, has to be a Hash of Hashes' )
162
+ # Restore the tree and the cache from +website.cache+ and returns the Tree object.
163
+ def restore_tree_and_cache
164
+ @cache = Cache.new
165
+ @tree = Tree.new
166
+ data = if config['website.cache'].first == :file
167
+ cache_file = File.join(@directory, config['website.cache'].last)
168
+ File.read(cache_file) if File.exists?(cache_file)
169
+ else
170
+ config['website.cache'].last
171
+ end
172
+ cache_data, @tree = Marshal.load(data) rescue nil
173
+ @cache.restore(cache_data) if cache_data
174
+ end
175
+
176
+ # Save the +tree+ and the +cache+ to +website.cache+.
177
+ def save_tree_and_cache
178
+ cache_data = [@cache.dump, @tree]
179
+ if config['website.cache'].first == :file
180
+ cache_file = File.join(@directory, config['website.cache'].last)
181
+ File.open(cache_file, 'wb') {|f| Marshal.dump(cache_data, f)}
182
+ else
183
+ config['website.cache'][1] = Marshal.dump(cache_data)
319
184
  end
185
+ end
320
186
 
321
- if !@config.has_key?( 'Core/FileHandler' ) || !@config['Core/FileHandler'].has_key?( 'defaultMetaInfo' )
322
- @config.each_key do |plugin_name|
323
- next unless plugin_name =~ /File\//
324
- if @config[plugin_name]['defaultMetaInfo'].kind_of?( Hash )
325
- ((@config['Core/FileHandler'] ||= {})['defaultMetaInfo'] ||= {})[plugin_name] = @config[plugin_name]['defaultMetaInfo']
326
- @config[plugin_name].delete( 'defaultMetaInfo' )
187
+ # Update the configuration object for the website with infos found in the configuration file.
188
+ def read_config_file
189
+ file = File.join(@directory, 'config.yaml')
190
+ if File.exists?(file)
191
+ begin
192
+ config = YAML::load(File.read(file)) || {}
193
+ raise 'Structure of config file is not valid, has to be a Hash' if !config.kind_of?(Hash)
194
+ config.each do |key, value|
195
+ if key == 'default_meta_info'
196
+ value.each do |klass_name, options|
197
+ @config['sourcehandler.default_meta_info'][klass_name].update(options)
198
+ end
199
+ else
200
+ @config[key] = value
201
+ end
327
202
  end
203
+ rescue RuntimeError, ArgumentError => e
204
+ raise ConfigFileInvalid, "Configuration invalid: " + e.message
328
205
  end
206
+ elsif File.exists?(File.join(@directory, 'config.yml'))
207
+ log(:warn) { "No configuration file called config.yaml found (there is a config.yml - spelling error?)" }
329
208
  end
330
-
331
209
  end
332
210
 
333
211
  end