webgen 0.5.17 → 1.0.0.beta1

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 (408) hide show
  1. data/API.rdoc +143 -0
  2. data/AUTHORS +0 -1
  3. data/COPYING +17 -8
  4. data/ChangeLog +4456 -0
  5. data/GPL +623 -289
  6. data/README.md +71 -0
  7. data/Rakefile +87 -99
  8. data/VERSION +1 -1
  9. data/bin/webgen +1 -7
  10. data/data/webgen/basic_website_template/ext/init.rb +15 -0
  11. data/data/webgen/basic_website_template/webgen.config +18 -0
  12. data/data/webgen/bundle_template_files/README.md.erb +24 -0
  13. data/data/webgen/bundle_template_files/Rakefile.erb +36 -0
  14. data/data/webgen/bundle_template_files/info.yaml.erb +16 -0
  15. data/data/webgen/bundle_template_files/init.rb.erb +1 -0
  16. data/data/webgen/passive_sources/default.metainfo +32 -0
  17. data/data/webgen/passive_sources/stylesheets/coderay-default.css +109 -118
  18. data/data/webgen/passive_sources/templates/feed.template +62 -0
  19. data/data/webgen/passive_sources/templates/sitemap.template +3 -6
  20. data/data/webgen/passive_sources/templates/tag.template +42 -0
  21. data/data/webgen/website_bundles/default/README +2 -2
  22. data/lib/webgen/blackboard.rb +15 -51
  23. data/lib/webgen/bundle/built-in-show-changes/init.rb +54 -0
  24. data/lib/webgen/bundle/built-in/init.rb +366 -0
  25. data/lib/webgen/bundle_loader.rb +126 -0
  26. data/lib/webgen/cache.rb +9 -18
  27. data/lib/webgen/cli.rb +131 -58
  28. data/lib/webgen/cli/bundle_command.rb +30 -0
  29. data/lib/webgen/cli/create_bundle_command.rb +46 -0
  30. data/lib/webgen/cli/create_command.rb +48 -60
  31. data/lib/webgen/cli/generate_command.rb +25 -0
  32. data/lib/webgen/cli/install_bundle_command.rb +34 -0
  33. data/lib/webgen/cli/list_bundle_command.rb +108 -0
  34. data/lib/webgen/cli/logger.rb +45 -0
  35. data/lib/webgen/cli/show_command.rb +30 -0
  36. data/lib/webgen/cli/show_config_command.rb +63 -0
  37. data/lib/webgen/cli/show_dependencies_command.rb +103 -0
  38. data/lib/webgen/cli/show_extensions_command.rb +74 -0
  39. data/lib/webgen/cli/utils.rb +68 -95
  40. data/lib/webgen/configuration.rb +143 -105
  41. data/lib/webgen/content_processor.rb +160 -0
  42. data/lib/webgen/content_processor/blocks.rb +96 -0
  43. data/lib/webgen/content_processor/builder.rb +25 -0
  44. data/lib/webgen/content_processor/erb.rb +25 -0
  45. data/lib/webgen/content_processor/erubis.rb +31 -0
  46. data/lib/webgen/content_processor/fragments.rb +82 -0
  47. data/lib/webgen/content_processor/haml.rb +25 -0
  48. data/lib/webgen/content_processor/html_head.rb +157 -0
  49. data/lib/webgen/content_processor/kramdown.rb +49 -0
  50. data/lib/webgen/content_processor/maruku.rb +39 -0
  51. data/lib/webgen/content_processor/r_discount.rb +21 -0
  52. data/lib/webgen/content_processor/rdoc.rb +22 -0
  53. data/lib/webgen/content_processor/redcloth.rb +23 -0
  54. data/lib/webgen/content_processor/ruby.rb +20 -0
  55. data/lib/webgen/content_processor/sass.rb +145 -0
  56. data/lib/webgen/content_processor/scss.rb +23 -0
  57. data/lib/webgen/content_processor/tags.rb +30 -0
  58. data/lib/webgen/content_processor/tidy.rb +32 -0
  59. data/lib/webgen/content_processor/tikz.rb +116 -0
  60. data/lib/webgen/content_processor/xmllint.rb +31 -0
  61. data/lib/webgen/context.rb +57 -29
  62. data/lib/webgen/context/html_head.rb +60 -0
  63. data/lib/webgen/context/nodes.rb +32 -27
  64. data/lib/webgen/context/rendering.rb +39 -0
  65. data/lib/webgen/context/webgen_tags.rb +25 -0
  66. data/lib/webgen/core_ext.rb +25 -0
  67. data/lib/webgen/destination.rb +151 -0
  68. data/lib/webgen/destination/file_system.rb +62 -0
  69. data/lib/webgen/error.rb +59 -49
  70. data/lib/webgen/extension_manager.rb +121 -0
  71. data/lib/webgen/item_tracker.rb +237 -0
  72. data/lib/webgen/item_tracker/file.rb +39 -0
  73. data/lib/webgen/item_tracker/missing_node.rb +61 -0
  74. data/lib/webgen/item_tracker/node_content.rb +40 -0
  75. data/lib/webgen/item_tracker/node_meta_info.rb +53 -0
  76. data/lib/webgen/item_tracker/nodes.rb +92 -0
  77. data/lib/webgen/logger.rb +26 -82
  78. data/lib/webgen/node.rb +122 -367
  79. data/lib/webgen/node_finder.rb +336 -0
  80. data/lib/webgen/page.rb +48 -85
  81. data/lib/webgen/path.rb +218 -156
  82. data/lib/webgen/path_handler.rb +400 -0
  83. data/lib/webgen/path_handler/base.rb +220 -0
  84. data/lib/webgen/path_handler/copy.rb +78 -0
  85. data/lib/webgen/path_handler/directory.rb +21 -0
  86. data/lib/webgen/path_handler/feed.rb +82 -0
  87. data/lib/webgen/path_handler/meta_info.rb +84 -0
  88. data/lib/webgen/path_handler/page.rb +38 -0
  89. data/lib/webgen/path_handler/page_utils.rb +79 -0
  90. data/lib/webgen/path_handler/sitemap.rb +52 -0
  91. data/lib/webgen/path_handler/template.rb +96 -0
  92. data/lib/webgen/path_handler/virtual.rb +85 -0
  93. data/lib/webgen/{webgentask.rb → rake_task.rb} +31 -27
  94. data/lib/webgen/source.rb +106 -24
  95. data/lib/webgen/source/file_system.rb +41 -0
  96. data/lib/webgen/source/stacked.rb +49 -53
  97. data/lib/webgen/source/tar_archive.rb +59 -0
  98. data/lib/webgen/tag.rb +250 -19
  99. data/lib/webgen/tag/breadcrumb_trail.rb +65 -0
  100. data/lib/webgen/tag/coderay.rb +32 -35
  101. data/lib/webgen/tag/date.rb +9 -9
  102. data/lib/webgen/tag/execute_command.rb +31 -0
  103. data/lib/webgen/tag/include_file.rb +32 -0
  104. data/lib/webgen/tag/langbar.rb +31 -47
  105. data/lib/webgen/tag/link.rb +17 -18
  106. data/lib/webgen/tag/menu.rb +27 -189
  107. data/lib/webgen/tag/meta_info.rb +31 -0
  108. data/lib/webgen/tag/relocatable.rb +48 -39
  109. data/lib/webgen/tag/tikz.rb +24 -100
  110. data/lib/webgen/task.rb +99 -0
  111. data/lib/webgen/task/create_bundle.rb +73 -0
  112. data/lib/webgen/task/create_website.rb +94 -0
  113. data/lib/webgen/task/generate_website.rb +47 -0
  114. data/lib/webgen/test_helper.rb +183 -0
  115. data/lib/webgen/tree.rb +95 -46
  116. data/lib/webgen/utils.rb +39 -0
  117. data/lib/webgen/utils/external_command.rb +27 -0
  118. data/lib/webgen/utils/tag_parser.rb +124 -0
  119. data/lib/webgen/version.rb +1 -1
  120. data/lib/webgen/website.rb +134 -296
  121. data/setup.rb +1 -1
  122. data/test/test_documentation.rb +43 -0
  123. data/test/webgen/cli/test_logger.rb +41 -0
  124. data/test/{test_contentprocessor_blocks.rb → webgen/content_processor/test_blocks.rb} +30 -28
  125. data/test/webgen/content_processor/test_builder.rb +25 -0
  126. data/test/webgen/content_processor/test_erb.rb +21 -0
  127. data/test/webgen/content_processor/test_erubis.rb +33 -0
  128. data/test/webgen/content_processor/test_fragments.rb +96 -0
  129. data/test/webgen/content_processor/test_haml.rb +24 -0
  130. data/test/webgen/content_processor/test_html_head.rb +78 -0
  131. data/test/webgen/content_processor/test_kramdown.rb +49 -0
  132. data/test/webgen/content_processor/test_maruku.rb +30 -0
  133. data/test/webgen/content_processor/test_r_discount.rb +18 -0
  134. data/test/webgen/content_processor/test_rdoc.rb +18 -0
  135. data/test/webgen/content_processor/test_redcloth.rb +23 -0
  136. data/test/webgen/content_processor/test_ruby.rb +24 -0
  137. data/test/webgen/content_processor/test_sass.rb +44 -0
  138. data/test/webgen/content_processor/test_scss.rb +23 -0
  139. data/test/webgen/content_processor/test_tags.rb +44 -0
  140. data/test/webgen/content_processor/test_tidy.rb +31 -0
  141. data/test/webgen/content_processor/test_tikz.rb +33 -0
  142. data/test/webgen/content_processor/test_xmllint.rb +32 -0
  143. data/test/webgen/destination/test_file_system.rb +54 -0
  144. data/test/webgen/item_tracker/test_file.rb +31 -0
  145. data/test/webgen/item_tracker/test_missing_node.rb +70 -0
  146. data/test/webgen/item_tracker/test_node_content.rb +42 -0
  147. data/test/webgen/item_tracker/test_node_meta_info.rb +44 -0
  148. data/test/webgen/item_tracker/test_nodes.rb +61 -0
  149. data/test/webgen/path_handler/test_base.rb +153 -0
  150. data/test/webgen/path_handler/test_copy.rb +56 -0
  151. data/test/webgen/path_handler/test_feed.rb +85 -0
  152. data/test/webgen/path_handler/test_meta_info.rb +98 -0
  153. data/test/webgen/path_handler/test_page.rb +25 -0
  154. data/test/webgen/path_handler/test_page_utils.rb +59 -0
  155. data/test/webgen/path_handler/test_sitemap.rb +95 -0
  156. data/test/webgen/path_handler/test_template.rb +64 -0
  157. data/test/webgen/path_handler/test_virtual.rb +87 -0
  158. data/test/webgen/source/test_file_system.rb +51 -0
  159. data/test/webgen/source/test_stacked.rb +35 -0
  160. data/test/{test_source_tararchive.rb → webgen/source/test_tar_archive.rb} +10 -25
  161. data/test/webgen/tag/test_breadcrumb_trail.rb +66 -0
  162. data/test/webgen/tag/test_coderay.rb +34 -0
  163. data/test/webgen/tag/test_date.rb +18 -0
  164. data/test/webgen/tag/test_execute_command.rb +36 -0
  165. data/test/webgen/tag/test_include_file.rb +35 -0
  166. data/test/webgen/tag/test_langbar.rb +50 -0
  167. data/test/webgen/tag/test_link.rb +40 -0
  168. data/test/webgen/tag/test_menu.rb +61 -0
  169. data/test/webgen/tag/test_meta_info.rb +25 -0
  170. data/test/webgen/tag/test_relocatable.rb +50 -0
  171. data/test/webgen/tag/test_tikz.rb +41 -0
  172. data/test/webgen/task/test_create_website.rb +46 -0
  173. data/test/webgen/test_blackboard.rb +31 -0
  174. data/test/webgen/test_bundle_loader.rb +55 -0
  175. data/test/{test_cache.rb → webgen/test_cache.rb} +3 -15
  176. data/test/webgen/test_cli.rb +41 -0
  177. data/test/webgen/test_configuration.rb +131 -0
  178. data/test/webgen/test_content_processor.rb +86 -0
  179. data/test/webgen/test_context.rb +73 -0
  180. data/test/webgen/test_core_ext.rb +20 -0
  181. data/test/webgen/test_destination.rb +48 -0
  182. data/test/webgen/test_error.rb +121 -0
  183. data/test/webgen/test_extension_manager.rb +70 -0
  184. data/test/webgen/test_item_tracker.rb +106 -0
  185. data/test/{test_languages.rb → webgen/test_languages.rb} +4 -4
  186. data/test/webgen/test_logger.rb +46 -0
  187. data/test/webgen/test_node.rb +178 -0
  188. data/test/webgen/test_node_finder.rb +127 -0
  189. data/test/{test_page.rb → webgen/test_page.rb} +44 -48
  190. data/test/webgen/test_path.rb +271 -0
  191. data/test/{test_webgentask.rb → webgen/test_rake_task.rb} +4 -4
  192. data/test/webgen/test_source.rb +59 -0
  193. data/test/webgen/test_tag.rb +137 -0
  194. data/test/webgen/test_task.rb +40 -0
  195. data/test/webgen/test_tree.rb +147 -0
  196. data/test/webgen/test_utils.rb +16 -0
  197. data/test/webgen/test_website.rb +45 -0
  198. data/test/webgen/utils/test_tag_parser.rb +99 -0
  199. metadata +292 -344
  200. data/data/webgen/passive_sources/templates/atom_feed.template +0 -39
  201. data/data/webgen/passive_sources/templates/rss_feed.template +0 -28
  202. data/data/webgen/resources.yaml +0 -4
  203. data/data/webgen/webgui/app.rb +0 -11
  204. data/data/webgen/webgui/controller/main.rb +0 -135
  205. data/data/webgen/webgui/layout/default.xhtml +0 -40
  206. data/data/webgen/webgui/overrides/win32console.rb +0 -0
  207. data/data/webgen/webgui/public/css/jquery.autocomplete.css +0 -50
  208. data/data/webgen/webgui/public/css/ramaze_error.css +0 -90
  209. data/data/webgen/webgui/public/css/style.css +0 -55
  210. data/data/webgen/webgui/public/img/headerbg.jpg +0 -0
  211. data/data/webgen/webgui/public/img/webgen_logo.png +0 -0
  212. data/data/webgen/webgui/public/js/jquery.autocomplete.js +0 -15
  213. data/data/webgen/webgui/public/js/jquery.js +0 -32
  214. data/data/webgen/webgui/start.rb +0 -9
  215. data/data/webgen/webgui/view/create_website.xhtml +0 -14
  216. data/data/webgen/webgui/view/error.xhtml +0 -64
  217. data/data/webgen/webgui/view/index.xhtml +0 -22
  218. data/data/webgen/webgui/view/manage_website.xhtml +0 -18
  219. data/data/webgen/website_skeleton/README +0 -10
  220. data/data/webgen/website_skeleton/Rakefile +0 -69
  221. data/data/webgen/website_skeleton/config.yaml +0 -35
  222. data/data/webgen/website_skeleton/ext/init.rb +0 -10
  223. data/doc/contentprocessor.template +0 -11
  224. data/doc/contentprocessor/blocks.page +0 -129
  225. data/doc/contentprocessor/builder.page +0 -79
  226. data/doc/contentprocessor/erb.page +0 -60
  227. data/doc/contentprocessor/erubis.page +0 -46
  228. data/doc/contentprocessor/fragments.page +0 -26
  229. data/doc/contentprocessor/haml.page +0 -46
  230. data/doc/contentprocessor/head.page +0 -31
  231. data/doc/contentprocessor/kramdown.page +0 -49
  232. data/doc/contentprocessor/less.page +0 -34
  233. data/doc/contentprocessor/maruku.page +0 -44
  234. data/doc/contentprocessor/rdiscount.page +0 -37
  235. data/doc/contentprocessor/rdoc.page +0 -36
  236. data/doc/contentprocessor/redcloth.page +0 -41
  237. data/doc/contentprocessor/sass.page +0 -31
  238. data/doc/contentprocessor/scss.page +0 -39
  239. data/doc/contentprocessor/tags.page +0 -73
  240. data/doc/contentprocessor/tidy.page +0 -14
  241. data/doc/contentprocessor/xmllint.page +0 -14
  242. data/doc/extensions.metainfo +0 -29
  243. data/doc/extensions.page +0 -15
  244. data/doc/extensions.template +0 -17
  245. data/doc/faq.page +0 -222
  246. data/doc/getting_started.page +0 -135
  247. data/doc/index.page +0 -71
  248. data/doc/manual.page +0 -727
  249. data/doc/reference_configuration.page +0 -1254
  250. data/doc/reference_metainfo.page +0 -265
  251. data/doc/reference_website_styles.page +0 -32
  252. data/doc/source/filesystem.page +0 -41
  253. data/doc/source/tararchive.page +0 -40
  254. data/doc/sourcehandler.template +0 -23
  255. data/doc/sourcehandler/copy.page +0 -19
  256. data/doc/sourcehandler/directory.page +0 -27
  257. data/doc/sourcehandler/feed.page +0 -102
  258. data/doc/sourcehandler/metainfo.page +0 -48
  259. data/doc/sourcehandler/page.page +0 -14
  260. data/doc/sourcehandler/sitemap.page +0 -46
  261. data/doc/sourcehandler/template.page +0 -45
  262. data/doc/sourcehandler/virtual.page +0 -49
  263. data/doc/tag.template +0 -25
  264. data/doc/tag/breadcrumbtrail.page +0 -40
  265. data/doc/tag/coderay.page +0 -53
  266. data/doc/tag/date.page +0 -31
  267. data/doc/tag/executecommand.page +0 -26
  268. data/doc/tag/includefile.page +0 -32
  269. data/doc/tag/langbar.page +0 -47
  270. data/doc/tag/link.page +0 -44
  271. data/doc/tag/menu.page +0 -109
  272. data/doc/tag/metainfo.page +0 -29
  273. data/doc/tag/relocatable.page +0 -38
  274. data/doc/tag/sitemap.page +0 -31
  275. data/doc/tag/tikz.page +0 -159
  276. data/doc/upgrading.page +0 -138
  277. data/doc/webgen_page_format.page +0 -129
  278. data/doc/website_styles.metainfo +0 -8
  279. data/lib/webgen/cli/apply_command.rb +0 -66
  280. data/lib/webgen/cli/run_command.rb +0 -22
  281. data/lib/webgen/cli/webgui_command.rb +0 -68
  282. data/lib/webgen/common.rb +0 -27
  283. data/lib/webgen/common/sitemap.rb +0 -83
  284. data/lib/webgen/contentprocessor.rb +0 -117
  285. data/lib/webgen/contentprocessor/blocks.rb +0 -92
  286. data/lib/webgen/contentprocessor/builder.rb +0 -29
  287. data/lib/webgen/contentprocessor/erb.rb +0 -26
  288. data/lib/webgen/contentprocessor/erubis.rb +0 -39
  289. data/lib/webgen/contentprocessor/fragments.rb +0 -25
  290. data/lib/webgen/contentprocessor/haml.rb +0 -34
  291. data/lib/webgen/contentprocessor/head.rb +0 -128
  292. data/lib/webgen/contentprocessor/kramdown.rb +0 -27
  293. data/lib/webgen/contentprocessor/kramdown/html.rb +0 -36
  294. data/lib/webgen/contentprocessor/less.rb +0 -35
  295. data/lib/webgen/contentprocessor/maruku.rb +0 -36
  296. data/lib/webgen/contentprocessor/rdiscount.rb +0 -19
  297. data/lib/webgen/contentprocessor/rdoc.rb +0 -20
  298. data/lib/webgen/contentprocessor/redcloth.rb +0 -21
  299. data/lib/webgen/contentprocessor/sass.rb +0 -22
  300. data/lib/webgen/contentprocessor/scss.rb +0 -22
  301. data/lib/webgen/contentprocessor/tags.rb +0 -170
  302. data/lib/webgen/contentprocessor/tidy.rb +0 -38
  303. data/lib/webgen/contentprocessor/xmllint.rb +0 -37
  304. data/lib/webgen/context/render.rb +0 -32
  305. data/lib/webgen/context/tags.rb +0 -20
  306. data/lib/webgen/coreext.rb +0 -13
  307. data/lib/webgen/default_config.rb +0 -240
  308. data/lib/webgen/loggable.rb +0 -25
  309. data/lib/webgen/output.rb +0 -86
  310. data/lib/webgen/output/filesystem.rb +0 -69
  311. data/lib/webgen/source/filesystem.rb +0 -61
  312. data/lib/webgen/source/resource.rb +0 -45
  313. data/lib/webgen/source/tararchive.rb +0 -78
  314. data/lib/webgen/sourcehandler.rb +0 -275
  315. data/lib/webgen/sourcehandler/base.rb +0 -281
  316. data/lib/webgen/sourcehandler/copy.rb +0 -44
  317. data/lib/webgen/sourcehandler/directory.rb +0 -30
  318. data/lib/webgen/sourcehandler/feed.rb +0 -92
  319. data/lib/webgen/sourcehandler/fragment.rb +0 -70
  320. data/lib/webgen/sourcehandler/memory.rb +0 -42
  321. data/lib/webgen/sourcehandler/metainfo.rb +0 -128
  322. data/lib/webgen/sourcehandler/page.rb +0 -64
  323. data/lib/webgen/sourcehandler/sitemap.rb +0 -60
  324. data/lib/webgen/sourcehandler/template.rb +0 -66
  325. data/lib/webgen/sourcehandler/virtual.rb +0 -117
  326. data/lib/webgen/tag/base.rb +0 -170
  327. data/lib/webgen/tag/breadcrumbtrail.rb +0 -70
  328. data/lib/webgen/tag/executecommand.rb +0 -31
  329. data/lib/webgen/tag/includefile.rb +0 -42
  330. data/lib/webgen/tag/metainfo.rb +0 -27
  331. data/lib/webgen/tag/sitemap.rb +0 -41
  332. data/lib/webgen/websiteaccess.rb +0 -31
  333. data/lib/webgen/websitemanager.rb +0 -125
  334. data/misc/default.css +0 -403
  335. data/misc/default.template +0 -76
  336. data/misc/htmldoc.metainfo +0 -26
  337. data/misc/htmldoc.virtual +0 -17
  338. data/misc/images/arrow.gif +0 -0
  339. data/misc/images/error.png +0 -0
  340. data/misc/images/headerbg.jpg +0 -0
  341. data/misc/images/important.png +0 -0
  342. data/misc/images/information.png +0 -0
  343. data/misc/images/quote.gif +0 -0
  344. data/misc/images/warning.png +0 -0
  345. data/misc/logo.svg +0 -313
  346. data/misc/style.page +0 -33
  347. data/test/helper.rb +0 -61
  348. data/test/test_blackboard.rb +0 -60
  349. data/test/test_cli.rb +0 -119
  350. data/test/test_common_sitemap.rb +0 -58
  351. data/test/test_configuration.rb +0 -68
  352. data/test/test_contentprocessor.rb +0 -39
  353. data/test/test_contentprocessor_builder.rb +0 -41
  354. data/test/test_contentprocessor_erb.rb +0 -33
  355. data/test/test_contentprocessor_erubis.rb +0 -62
  356. data/test/test_contentprocessor_fragments.rb +0 -43
  357. data/test/test_contentprocessor_haml.rb +0 -39
  358. data/test/test_contentprocessor_head.rb +0 -96
  359. data/test/test_contentprocessor_kramdown.rb +0 -56
  360. data/test/test_contentprocessor_less.rb +0 -40
  361. data/test/test_contentprocessor_maruku.rb +0 -33
  362. data/test/test_contentprocessor_rdiscount.rb +0 -21
  363. data/test/test_contentprocessor_rdoc.rb +0 -22
  364. data/test/test_contentprocessor_redcloth.rb +0 -26
  365. data/test/test_contentprocessor_sass.rb +0 -28
  366. data/test/test_contentprocessor_scss.rb +0 -28
  367. data/test/test_contentprocessor_tags.rb +0 -122
  368. data/test/test_contentprocessor_tidy.rb +0 -34
  369. data/test/test_contentprocessor_xmllint.rb +0 -38
  370. data/test/test_context.rb +0 -81
  371. data/test/test_error.rb +0 -93
  372. data/test/test_loggable.rb +0 -32
  373. data/test/test_logger.rb +0 -94
  374. data/test/test_node.rb +0 -469
  375. data/test/test_output_filesystem.rb +0 -60
  376. data/test/test_path.rb +0 -241
  377. data/test/test_source_filesystem.rb +0 -76
  378. data/test/test_source_resource.rb +0 -28
  379. data/test/test_source_stacked.rb +0 -49
  380. data/test/test_sourcehandler_base.rb +0 -136
  381. data/test/test_sourcehandler_copy.rb +0 -47
  382. data/test/test_sourcehandler_directory.rb +0 -38
  383. data/test/test_sourcehandler_feed.rb +0 -88
  384. data/test/test_sourcehandler_fragment.rb +0 -70
  385. data/test/test_sourcehandler_main.rb +0 -39
  386. data/test/test_sourcehandler_memory.rb +0 -44
  387. data/test/test_sourcehandler_metainfo.rb +0 -127
  388. data/test/test_sourcehandler_page.rb +0 -73
  389. data/test/test_sourcehandler_sitemap.rb +0 -68
  390. data/test/test_sourcehandler_template.rb +0 -68
  391. data/test/test_sourcehandler_virtual.rb +0 -106
  392. data/test/test_tag_base.rb +0 -62
  393. data/test/test_tag_breadcrumbtrail.rb +0 -91
  394. data/test/test_tag_coderay.rb +0 -45
  395. data/test/test_tag_date.rb +0 -18
  396. data/test/test_tag_executecommand.rb +0 -41
  397. data/test/test_tag_includefile.rb +0 -50
  398. data/test/test_tag_langbar.rb +0 -71
  399. data/test/test_tag_link.rb +0 -70
  400. data/test/test_tag_menu.rb +0 -207
  401. data/test/test_tag_metainfo.rb +0 -26
  402. data/test/test_tag_relocatable.rb +0 -60
  403. data/test/test_tag_sitemap.rb +0 -47
  404. data/test/test_tag_tikz.rb +0 -69
  405. data/test/test_tree.rb +0 -70
  406. data/test/test_website.rb +0 -130
  407. data/test/test_websiteaccess.rb +0 -25
  408. data/test/test_websitemanager.rb +0 -65
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+ require 'webgen/cli/install_bundle_command'
5
+ require 'webgen/cli/list_bundle_command'
6
+ require 'webgen/cli/create_bundle_command'
7
+
8
+ module Webgen
9
+ module CLI
10
+
11
+ # The CLI command for bundle related operations.
12
+ class BundleCommand < CmdParse::Command
13
+
14
+ def initialize # :nodoc:
15
+ super('bundle', true, true, false)
16
+ self.short_desc = 'Work with extension bundles'
17
+ self.description = Webgen::CLI::Utils.format_command_desc(<<DESC)
18
+ Groups various commands together that are used for working with extension bundles. If
19
+ a sub-command is invoked in the context of a webgen website, information about the
20
+ website is also included.
21
+ DESC
22
+ add_command(ListBundleCommand.new, true)
23
+ add_command(InstallBundleCommand.new)
24
+ add_command(CreateBundleCommand.new)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,46 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+ require 'fileutils'
5
+ require 'erb'
6
+
7
+ module Webgen
8
+ module CLI
9
+
10
+ # The CLI command for creating a new extension bundle.
11
+ class CreateBundleCommand < CmdParse::Command
12
+
13
+ def initialize # :nodoc:
14
+ super('create', false, false, true)
15
+ self.short_desc = 'Create an extension bundle'
16
+ self.description = Utils.format_command_desc(<<DESC)
17
+ Creates a new extension bundle. This command can either create a local bundle in the
18
+ website's ext/ directory or a bundle that can be distributed via Rubygems. In the
19
+ latter case you can optionally specify the directory under which the bundle should
20
+ be created.
21
+ DESC
22
+ self.options = CmdParse::OptionParserWrapper.new do |opts|
23
+ opts.separator "Options:"
24
+ opts.on("-d", "--distribution-format",
25
+ *Utils.format_option_desc("Create the bundle in distribution format")) do
26
+ @type = :gem
27
+ end
28
+ end
29
+ @type = :local
30
+ end
31
+
32
+ def usage # :nodoc:
33
+ "Usage: webgen [global options] bundle create [options] BUNDLE_NAME [DIRECTORY]"
34
+ end
35
+
36
+ def execute(args) # :nodoc:
37
+ bundle_name = args.shift
38
+ raise "The argument NAME is mandatory" if bundle_name.to_s.empty?
39
+ directory = args.shift || bundle_name
40
+ commandparser.website.execute_task(:create_bundle, bundle_name, @type, directory)
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+ end
@@ -1,72 +1,60 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- require 'webgen/cli'
4
- require 'webgen/websitemanager'
5
-
6
- module Webgen::CLI
7
-
8
- # The CLI command for creating a webgen website.
9
- class CreateCommand < CmdParse::Command
10
-
11
- def initialize #:nodoc:
12
- super('create', false)
13
- self.description = Utils.format("If the verbosity level is set to verbose, the created files are listed.")
14
- @bundles = []
15
-
16
- self.short_desc = 'Create a basic webgen website from website bundles'
17
- self.options = CmdParse::OptionParserWrapper.new do |opts|
18
- opts.separator "Options:"
19
- opts.on('-b', '--bundle BUNDLE', String, "A website bundle name/URL or 'none'. Can be used more than once (default: [default, style-andreas07])") do |val|
20
- if val.downcase == 'none'
21
- @bundles = nil
22
- elsif !@bundles.nil?
23
- @bundles << val
3
+ require 'webgen/cli/utils'
4
+
5
+ module Webgen
6
+ module CLI
7
+
8
+ # The CLI command for creating a webgen website.
9
+ class CreateCommand < CmdParse::Command
10
+
11
+ def initialize # :nodoc:
12
+ super('create', false)
13
+ self.short_desc = 'Create a basic webgen website'
14
+ self.description = Utils.format_command_desc(<<DESC)
15
+ Creates a webgen website at the specified directory. If the --template
16
+ option is not used, a basic website is created. Otherwise the template
17
+ defines the content of website.
18
+
19
+ Hint: If the global verbosity option is enabled, the created files are
20
+ displayed.
21
+ DESC
22
+
23
+ @template = nil
24
+ self.options = CmdParse::OptionParserWrapper.new do |opts|
25
+ opts.separator "Options:"
26
+ opts.on('-t', '--template TEMPLATE', String, "A website template (optional)") do |val|
27
+ @template = val
24
28
  end
29
+ opts.separator ""
30
+ opts.separator "Arguments:"
31
+ opts.separator opts.summary_indent + "DIR: the directory in which the website should be created"
25
32
  end
26
- opts.separator ""
27
- opts.separator "Arguments:"
28
- opts.separator opts.summary_indent + "DIR: the directory in which the website should be created"
29
33
  end
30
- end
31
-
32
- def usage # :nodoc:
33
- "Usage: #{commandparser.program_name} [global options] create [options] DIR"
34
- end
35
-
36
- def show_help # :nodoc:
37
- super
38
- wm = Webgen::WebsiteManager.new(commandparser.directory)
39
34
 
40
- puts
41
- puts "Available bundles:"
42
- puts Utils.headline('Bundles')
43
- wm.bundles.sort.each {|name, entry| Utils.hash_output(name, entry.instance_eval { @table }) }
44
- end
35
+ def show_help #:nodoc:
36
+ super
37
+ templates = commandparser.website.ext.task.data(:create_website)[:templates].keys.sort
38
+ puts "Available templates:"
39
+ output = if templates.empty?
40
+ "No templates available"
41
+ else
42
+ templates.join(', ')
43
+ end
44
+ puts Utils.format(output, Utils::DEFAULT_WIDTH - 4, 4, true).join("\n")
45
+ end
45
46
 
46
- # Create a webgen website in the directory <tt>args[0]</tt>.
47
- def execute(args)
48
- if args.length == 0
49
- raise OptionParser::MissingArgument.new('DIR')
50
- else
51
- wm = Webgen::WebsiteManager.new(args[0])
52
- paths = wm.create_website
53
- begin
54
- if @bundles
55
- @bundles = ['default', 'style-andreas07'] if @bundles.empty?
56
- @bundles.each {|name| paths += wm.apply_bundle(Utils.match_bundle_name(wm, name)) }
57
- end
58
- rescue
59
- require 'fileutils'
60
- FileUtils.rm_rf(args[0])
61
- raise
62
- end
63
- if commandparser.verbosity == :verbose
64
- puts "The following files were created in the directory #{args[0]}:"
65
- puts paths.sort.join("\n")
66
- end
47
+ def execute(args) # :nodoc:
48
+ raise OptionParser::MissingArgument.new('DIR') if args.length == 0
49
+ Webgen::Website.new(args[0], Webgen::CLI::Logger.new) do |website|
50
+ website.logger.verbose = commandparser.verbose
51
+ end.execute_task(:create_website, @template)
52
+ puts "Created a new webgen website in <#{args[0]}>" + (@template ? "using the '#{template}' template" : '')
53
+ rescue Webgen::Task::CreateWebsite::Error => e
54
+ puts "An error occured while creating the website: #{e.message}"
67
55
  end
56
+
68
57
  end
69
58
 
70
59
  end
71
-
72
60
  end
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+
5
+ module Webgen
6
+ module CLI
7
+
8
+ # The CLI command for generating a webgen website.
9
+ class GenerateCommand < CmdParse::Command
10
+
11
+ def initialize # :nodoc:
12
+ super('generate', false, false, false)
13
+ self.short_desc = 'Generate the webgen website'
14
+ self.description = Webgen::CLI::Utils.format_command_desc("This command is executed by default when " +
15
+ "no other command was specified.")
16
+ end
17
+
18
+ def execute(args) # :nodoc:
19
+ commandparser.website.execute_task(:generate_website)
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,34 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+ require 'rubygems/dependency_installer'
5
+
6
+ module Webgen
7
+ module CLI
8
+
9
+ # The CLI command for installing extension bundles.
10
+ class InstallBundleCommand < CmdParse::Command
11
+
12
+ def initialize # :nodoc:
13
+ super('install', false, false, true)
14
+ self.short_desc = 'Install an extension bundle'
15
+ self.description = Utils.format_command_desc(<<DESC)
16
+ Installs an extension bundle via Rubygems. You can either provide the name
17
+ of a webgen extension bundle, the name of a Rubygem or a local file name.
18
+ DESC
19
+ end
20
+
21
+ def execute(args) # :nodoc:
22
+ raise CmdParse::InvalidArgumentError.new("Bundle name needed but none given") if args.length == 0
23
+ name = args.first
24
+ name = "webgen-#{name}-bundle" unless name =~ /\.gem$/ || name =~ /webgen-.*-bundle/
25
+
26
+ inst = Gem::DependencyInstaller.new(:domain => :both, :force => false)
27
+ inst.install(name)
28
+ puts "Installed #{name}"
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,108 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+
5
+ module Webgen
6
+ module CLI
7
+
8
+ # The CLI command for listing extension bundles.
9
+ class ListBundleCommand < CmdParse::Command
10
+
11
+ def initialize # :nodoc:
12
+ super('list', false, false, true)
13
+ self.short_desc = 'List extension bundles'
14
+ self.description = Utils.format_command_desc(<<DESC)
15
+ Lists all loaded, installed and available extension bundles.
16
+
17
+ Loaded bundles are already used by the website, installed ones are installed but
18
+ not used and available bundles can be installed if needed.
19
+
20
+ Hint: The global verbosity option enables additional output.
21
+ DESC
22
+ self.options = CmdParse::OptionParserWrapper.new do |opts|
23
+ opts.separator "Options:"
24
+ opts.on("-r", "--[no-]remote",
25
+ *Utils.format_option_desc("Use remote server for listing available bundles")) do |remote|
26
+ @remote = remote
27
+ end
28
+ end
29
+ @remote = false
30
+ end
31
+
32
+ def execute(args) # :nodoc:
33
+ bundles = {}
34
+ commandparser.website.ext.bundles.each do |bundle, info_file|
35
+ bundles.update(bundle => (info_file ? YAML.load(File.read(info_file)) : {}))
36
+ end
37
+ bundles.each {|n,d| d[:state] = :loaded}
38
+
39
+ populate_hash = lambda do |file|
40
+ bundle_name = File.basename(File.dirname(file))
41
+ info_file = File.join(File.dirname(file), 'info.yaml')
42
+ bundles[bundle_name] ||= (File.file?(info_file) ? YAML.load(File.read(info_file)) : {})
43
+ bundles[bundle_name][:state] ||= :available
44
+ bundles[bundle_name]
45
+ end
46
+
47
+ $LOAD_PATH.each do |path|
48
+ Dir.glob(File.join(path, 'webgen/bundle', '*', 'init.rb')).each do |file|
49
+ populate_hash.call(file)
50
+ end
51
+ end
52
+
53
+ Gem::Specification.map do |spec|
54
+ [spec.name, spec.matches_for_glob("webgen/bundle/*/init.rb")]
55
+ end.select do |name, files|
56
+ !files.empty?
57
+ end.each do |name, files|
58
+ files.each do |file|
59
+ hash = populate_hash.call(file)
60
+ hash[:gem] = name
61
+ end
62
+ end
63
+
64
+ if @remote
65
+ dep = Gem::Deprecate.skip_during { Gem::Dependency.new(/webgen-.*-bundle/, Gem::Requirement.default) }
66
+ Gem::SpecFetcher.fetcher.find_matching(dep).each do |spec, uri|
67
+ bundle_name = spec.first.sub(/webgen-(.*)-bundle/, '\1')
68
+ if !bundles.has_key?(bundle_name)
69
+ bundles[bundle_name] = {:state => :installable, :gem => spec.first}
70
+ end
71
+ end
72
+ end
73
+
74
+ bundles.sort do |a, b|
75
+ if a.last[:state] == b.last[:state]
76
+ a.first <=> b.first
77
+ elsif a.last[:state] == :loaded
78
+ -1
79
+ elsif b.last[:state] == :loaded
80
+ 1
81
+ elsif a.last[:state] == :available
82
+ -1
83
+ else
84
+ 1
85
+ end
86
+ end.each do |name, data|
87
+ format_bundle_info(name, data)
88
+ end
89
+ end
90
+
91
+ def format_bundle_info(name, data)
92
+ puts(Utils.light(Utils.blue(name)))
93
+ puts(" State: #{data[:state]}")
94
+ puts(" Rubygem: #{data[:gem]}") if data[:gem]
95
+ if commandparser.verbose && data['author']
96
+ puts(" Author: #{data['author']}")
97
+ print(" Summary: ")
98
+ puts(Utils.format(data['summary'], 78, 12, false))
99
+ puts(" Version: #{data['version']}") if data['version']
100
+ end
101
+ puts
102
+ end
103
+ private :format_bundle_info
104
+
105
+ end
106
+
107
+ end
108
+ end
@@ -0,0 +1,45 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/logger'
4
+ require 'webgen/cli/utils'
5
+
6
+ module Webgen
7
+
8
+ module CLI
9
+
10
+ # The logger class used by the command line interface.
11
+ class Logger < Webgen::Logger
12
+
13
+ attr_accessor :prefix
14
+
15
+ # Create a new Logger object for the command line interface.
16
+ def initialize(outdev = $stdout)
17
+ super(outdev)
18
+ @prefix = ''
19
+ outdev.sync = true if outdev.respond_to?(:sync=)
20
+ self.formatter = Proc.new do |severity, timestamp, progname, msg|
21
+ msg = msg.dup
22
+ msg.gsub!(/<.*?>/) {|m| Utils.bold(m)}
23
+ msg.gsub!(/\n/, "\n ")
24
+ case severity
25
+ when 'INFO'
26
+ msg.sub!(/^\s*\[(?:create|update)\]/) {|m| Utils.bold(Utils.green(m))}
27
+ "%s%-5s %s\n" % [@prefix, severity, msg]
28
+ when 'WARN'
29
+ "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.yellow, severity, Utils.reset, msg]
30
+ when 'ERROR', 'FATAL'
31
+ "%s%s%-5s%s %s\n" % [@prefix, Utils.bold + Utils.red, severity, Utils.reset, msg]
32
+ when 'DEBUG'
33
+ "%s%-5s%s %s\n" % [@prefix, severity, progname ? " (#{progname})" : '', msg]
34
+ else
35
+ raise ArgumentError, 'Unsupported logger severity level'
36
+ end
37
+ end
38
+ self.level = ::Logger::INFO
39
+ end
40
+
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'webgen/cli/utils'
4
+ require 'webgen/cli/show_extensions_command'
5
+ require 'webgen/cli/show_config_command'
6
+ require 'webgen/cli/show_dependencies_command'
7
+
8
+ module Webgen
9
+ module CLI
10
+
11
+ # The CLI command for showing various information about webgen itself or a webgen website.
12
+ class ShowCommand < CmdParse::Command
13
+
14
+ def initialize # :nodoc:
15
+ super('show', true, true, false)
16
+ self.short_desc = 'Show various information about webgen or a website'
17
+ self.description = Webgen::CLI::Utils.format_command_desc(<<DESC)
18
+ Groups various commands together that are used for showing information about webgen,
19
+ like available extensions or configuration options. If a sub-command is invoked in the
20
+ context of a webgen website, information about the website is also included.
21
+ DESC
22
+ add_command(ShowConfigCommand.new)
23
+ add_command(ShowExtensionsCommand.new)
24
+ add_command(ShowDependenciesCommand.new)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end