webgen 0.3.8 → 0.4.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 (618) hide show
  1. data/ChangeLog +2565 -14
  2. data/README +4 -6
  3. data/Rakefile +207 -89
  4. data/TODO +175 -17
  5. data/VERSION +1 -1
  6. data/bin/webgen +1 -2
  7. data/data/webgen/gallery-creator/default.png +0 -0
  8. data/data/webgen/gallery_styles/default/README +6 -0
  9. data/data/webgen/gallery_styles/default/gallery_gallery.template +38 -0
  10. data/data/webgen/gallery_styles/default/gallery_image.template +30 -0
  11. data/data/webgen/gallery_styles/default/gallery_main.template +18 -0
  12. data/data/webgen/gallery_styles/slides/README +18 -0
  13. data/data/webgen/gallery_styles/slides/collage.rb +334 -0
  14. data/data/webgen/gallery_styles/slides/gallery_gallery.template +62 -0
  15. data/data/webgen/gallery_styles/slides/gallery_image.template +53 -0
  16. data/data/webgen/gallery_styles/slides/gallery_main.template +32 -0
  17. data/data/webgen/resources/images/generated_by_webgen.png +0 -0
  18. data/data/webgen/resources/images/webgen_logo.png +0 -0
  19. data/data/webgen/website_styles/1024px/README +10 -0
  20. data/data/webgen/website_styles/1024px/default.css +188 -0
  21. data/data/webgen/website_styles/1024px/default.template +62 -0
  22. data/data/webgen/website_styles/1024px/images/background.gif +0 -0
  23. data/data/webgen/website_styles/andreas00/README +10 -0
  24. data/data/webgen/website_styles/andreas00/default.css +290 -0
  25. data/data/webgen/website_styles/andreas00/default.template +62 -0
  26. data/data/webgen/website_styles/andreas00/images/bg.gif +0 -0
  27. data/data/webgen/website_styles/andreas00/images/front.jpg +0 -0
  28. data/data/webgen/website_styles/andreas00/images/menubg.gif +0 -0
  29. data/data/webgen/website_styles/andreas00/images/menubg2.gif +0 -0
  30. data/data/webgen/website_styles/andreas01/README +11 -0
  31. data/data/webgen/website_styles/andreas01/default.css +310 -0
  32. data/data/webgen/website_styles/andreas01/default.template +63 -0
  33. data/data/webgen/website_styles/andreas01/images/bg.gif +0 -0
  34. data/data/webgen/website_styles/andreas01/images/front.jpg +0 -0
  35. data/data/webgen/website_styles/andreas01/print.css +35 -0
  36. data/data/webgen/website_styles/andreas03/README +11 -0
  37. data/data/webgen/website_styles/andreas03/default.css +223 -0
  38. data/data/webgen/website_styles/andreas03/default.template +60 -0
  39. data/data/webgen/website_styles/andreas03/images/bodybg.png +0 -0
  40. data/data/webgen/website_styles/andreas03/images/contbg.png +0 -0
  41. data/data/webgen/website_styles/andreas03/images/footerbg.png +0 -0
  42. data/data/webgen/website_styles/andreas03/images/gradient1.png +0 -0
  43. data/data/webgen/website_styles/andreas03/images/gradient2.png +0 -0
  44. data/data/webgen/website_styles/andreas04/README +12 -0
  45. data/data/webgen/website_styles/andreas04/default.css +290 -0
  46. data/data/webgen/website_styles/andreas04/default.template +83 -0
  47. data/data/webgen/website_styles/andreas04/images/blinkarrow.gif +0 -0
  48. data/data/webgen/website_styles/andreas04/images/bodybg.png +0 -0
  49. data/data/webgen/website_styles/andreas04/images/contentbg.png +0 -0
  50. data/data/webgen/website_styles/andreas04/images/entrybg.png +0 -0
  51. data/data/webgen/website_styles/andreas04/images/flash.gif +0 -0
  52. data/data/webgen/website_styles/andreas04/images/flash2.gif +0 -0
  53. data/data/webgen/website_styles/andreas04/images/globe.gif +0 -0
  54. data/data/webgen/website_styles/andreas04/images/globebottom.gif +0 -0
  55. data/data/webgen/website_styles/andreas04/images/linkarrow.gif +0 -0
  56. data/data/webgen/website_styles/andreas04/images/menuhover.png +0 -0
  57. data/data/webgen/website_styles/andreas05/README +11 -0
  58. data/data/webgen/website_styles/andreas05/default.css +33 -0
  59. data/data/webgen/website_styles/andreas05/default.template +42 -0
  60. data/data/webgen/website_styles/andreas05/images/bodybg.gif +0 -0
  61. data/data/webgen/website_styles/andreas05/images/front.png +0 -0
  62. data/data/webgen/website_styles/andreas06/README +11 -0
  63. data/data/webgen/website_styles/andreas06/default.css +353 -0
  64. data/data/webgen/website_styles/andreas06/default.template +72 -0
  65. data/data/webgen/website_styles/andreas06/images/bodybg.gif +0 -0
  66. data/data/webgen/website_styles/andreas06/images/boxbg.gif +0 -0
  67. data/data/webgen/website_styles/andreas06/images/greypx.gif +0 -0
  68. data/data/webgen/website_styles/andreas06/images/header.jpg +0 -0
  69. data/data/webgen/website_styles/andreas06/images/innerbg.gif +0 -0
  70. data/data/webgen/website_styles/andreas06/images/leaves.jpg +0 -0
  71. data/data/webgen/website_styles/andreas06/images/tabs.gif +0 -0
  72. data/data/webgen/website_styles/andreas07/README +12 -0
  73. data/data/webgen/website_styles/andreas07/browserfix.css +7 -0
  74. data/data/webgen/website_styles/andreas07/default.css +92 -0
  75. data/data/webgen/website_styles/andreas07/default.template +44 -0
  76. data/data/webgen/website_styles/andreas07/images/bodybg.gif +0 -0
  77. data/data/webgen/website_styles/andreas07/images/sidebarbg.gif +0 -0
  78. data/data/webgen/website_styles/andreas08/README +11 -0
  79. data/data/webgen/website_styles/andreas08/default.css +224 -0
  80. data/data/webgen/website_styles/andreas08/default.template +53 -0
  81. data/data/webgen/website_styles/andreas09/README +11 -0
  82. data/data/webgen/website_styles/andreas09/default.css +308 -0
  83. data/data/webgen/website_styles/andreas09/default.template +70 -0
  84. data/data/webgen/website_styles/andreas09/images/bodybg-black.jpg +0 -0
  85. data/data/webgen/website_styles/andreas09/images/bodybg-green.jpg +0 -0
  86. data/data/webgen/website_styles/andreas09/images/bodybg-orange.jpg +0 -0
  87. data/data/webgen/website_styles/andreas09/images/bodybg-purple.jpg +0 -0
  88. data/data/webgen/website_styles/andreas09/images/bodybg-red.jpg +0 -0
  89. data/data/webgen/website_styles/andreas09/images/bodybg.jpg +0 -0
  90. data/data/webgen/website_styles/andreas09/images/footerbg.jpg +0 -0
  91. data/data/webgen/website_styles/andreas09/images/menuhover-black.jpg +0 -0
  92. data/data/webgen/website_styles/andreas09/images/menuhover-green.jpg +0 -0
  93. data/data/webgen/website_styles/andreas09/images/menuhover-orange.jpg +0 -0
  94. data/data/webgen/website_styles/andreas09/images/menuhover-purple.jpg +0 -0
  95. data/data/webgen/website_styles/andreas09/images/menuhover-red.jpg +0 -0
  96. data/data/webgen/website_styles/andreas09/images/menuhover.jpg +0 -0
  97. data/data/webgen/website_styles/default/README +6 -0
  98. data/data/webgen/website_styles/default/default.css +1 -1
  99. data/data/webgen/website_styles/default/default.template +9 -3
  100. data/data/webgen/website_styles/plain/README +12 -0
  101. data/data/webgen/website_styles/plain/default.css +244 -0
  102. data/data/webgen/website_styles/plain/default.template +63 -0
  103. data/data/webgen/website_styles/plain/images/a_hover.jpg +0 -0
  104. data/data/webgen/website_styles/plain/images/desc.jpg +0 -0
  105. data/data/webgen/website_styles/plain/images/li.gif +0 -0
  106. data/data/webgen/website_styles/plain/images/mainbar.jpg +0 -0
  107. data/data/webgen/website_styles/plain/images/menu.jpg +0 -0
  108. data/data/webgen/website_styles/plain/images/submenua.gif +0 -0
  109. data/data/webgen/website_styles/plain/images/submenua_hover.jpg +0 -0
  110. data/data/webgen/website_templates/default/README +7 -5
  111. data/data/webgen/website_templates/personal_hp/README +7 -5
  112. data/data/webgen/website_templates/project/README +8 -6
  113. data/doc/config.yaml +2 -2
  114. data/doc/examples/website_styles/1024px/README +9 -0
  115. data/doc/examples/website_styles/1024px/config.yaml +2 -0
  116. data/doc/examples/website_styles/1024px/src/about.page +12 -0
  117. data/doc/examples/website_styles/1024px/src/default.css +188 -0
  118. data/doc/examples/website_styles/1024px/src/default.template +62 -0
  119. data/doc/examples/website_styles/1024px/src/download.page +15 -0
  120. data/doc/examples/website_styles/1024px/src/features.page +8 -0
  121. data/doc/examples/website_styles/1024px/src/images/background.gif +0 -0
  122. data/doc/examples/website_styles/1024px/src/index.page +9 -0
  123. data/doc/examples/website_styles/1024px/src/screenshots.page +18 -0
  124. data/doc/examples/website_styles/andreas00/README +9 -0
  125. data/doc/examples/website_styles/andreas00/config.yaml +2 -0
  126. data/doc/examples/website_styles/andreas00/src/about.page +12 -0
  127. data/doc/examples/website_styles/andreas00/src/default.css +290 -0
  128. data/doc/examples/website_styles/andreas00/src/default.template +62 -0
  129. data/doc/examples/website_styles/andreas00/src/download.page +15 -0
  130. data/doc/examples/website_styles/andreas00/src/features.page +8 -0
  131. data/doc/examples/website_styles/andreas00/src/images/bg.gif +0 -0
  132. data/doc/examples/website_styles/andreas00/src/images/front.jpg +0 -0
  133. data/doc/examples/website_styles/andreas00/src/images/menubg.gif +0 -0
  134. data/doc/examples/website_styles/andreas00/src/images/menubg2.gif +0 -0
  135. data/doc/examples/website_styles/andreas00/src/index.page +9 -0
  136. data/doc/examples/website_styles/andreas00/src/screenshots.page +18 -0
  137. data/doc/examples/website_styles/andreas01/README +9 -0
  138. data/doc/examples/website_styles/andreas01/config.yaml +2 -0
  139. data/doc/examples/website_styles/andreas01/src/about.page +12 -0
  140. data/doc/examples/website_styles/andreas01/src/default.css +310 -0
  141. data/doc/examples/website_styles/andreas01/src/default.template +63 -0
  142. data/doc/examples/website_styles/andreas01/src/download.page +15 -0
  143. data/doc/examples/website_styles/andreas01/src/features.page +8 -0
  144. data/doc/examples/website_styles/andreas01/src/images/bg.gif +0 -0
  145. data/doc/examples/website_styles/andreas01/src/images/front.jpg +0 -0
  146. data/doc/examples/website_styles/andreas01/src/index.page +9 -0
  147. data/doc/examples/website_styles/andreas01/src/print.css +35 -0
  148. data/doc/examples/website_styles/andreas01/src/screenshots.page +18 -0
  149. data/doc/examples/website_styles/andreas03/README +9 -0
  150. data/doc/examples/website_styles/andreas03/config.yaml +2 -0
  151. data/doc/examples/website_styles/andreas03/src/about.page +12 -0
  152. data/doc/examples/website_styles/andreas03/src/default.css +223 -0
  153. data/doc/examples/website_styles/andreas03/src/default.template +60 -0
  154. data/doc/examples/website_styles/andreas03/src/download.page +15 -0
  155. data/doc/examples/website_styles/andreas03/src/features.page +8 -0
  156. data/doc/examples/website_styles/andreas03/src/images/bodybg.png +0 -0
  157. data/doc/examples/website_styles/andreas03/src/images/contbg.png +0 -0
  158. data/doc/examples/website_styles/andreas03/src/images/footerbg.png +0 -0
  159. data/doc/examples/website_styles/andreas03/src/images/gradient1.png +0 -0
  160. data/doc/examples/website_styles/andreas03/src/images/gradient2.png +0 -0
  161. data/doc/examples/website_styles/andreas03/src/index.page +9 -0
  162. data/doc/examples/website_styles/andreas03/src/screenshots.page +18 -0
  163. data/doc/examples/website_styles/andreas04/README +9 -0
  164. data/doc/examples/website_styles/andreas04/config.yaml +2 -0
  165. data/doc/examples/website_styles/andreas04/src/about.page +12 -0
  166. data/doc/examples/website_styles/andreas04/src/default.css +290 -0
  167. data/doc/examples/website_styles/andreas04/src/default.template +83 -0
  168. data/doc/examples/website_styles/andreas04/src/download.page +15 -0
  169. data/doc/examples/website_styles/andreas04/src/features.page +8 -0
  170. data/doc/examples/website_styles/andreas04/src/images/blinkarrow.gif +0 -0
  171. data/doc/examples/website_styles/andreas04/src/images/bodybg.png +0 -0
  172. data/doc/examples/website_styles/andreas04/src/images/contentbg.png +0 -0
  173. data/doc/examples/website_styles/andreas04/src/images/entrybg.png +0 -0
  174. data/doc/examples/website_styles/andreas04/src/images/flash.gif +0 -0
  175. data/doc/examples/website_styles/andreas04/src/images/flash2.gif +0 -0
  176. data/doc/examples/website_styles/andreas04/src/images/globe.gif +0 -0
  177. data/doc/examples/website_styles/andreas04/src/images/globebottom.gif +0 -0
  178. data/doc/examples/website_styles/andreas04/src/images/linkarrow.gif +0 -0
  179. data/doc/examples/website_styles/andreas04/src/images/menuhover.png +0 -0
  180. data/doc/examples/website_styles/andreas04/src/index.page +9 -0
  181. data/doc/examples/website_styles/andreas04/src/screenshots.page +18 -0
  182. data/doc/examples/website_styles/andreas05/README +9 -0
  183. data/doc/examples/website_styles/andreas05/config.yaml +2 -0
  184. data/doc/examples/website_styles/andreas05/src/about.page +12 -0
  185. data/doc/examples/website_styles/andreas05/src/default.css +33 -0
  186. data/doc/examples/website_styles/andreas05/src/default.template +42 -0
  187. data/doc/examples/website_styles/andreas05/src/download.page +15 -0
  188. data/doc/examples/website_styles/andreas05/src/features.page +8 -0
  189. data/doc/examples/website_styles/andreas05/src/images/bodybg.gif +0 -0
  190. data/doc/examples/website_styles/andreas05/src/images/front.png +0 -0
  191. data/doc/examples/website_styles/andreas05/src/index.page +9 -0
  192. data/doc/examples/website_styles/andreas05/src/screenshots.page +18 -0
  193. data/doc/examples/website_styles/andreas06/README +9 -0
  194. data/doc/examples/website_styles/andreas06/config.yaml +2 -0
  195. data/doc/examples/website_styles/andreas06/src/about.page +12 -0
  196. data/doc/examples/website_styles/andreas06/src/default.css +353 -0
  197. data/doc/examples/website_styles/andreas06/src/default.template +72 -0
  198. data/doc/examples/website_styles/andreas06/src/download.page +15 -0
  199. data/doc/examples/website_styles/andreas06/src/features.page +8 -0
  200. data/doc/examples/website_styles/andreas06/src/images/bodybg.gif +0 -0
  201. data/doc/examples/website_styles/andreas06/src/images/boxbg.gif +0 -0
  202. data/doc/examples/website_styles/andreas06/src/images/greypx.gif +0 -0
  203. data/doc/examples/website_styles/andreas06/src/images/header.jpg +0 -0
  204. data/doc/examples/website_styles/andreas06/src/images/innerbg.gif +0 -0
  205. data/doc/examples/website_styles/andreas06/src/images/leaves.jpg +0 -0
  206. data/doc/examples/website_styles/andreas06/src/images/tabs.gif +0 -0
  207. data/doc/examples/website_styles/andreas06/src/index.page +9 -0
  208. data/doc/examples/website_styles/andreas06/src/screenshots.page +18 -0
  209. data/doc/examples/website_styles/andreas07/README +9 -0
  210. data/doc/examples/website_styles/andreas07/config.yaml +2 -0
  211. data/doc/examples/website_styles/andreas07/src/about.page +12 -0
  212. data/doc/examples/website_styles/andreas07/src/browserfix.css +7 -0
  213. data/doc/examples/website_styles/andreas07/src/default.css +92 -0
  214. data/doc/examples/website_styles/andreas07/src/default.template +44 -0
  215. data/doc/examples/website_styles/andreas07/src/download.page +15 -0
  216. data/doc/examples/website_styles/andreas07/src/features.page +8 -0
  217. data/doc/examples/website_styles/andreas07/src/images/bodybg.gif +0 -0
  218. data/doc/examples/website_styles/andreas07/src/images/sidebarbg.gif +0 -0
  219. data/doc/examples/website_styles/andreas07/src/index.page +9 -0
  220. data/doc/examples/website_styles/andreas07/src/screenshots.page +18 -0
  221. data/doc/examples/website_styles/andreas08/README +9 -0
  222. data/doc/examples/website_styles/andreas08/config.yaml +2 -0
  223. data/doc/examples/website_styles/andreas08/src/about.page +12 -0
  224. data/doc/examples/website_styles/andreas08/src/default.css +224 -0
  225. data/doc/examples/website_styles/andreas08/src/default.template +53 -0
  226. data/doc/examples/website_styles/andreas08/src/download.page +15 -0
  227. data/doc/examples/website_styles/andreas08/src/features.page +8 -0
  228. data/doc/examples/website_styles/andreas08/src/index.page +9 -0
  229. data/doc/examples/website_styles/andreas08/src/screenshots.page +18 -0
  230. data/doc/examples/website_styles/andreas09/README +9 -0
  231. data/doc/examples/website_styles/andreas09/config.yaml +2 -0
  232. data/doc/examples/website_styles/andreas09/src/about.page +12 -0
  233. data/doc/examples/website_styles/andreas09/src/default.css +308 -0
  234. data/doc/examples/website_styles/andreas09/src/default.template +70 -0
  235. data/doc/examples/website_styles/andreas09/src/download.page +15 -0
  236. data/doc/examples/website_styles/andreas09/src/features.page +8 -0
  237. data/doc/examples/website_styles/andreas09/src/images/bodybg-black.jpg +0 -0
  238. data/doc/examples/website_styles/andreas09/src/images/bodybg-green.jpg +0 -0
  239. data/doc/examples/website_styles/andreas09/src/images/bodybg-orange.jpg +0 -0
  240. data/doc/examples/website_styles/andreas09/src/images/bodybg-purple.jpg +0 -0
  241. data/doc/examples/website_styles/andreas09/src/images/bodybg-red.jpg +0 -0
  242. data/doc/examples/website_styles/andreas09/src/images/bodybg.jpg +0 -0
  243. data/doc/examples/website_styles/andreas09/src/images/footerbg.jpg +0 -0
  244. data/doc/examples/website_styles/andreas09/src/images/menuhover-black.jpg +0 -0
  245. data/doc/examples/website_styles/andreas09/src/images/menuhover-green.jpg +0 -0
  246. data/doc/examples/website_styles/andreas09/src/images/menuhover-orange.jpg +0 -0
  247. data/doc/examples/website_styles/andreas09/src/images/menuhover-purple.jpg +0 -0
  248. data/doc/examples/website_styles/andreas09/src/images/menuhover-red.jpg +0 -0
  249. data/doc/examples/website_styles/andreas09/src/images/menuhover.jpg +0 -0
  250. data/doc/examples/website_styles/andreas09/src/index.page +9 -0
  251. data/doc/examples/website_styles/andreas09/src/screenshots.page +18 -0
  252. data/doc/examples/website_styles/default/README +9 -0
  253. data/doc/examples/website_styles/default/config.yaml +2 -0
  254. data/doc/examples/website_styles/default/src/about.page +12 -0
  255. data/doc/examples/website_styles/default/src/default.css +84 -0
  256. data/doc/examples/website_styles/default/src/default.template +38 -0
  257. data/doc/examples/website_styles/default/src/download.page +15 -0
  258. data/doc/examples/website_styles/default/src/features.page +8 -0
  259. data/doc/examples/website_styles/default/src/index.page +9 -0
  260. data/doc/examples/website_styles/default/src/screenshots.page +18 -0
  261. data/doc/examples/website_styles/plain/README +9 -0
  262. data/doc/examples/website_styles/plain/config.yaml +2 -0
  263. data/doc/examples/website_styles/plain/src/about.page +12 -0
  264. data/doc/examples/website_styles/plain/src/default.css +244 -0
  265. data/doc/examples/website_styles/plain/src/default.template +63 -0
  266. data/doc/examples/website_styles/plain/src/download.page +15 -0
  267. data/doc/examples/website_styles/plain/src/features.page +8 -0
  268. data/doc/examples/website_styles/plain/src/images/a_hover.jpg +0 -0
  269. data/doc/examples/website_styles/plain/src/images/desc.jpg +0 -0
  270. data/doc/examples/website_styles/plain/src/images/li.gif +0 -0
  271. data/doc/examples/website_styles/plain/src/images/mainbar.jpg +0 -0
  272. data/doc/examples/website_styles/plain/src/images/menu.jpg +0 -0
  273. data/doc/examples/website_styles/plain/src/images/submenua.gif +0 -0
  274. data/doc/examples/website_styles/plain/src/images/submenua_hover.jpg +0 -0
  275. data/doc/examples/website_styles/plain/src/index.page +9 -0
  276. data/doc/examples/website_styles/plain/src/screenshots.page +18 -0
  277. data/doc/examples/website_templates/default/README +8 -0
  278. data/doc/examples/website_templates/default/config.yaml +2 -0
  279. data/doc/examples/website_templates/default/src/default.css +84 -0
  280. data/doc/examples/website_templates/default/src/default.template +38 -0
  281. data/doc/examples/website_templates/default/src/index.page +8 -0
  282. data/doc/examples/website_templates/personal_hp/README +8 -0
  283. data/doc/examples/website_templates/personal_hp/config.yaml +2 -0
  284. data/doc/examples/website_templates/personal_hp/src/about.page +12 -0
  285. data/doc/examples/website_templates/personal_hp/src/default.css +84 -0
  286. data/doc/examples/website_templates/personal_hp/src/default.template +38 -0
  287. data/doc/examples/website_templates/personal_hp/src/index.page +9 -0
  288. data/doc/examples/website_templates/personal_hp/src/links.page +22 -0
  289. data/doc/examples/website_templates/personal_hp/src/projects.page +20 -0
  290. data/doc/examples/website_templates/project/README +9 -0
  291. data/doc/examples/website_templates/project/config.yaml +2 -0
  292. data/doc/examples/website_templates/project/src/about.page +12 -0
  293. data/doc/examples/website_templates/project/src/default.css +84 -0
  294. data/doc/examples/website_templates/project/src/default.template +38 -0
  295. data/doc/examples/website_templates/project/src/download.page +15 -0
  296. data/doc/examples/website_templates/project/src/features.page +8 -0
  297. data/doc/examples/website_templates/project/src/index.page +9 -0
  298. data/doc/examples/website_templates/project/src/screenshots.page +18 -0
  299. data/doc/metainfo.yaml +85 -0
  300. data/doc/plugin/emoticon.rb +19 -21
  301. data/doc/plugin/extension.rb +134 -55
  302. data/doc/plugin/gallery/slides/collage.rb +334 -0
  303. data/doc/plugin/listpluginparameters.rb +24 -26
  304. data/doc/plugin/resources.rb +20 -22
  305. data/doc/src/default.css +333 -154
  306. data/doc/src/default.template +92 -39
  307. data/doc/src/documentation/extending_webgen.page +1 -2
  308. data/doc/src/documentation/gettingstarted.page +161 -44
  309. data/doc/src/documentation/index.page +15 -28
  310. data/doc/src/documentation/plugins/contentconverter/default.page +15 -0
  311. data/doc/src/documentation/plugins/contentconverter/html.page +10 -0
  312. data/doc/src/documentation/plugins/contentconverter/markdown.page +21 -0
  313. data/doc/src/documentation/plugins/contentconverter/rdoc.page +11 -0
  314. data/doc/src/documentation/plugins/contentconverter/textile.page +21 -0
  315. data/doc/src/documentation/plugins/contentconverter/xmlbuilder.page +61 -0
  316. data/doc/src/documentation/plugins/core/configuration.page +11 -0
  317. data/doc/src/documentation/plugins/core/filehandler.page +214 -0
  318. data/doc/src/documentation/plugins/core/index.page +11 -0
  319. data/doc/src/documentation/plugins/core/resourcemanager.page +46 -0
  320. data/doc/src/documentation/plugins/core/tagprocessor.page +17 -0
  321. data/doc/src/documentation/plugins/file/copyhandler.page +26 -0
  322. data/doc/src/documentation/plugins/file/defaulthandler.page +15 -0
  323. data/doc/src/documentation/plugins/file/directoryhandler.page +37 -0
  324. data/doc/src/documentation/plugins/file/galleryhandler.page +181 -0
  325. data/doc/src/documentation/plugins/file/pagehandler.page +154 -0
  326. data/doc/src/documentation/plugins/file/templatehandler.page +34 -0
  327. data/doc/src/documentation/plugins/file/thumbnailwriter.page +39 -0
  328. data/doc/src/documentation/plugins/htmlvalidator/default.page +12 -0
  329. data/doc/src/documentation/plugins/htmlvalidator/xmllint.page +12 -0
  330. data/doc/src/documentation/plugins/index.page +32 -11
  331. data/doc/src/documentation/plugins/menustyle/default.page +19 -0
  332. data/doc/src/documentation/plugins/menustyle/horizontal.page +32 -0
  333. data/doc/src/documentation/plugins/{menustyles → menustyle}/horizontaldropdown.page +25 -19
  334. data/doc/src/documentation/plugins/menustyle/section.page +34 -0
  335. data/doc/src/documentation/plugins/menustyle/vertical.page +48 -0
  336. data/doc/src/documentation/plugins/menustyle/verticaldropdown.page +29 -0
  337. data/doc/src/documentation/plugins/misc/index.page +9 -0
  338. data/doc/src/documentation/plugins/{miscplugins → misc}/smileyreplacer.page +15 -14
  339. data/doc/src/documentation/plugins/misc/syntaxhighlighter.page +26 -0
  340. data/doc/src/documentation/plugins/tag/block.page +29 -0
  341. data/doc/src/documentation/plugins/tag/breadcrumbtrail.page +29 -0
  342. data/doc/src/documentation/plugins/tag/date.page +34 -0
  343. data/doc/src/documentation/plugins/tag/default.page +27 -0
  344. data/doc/src/documentation/plugins/tag/download.page +60 -0
  345. data/doc/src/documentation/plugins/tag/executecommand.page +29 -0
  346. data/doc/src/documentation/plugins/tag/includefile.page +30 -0
  347. data/doc/src/documentation/plugins/{tags → tag}/langbar.de.page +1 -1
  348. data/doc/src/documentation/plugins/tag/langbar.fr.page +6 -0
  349. data/doc/src/documentation/plugins/tag/langbar.page +41 -0
  350. data/doc/src/documentation/plugins/tag/menu.page +78 -0
  351. data/doc/src/documentation/plugins/{tags → tag}/meta.page +8 -7
  352. data/doc/src/documentation/plugins/tag/relocatable.page +46 -0
  353. data/doc/src/documentation/plugins/tag/resource.page +35 -0
  354. data/doc/src/documentation/plugins/tag/sitemap.page +35 -0
  355. data/doc/src/documentation/plugins/tag/wikilink.page +33 -0
  356. data/doc/src/documentation/references/index.page +0 -1
  357. data/doc/src/documentation/references/meta_info_reference.page +90 -13
  358. data/doc/src/documentation/references/parameter_reference.page +0 -1
  359. data/doc/src/documentation/references/webpage_format.page +249 -0
  360. data/doc/src/download.page +50 -21
  361. data/doc/src/examples/gallery_styles/default/default.gallery +78 -0
  362. data/doc/src/examples/gallery_styles/default/gallery_gallery.template +38 -0
  363. data/doc/src/examples/gallery_styles/default/gallery_image.template +30 -0
  364. data/doc/src/examples/gallery_styles/default/gallery_main.template +18 -0
  365. data/doc/src/examples/gallery_styles/index.page +22 -0
  366. data/doc/src/examples/gallery_styles/slides/gallery_gallery.template +62 -0
  367. data/doc/src/examples/gallery_styles/slides/gallery_image.template +53 -0
  368. data/doc/src/examples/gallery_styles/slides/gallery_main.template +32 -0
  369. data/doc/src/examples/gallery_styles/slides/slides.gallery +79 -0
  370. data/doc/src/examples/images/image01.jpg +0 -0
  371. data/doc/src/examples/images/image02.jpg +0 -0
  372. data/doc/src/examples/images/image03.jpg +0 -0
  373. data/doc/src/examples/images/image04.jpg +0 -0
  374. data/doc/src/examples/images/image05.jpg +0 -0
  375. data/doc/src/examples/images/image06.jpg +0 -0
  376. data/doc/src/examples/images/image07.jpg +0 -0
  377. data/doc/src/examples/images/image08.jpg +0 -0
  378. data/doc/src/examples/images/image09.jpg +0 -0
  379. data/doc/src/examples/images/image10.jpg +0 -0
  380. data/doc/src/examples/images/image11.jpg +0 -0
  381. data/doc/src/examples/images/image12.jpg +0 -0
  382. data/doc/src/examples/images/image13.jpg +0 -0
  383. data/doc/src/examples/images/image14.jpg +0 -0
  384. data/doc/src/examples/images/image15.jpg +0 -0
  385. data/doc/src/examples/images/image16.jpg +0 -0
  386. data/doc/src/examples/images/image17.jpg +0 -0
  387. data/doc/src/examples/images/image18.jpg +0 -0
  388. data/doc/src/examples/index.page +18 -0
  389. data/doc/src/examples/website_styles/1024px.page +5 -0
  390. data/doc/src/examples/website_styles/andreas00.page +5 -0
  391. data/doc/src/examples/website_styles/andreas01.page +5 -0
  392. data/doc/src/examples/website_styles/andreas03.page +5 -0
  393. data/doc/src/examples/website_styles/andreas04.page +5 -0
  394. data/doc/src/examples/website_styles/andreas05.page +5 -0
  395. data/doc/src/examples/website_styles/andreas06.page +5 -0
  396. data/doc/src/examples/website_styles/andreas07.page +5 -0
  397. data/doc/src/examples/website_styles/andreas08.page +5 -0
  398. data/doc/src/examples/website_styles/andreas09.page +5 -0
  399. data/doc/src/examples/website_styles/default.page +5 -0
  400. data/doc/src/examples/website_styles/index.page +71 -0
  401. data/doc/src/examples/website_styles/plain.page +5 -0
  402. data/doc/src/examples/website_templates/default.page +5 -0
  403. data/doc/src/examples/website_templates/index.page +24 -0
  404. data/doc/src/examples/website_templates/personal_hp.page +5 -0
  405. data/doc/src/examples/website_templates/project.page +5 -0
  406. data/doc/src/features.page +16 -14
  407. data/doc/src/images/bodybg.jpg +0 -0
  408. data/doc/src/images/footerbg.jpg +0 -0
  409. data/doc/src/images/menuhover.jpg +0 -0
  410. data/doc/src/images/node_diagram.svg +7132 -0
  411. data/doc/src/images/thumb_example.jpg +0 -0
  412. data/doc/src/images/thumb_example_cropped.jpg +0 -0
  413. data/doc/src/images/thumb_example_normal.jpg +0 -0
  414. data/doc/src/index.page +14 -102
  415. data/doc/src/news.page +154 -0
  416. data/doc/src/plugin.template +10 -0
  417. data/lib/webgen/cli.rb +427 -0
  418. data/lib/webgen/composite.rb +11 -11
  419. data/lib/webgen/config.rb +52 -0
  420. data/lib/webgen/content.rb +172 -0
  421. data/lib/webgen/extcommand.rb +23 -0
  422. data/lib/webgen/languages.rb +110 -0
  423. data/lib/webgen/listener.rb +1 -1
  424. data/lib/webgen/node.rb +196 -124
  425. data/lib/webgen/plugin.rb +480 -144
  426. data/lib/webgen/plugins/{contenthandlers → contentconverters}/default.rb +10 -9
  427. data/lib/webgen/plugins/{contenthandlers → contentconverters}/html.rb +11 -8
  428. data/lib/webgen/plugins/contentconverters/markdown.rb +54 -0
  429. data/lib/webgen/plugins/{contenthandlers → contentconverters}/rdoc.rb +16 -12
  430. data/lib/webgen/plugins/{contenthandlers → contentconverters}/textile.rb +18 -13
  431. data/lib/webgen/plugins/contentconverters/xmlbuilder.rb +58 -0
  432. data/lib/webgen/plugins/coreplugins/configuration.rb +11 -102
  433. data/lib/webgen/plugins/coreplugins/resourcemanager.rb +95 -74
  434. data/lib/webgen/plugins/filehandlers/copy.rb +41 -19
  435. data/lib/webgen/plugins/filehandlers/directory.rb +52 -50
  436. data/lib/webgen/plugins/filehandlers/filehandler.rb +370 -123
  437. data/lib/webgen/plugins/filehandlers/gallery.rb +368 -117
  438. data/lib/webgen/plugins/filehandlers/page.rb +160 -146
  439. data/lib/webgen/plugins/filehandlers/template.rb +65 -52
  440. data/lib/webgen/plugins/htmlvalidators/default.rb +9 -7
  441. data/lib/webgen/plugins/htmlvalidators/xmllint.rb +17 -33
  442. data/lib/webgen/plugins/menustyles/default.rb +27 -25
  443. data/lib/webgen/plugins/menustyles/horizontal.rb +22 -41
  444. data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +25 -39
  445. data/lib/webgen/plugins/menustyles/section.rb +68 -0
  446. data/lib/webgen/plugins/menustyles/vertical.rb +36 -56
  447. data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +24 -32
  448. data/lib/webgen/plugins/miscplugins/smileyreplacer.rb +20 -17
  449. data/lib/webgen/plugins/miscplugins/syntax_highlighter.rb +72 -0
  450. data/lib/webgen/plugins/miscplugins/treewalker.rb +9 -36
  451. data/lib/webgen/plugins/tags/block.rb +65 -0
  452. data/lib/webgen/plugins/tags/breadcrumbtrail.rb +15 -11
  453. data/lib/webgen/plugins/tags/date.rb +11 -7
  454. data/lib/webgen/plugins/tags/download.rb +38 -38
  455. data/lib/webgen/plugins/tags/executecommand.rb +30 -15
  456. data/lib/webgen/plugins/tags/includefile.rb +26 -13
  457. data/lib/webgen/plugins/tags/langbar.rb +23 -18
  458. data/lib/webgen/plugins/tags/menu.rb +49 -70
  459. data/lib/webgen/plugins/tags/meta.rb +12 -9
  460. data/lib/webgen/plugins/tags/relocatable.rb +41 -13
  461. data/lib/webgen/plugins/tags/sitemap.rb +32 -28
  462. data/lib/webgen/plugins/tags/tag_processor.rb +279 -0
  463. data/lib/webgen/plugins/tags/wikilink.rb +25 -20
  464. data/lib/webgen/test.rb +202 -0
  465. data/lib/webgen/website.rb +310 -0
  466. data/test/fixtures/sample_site/src/chained.template +3 -0
  467. data/test/fixtures/sample_site/src/default.template +3 -0
  468. data/test/fixtures/sample_site/src/dir1/dir11/file111.de.page +3 -0
  469. data/test/fixtures/sample_site/src/dir1/dir11/file111.page +3 -0
  470. data/test/fixtures/sample_site/src/dir1/dir11/index.page +3 -0
  471. data/test/fixtures/sample_site/src/dir1/file11.page +3 -0
  472. data/test/fixtures/sample_site/src/dir2/file21.page +3 -0
  473. data/test/fixtures/sample_site/src/embedded.rhtml +1 -0
  474. data/test/fixtures/sample_site/src/file1.page +8 -0
  475. data/test/fixtures/sample_site/src/file2.de.page +6 -0
  476. data/test/fixtures/sample_site/src/index.de.page +4 -0
  477. data/test/fixtures/sample_site/src/index.en.page +1 -0
  478. data/test/fixtures/sample_site/src/invalid.template +3 -0
  479. data/test/fixtures/sample_site/src/test.jpg +1 -0
  480. data/test/fixtures/sample_site/src/test.template +3 -0
  481. data/test/fixtures/tc_content/blocks.yaml +40 -0
  482. data/test/fixtures/tc_content/correct.yaml +65 -0
  483. data/test/fixtures/tc_content/incorrect.yaml +42 -0
  484. data/test/fixtures/tc_filehandler_filehandler/backing/metainfo.yaml +9 -0
  485. data/test/fixtures/tc_filehandler_filehandler/backing_empty/metainfo.yaml +6 -0
  486. data/test/fixtures/tc_filehandler_filehandler/sample_plugin.rb +49 -0
  487. data/test/fixtures/tc_filehandler_filehandler/unmodified +0 -0
  488. data/test/fixtures/tc_filehandler_gallery/test.gallery +2 -0
  489. data/test/fixtures/tc_filehandler_gallery/test1.gallery +2 -0
  490. data/test/fixtures/tc_filehandler_gallery/test1.jpg +0 -0
  491. data/test/fixtures/tc_filehandler_gallery/test2.jpg +0 -0
  492. data/test/fixtures/tc_filehandler_gallery/test3.jpg +0 -0
  493. data/test/fixtures/tc_filehandler_gallery/test4.jpg +0 -0
  494. data/test/fixtures/tc_filehandler_page/testdata.yaml +10 -0
  495. data/test/fixtures/tc_menustyles_default/menustyle.rb +7 -0
  496. data/test/fixtures/tc_node/nodes.yaml +64 -0
  497. data/test/fixtures/tc_plugin/handlerplugin.rb +15 -0
  498. data/test/fixtures/tc_plugin/plugin1.rb +33 -0
  499. data/test/fixtures/tc_plugin/plugin2.rb +8 -0
  500. data/test/fixtures/tc_tags_includefile/testfile +1 -0
  501. data/test/fixtures/tc_tags_tag_processor/test_file1 +1 -0
  502. data/test/fixtures/tc_tags_tag_processor/testtag.rb +17 -0
  503. data/test/fixtures/tc_website/correct.yaml +6 -0
  504. data/test/fixtures/tc_website/incorrect_structure.yaml +2 -0
  505. data/test/fixtures/tc_website/incorrect_yaml.yaml +5 -0
  506. data/test/fixtures/tc_website/meta_info_test.yaml +10 -0
  507. data/test/fixtures/tc_website/testdir/README +1 -0
  508. data/test/fixtures/tc_website/testdir/falsedir/README +1 -0
  509. data/test/runtests.rb +2 -0
  510. data/test/unittests/tc_composite.rb +82 -0
  511. data/test/unittests/tc_config.rb +18 -0
  512. data/test/unittests/tc_content.rb +88 -0
  513. data/test/unittests/tc_contentconverters_default.rb +13 -0
  514. data/test/unittests/tc_contentconverters_html.rb +16 -0
  515. data/test/unittests/tc_contentconverters_markdown.rb +22 -0
  516. data/test/unittests/tc_contentconverters_rdoc.rb +16 -0
  517. data/test/unittests/tc_contentconverters_textile.rb +22 -0
  518. data/test/unittests/tc_contentconverters_xmlbuilder.rb +22 -0
  519. data/test/unittests/tc_filehandler_copy.rb +65 -0
  520. data/test/unittests/tc_filehandler_directory.rb +134 -0
  521. data/test/unittests/tc_filehandler_filehandler.rb +294 -0
  522. data/test/unittests/tc_filehandler_gallery.rb +165 -0
  523. data/test/unittests/tc_filehandler_page.rb +183 -0
  524. data/test/unittests/tc_filehandler_template.rb +60 -0
  525. data/test/unittests/tc_htmlvalidators_default.rb +12 -0
  526. data/test/unittests/tc_htmlvalidators_xmllint.rb +19 -0
  527. data/test/unittests/tc_languages.rb +57 -0
  528. data/test/unittests/tc_listener.rb +72 -0
  529. data/test/unittests/tc_menustyles_default.rb +51 -0
  530. data/test/unittests/tc_menustyles_horizontal.rb +18 -0
  531. data/test/unittests/tc_menustyles_horizontal_dropdown.rb +18 -0
  532. data/test/unittests/tc_menustyles_section.rb +59 -0
  533. data/test/unittests/tc_menustyles_vertical.rb +79 -0
  534. data/test/unittests/tc_menustyles_vertical_dropdown.rb +18 -0
  535. data/test/unittests/tc_node.rb +202 -0
  536. data/test/unittests/tc_plugin.rb +214 -0
  537. data/test/unittests/tc_resourcemanager.rb +42 -0
  538. data/test/unittests/tc_smileyreplacer.rb +25 -0
  539. data/test/unittests/tc_syntax_highlighter.rb +30 -0
  540. data/test/unittests/tc_tags_block.rb +27 -0
  541. data/test/unittests/tc_tags_breadcrumbtrail.rb +22 -0
  542. data/test/unittests/tc_tags_date.rb +15 -0
  543. data/test/unittests/tc_tags_download.rb +32 -0
  544. data/test/unittests/tc_tags_executecommand.rb +37 -0
  545. data/test/unittests/tc_tags_includefile.rb +53 -0
  546. data/test/unittests/tc_tags_langbar.rb +42 -0
  547. data/test/unittests/tc_tags_menu.rb +50 -0
  548. data/test/unittests/tc_tags_meta.rb +19 -0
  549. data/test/unittests/tc_tags_relocatable.rb +66 -0
  550. data/test/unittests/tc_tags_sitemap.rb +33 -0
  551. data/test/unittests/tc_tags_tag_processor.rb +107 -0
  552. data/test/unittests/tc_tags_wikilink.rb +22 -0
  553. data/test/unittests/tc_treewalker.rb +44 -0
  554. data/test/unittests/tc_website.rb +188 -0
  555. metadata +829 -312
  556. data/bin/webgen-gallery-editor +0 -654
  557. data/bin/webgen-gui +0 -10
  558. data/data/webgen/website_templates/default/config.yaml +0 -2
  559. data/doc/plugin/clidesc.rb +0 -46
  560. data/doc/plugin/source.rb +0 -21
  561. data/doc/src/about.page +0 -22
  562. data/doc/src/documentation/cli.page +0 -12
  563. data/doc/src/documentation/plugins/contenthandlers/html.page +0 -11
  564. data/doc/src/documentation/plugins/contenthandlers/index.page +0 -7
  565. data/doc/src/documentation/plugins/contenthandlers/markdown.page +0 -11
  566. data/doc/src/documentation/plugins/contenthandlers/rdoc.page +0 -11
  567. data/doc/src/documentation/plugins/contenthandlers/textile.page +0 -11
  568. data/doc/src/documentation/plugins/coreplugins/configuration.page +0 -12
  569. data/doc/src/documentation/plugins/coreplugins/index.page +0 -7
  570. data/doc/src/documentation/plugins/coreplugins/logging.page +0 -13
  571. data/doc/src/documentation/plugins/coreplugins/resourcemanager.page +0 -34
  572. data/doc/src/documentation/plugins/filehandlers/backing.page +0 -46
  573. data/doc/src/documentation/plugins/filehandlers/copy.page +0 -12
  574. data/doc/src/documentation/plugins/filehandlers/directoryhandler.page +0 -35
  575. data/doc/src/documentation/plugins/filehandlers/gallery.page +0 -86
  576. data/doc/src/documentation/plugins/filehandlers/index.page +0 -34
  577. data/doc/src/documentation/plugins/filehandlers/page.page +0 -170
  578. data/doc/src/documentation/plugins/filehandlers/template.page +0 -21
  579. data/doc/src/documentation/plugins/gallerylayouters/index.page +0 -18
  580. data/doc/src/documentation/plugins/htmlvalidators/index.page +0 -6
  581. data/doc/src/documentation/plugins/htmlvalidators/xmllint.page +0 -14
  582. data/doc/src/documentation/plugins/menustyles/horizontal.page +0 -21
  583. data/doc/src/documentation/plugins/menustyles/index.page +0 -12
  584. data/doc/src/documentation/plugins/menustyles/partial.page +0 -27
  585. data/doc/src/documentation/plugins/menustyles/vertical.page +0 -32
  586. data/doc/src/documentation/plugins/menustyles/verticaldropdown.page +0 -23
  587. data/doc/src/documentation/plugins/miscplugins/index.page +0 -7
  588. data/doc/src/documentation/plugins/tags/breadcrumbtrail.page +0 -20
  589. data/doc/src/documentation/plugins/tags/date.page +0 -19
  590. data/doc/src/documentation/plugins/tags/download.page +0 -23
  591. data/doc/src/documentation/plugins/tags/executecommand.page +0 -18
  592. data/doc/src/documentation/plugins/tags/includefile.page +0 -15
  593. data/doc/src/documentation/plugins/tags/index.page +0 -44
  594. data/doc/src/documentation/plugins/tags/langbar.page +0 -27
  595. data/doc/src/documentation/plugins/tags/menu.de.page +0 -12
  596. data/doc/src/documentation/plugins/tags/menu.page +0 -19
  597. data/doc/src/documentation/plugins/tags/multilang.de.page +0 -4
  598. data/doc/src/documentation/plugins/tags/multilang.fr.page +0 -4
  599. data/doc/src/documentation/plugins/tags/multilang.page +0 -4
  600. data/doc/src/documentation/plugins/tags/relocatable.page +0 -16
  601. data/doc/src/documentation/plugins/tags/resource.page +0 -22
  602. data/doc/src/documentation/plugins/tags/sitemap.page +0 -17
  603. data/doc/src/documentation/plugins/tags/wikilink.page +0 -18
  604. data/doc/src/documentation/webgen_gallery_editor.page +0 -82
  605. data/doc/src/images/screenshots/wge-image.png +0 -0
  606. data/doc/src/images/screenshots/wge-layout-preview.png +0 -0
  607. data/doc/src/images/screenshots/wge-main-disabled.png +0 -0
  608. data/doc/src/images/screenshots/wge-main.png +0 -0
  609. data/doc/src/meta.info +0 -30
  610. data/doc/src/screenshots.gallery +0 -33
  611. data/install.rb +0 -19
  612. data/lib/webgen.rb +0 -277
  613. data/lib/webgen/plugins/contenthandlers/markdown.rb +0 -50
  614. data/lib/webgen/plugins/coreplugins/logging.rb +0 -101
  615. data/lib/webgen/plugins/filehandlers/backing.rb +0 -159
  616. data/lib/webgen/plugins/gallerylayouters/default.rb +0 -152
  617. data/lib/webgen/plugins/menustyles/partial.rb +0 -95
  618. data/lib/webgen/plugins/tags/tags.rb +0 -254
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: default.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: default.rb 531 2006-11-17 17:56:14Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -21,17 +21,18 @@
21
21
  #
22
22
 
23
23
 
24
- module ContentHandlers
24
+ module ContentConverters
25
25
 
26
- class DefaultContentHandler < Webgen::Plugin
26
+ class DefaultContentConverter < Webgen::HandlerPlugin
27
27
 
28
- summary "Base class for all content handlers"
28
+ infos( :name => 'ContentConverter/Default',
29
+ :author => Webgen::AUTHOR,
30
+ :summary => "Base class for content to HTML converters"
31
+ )
29
32
 
30
- define_handler 'format'
31
-
32
- # Format the given +content+. Should be overridden in subclass!
33
- def format_content( content )
34
- content
33
+ # Convert the given +content+ to HTML. Has to be overridden in subclasses!
34
+ def call( content )
35
+ raise NotImplementedError
35
36
  end
36
37
 
37
38
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: html.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: html.rb 531 2006-11-17 17:56:14Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -20,19 +20,22 @@
20
20
  #++
21
21
  #
22
22
 
23
- require 'webgen/plugins/contenthandlers/default'
23
+ load_plugin 'webgen/plugins/contentconverters/default'
24
24
 
25
- module ContentHandlers
25
+ module ContentConverters
26
26
 
27
27
  # Handles HTML content. Assumes that the content is already valid HTML.
28
- class HTMLContentHandler < DefaultContentHandler
28
+ class HtmlConverter < DefaultContentConverter
29
29
 
30
- summary "Handles HTML formatted content"
30
+ infos( :name => 'ContentConverter/HTML',
31
+ :author => Webgen::AUTHOR,
32
+ :summary => "Handles HTML formatted content"
33
+ )
31
34
 
32
- register_format( 'html' )
35
+ register_handler 'html'
33
36
 
34
- def format_content( txt )
35
- txt
37
+ def call( content )
38
+ content
36
39
  end
37
40
 
38
41
  end
@@ -0,0 +1,54 @@
1
+ #
2
+ #--
3
+ #
4
+ # $Id: markdown.rb 531 2006-11-17 17:56:14Z 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
+ load_optional_part( 'content-converter-markdown',
24
+ :needed_gems => ['bluecloth'],
25
+ :error_msg => "Markdown not available as content format as BlueCloth could not be loaded",
26
+ :info => "Markdown can be used as content format" ) do
27
+
28
+ require 'bluecloth'
29
+ load_plugin 'webgen/plugins/contentconverters/default'
30
+
31
+ module ContentConverters
32
+
33
+ # Converts text formatted in Markdown format using BlueCloth to HTML.
34
+ class MarkdownConverter < DefaultContentConverter
35
+
36
+ infos( :name => 'ContentConverter/Markdown',
37
+ :author => Webgen::AUTHOR,
38
+ :summary => "Handles content formatted in Markdown format using BlueCloth"
39
+ )
40
+
41
+ register_handler 'markdown'
42
+
43
+ def call( content )
44
+ BlueCloth.new( content ).to_html
45
+ rescue Exception => e
46
+ log(:error) { "Error converting Markdown text to HTML: #{e.message}" }
47
+ content
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: rdoc.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: rdoc.rb 531 2006-11-17 17:56:14Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -22,27 +22,31 @@
22
22
 
23
23
  require 'rdoc/markup/simple_markup'
24
24
  require 'rdoc/markup/simple_markup/to_html'
25
- require 'webgen/plugins/contenthandlers/default'
25
+ load_plugin 'webgen/plugins/contentconverters/default'
26
26
 
27
- module ContentHandlers
27
+ module ContentConverters
28
28
 
29
29
  # Handles text in RDoc format.
30
- class RDocContentHandler < DefaultContentHandler
30
+ class RDocConverter < DefaultContentConverter
31
31
 
32
- summary "Handles content in RDOC format"
32
+ infos( :name => 'ContentConverter/RDoc',
33
+ :author => Webgen::AUTHOR,
34
+ :summary => "Handles content in RDOC format"
35
+ )
33
36
 
34
- register_format( 'rdoc' )
37
+ register_handler 'rdoc'
35
38
 
36
- def initialize
39
+ def initialize( plugin_manager )
40
+ super
37
41
  @processor = SM::SimpleMarkup.new
38
42
  @formatter = SM::ToHtml.new
39
43
  end
40
44
 
41
- def format_content( txt )
42
- @processor.convert( txt, @formatter )
43
- rescue
44
- self.logger.error { "Error converting RDOC text to HTML" }
45
- ''
45
+ def call( content )
46
+ @processor.convert( content, @formatter )
47
+ rescue Exception => e
48
+ log(:error) { "Error converting RDOC text to HTML: {e.message}" }
49
+ content
46
50
  end
47
51
 
48
52
  end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: textile.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: textile.rb 531 2006-11-17 17:56:14Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -20,30 +20,35 @@
20
20
  #++
21
21
  #
22
22
 
23
- begin
23
+ load_optional_part( 'content-converter-textile',
24
+ :needed_gems => ['redcloth'],
25
+ :error_msg => "Textile not available as content format as RedCloth could not be loaded",
26
+ :info => "Textile can be used as content format" ) do
27
+
24
28
  require 'redcloth'
25
- require 'webgen/plugins/contenthandlers/default'
29
+ load_plugin 'webgen/plugins/contentconverters/default'
26
30
 
27
- module ContentHandlers
31
+ module ContentConverters
28
32
 
29
33
  # Handles content in Textile format using RedCloth.
30
- class TextileContentHandler < DefaultContentHandler
34
+ class TextileConverter < DefaultContentConverter
31
35
 
32
- summary "Handles content in Textile format using RedCloth"
36
+ infos( :name => 'ContentConverter/Textile',
37
+ :author => Webgen::AUTHOR,
38
+ :summary => "Handles content in Textile format using RedCloth"
39
+ )
33
40
 
34
- register_format( 'textile' )
41
+ register_handler 'textile'
35
42
 
36
- def format_content( txt )
37
- RedCloth.new( txt ).to_html
43
+ def call( content )
44
+ RedCloth.new( content ).to_html
38
45
  rescue Exception => e
39
- self.logger.error { "Error converting Textile text to HTML: #{e.message}" }
40
- ''
46
+ log(:error) { "Error converting Textile text to HTML: #{e.message}" }
47
+ content
41
48
  end
42
49
 
43
50
  end
44
51
 
45
52
  end
46
53
 
47
- rescue LoadError => e
48
- self.logger.warn { "Textile not available as content format as RedCloth could not be loaded: #{e.message}" }
49
54
  end
@@ -0,0 +1,58 @@
1
+ #
2
+ #--
3
+ #
4
+ # $Id: textile.rb 501 2006-09-09 17:25:43Z 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
+
24
+ load_optional_part( 'content-converter-xmlbuilder',
25
+ :needed_gems => ['builder'],
26
+ :error_msg => "XML Builder not available as content format as it could not be loaded",
27
+ :info => "The builder library can be used to create XHTML/XML content" ) do
28
+
29
+ require 'builder'
30
+ load_plugin 'webgen/plugins/contentconverters/default'
31
+
32
+ module ContentConverters
33
+
34
+ # Handles content in Textile format using RedCloth.
35
+ class XmlBuilderConverter < DefaultContentConverter
36
+
37
+ infos( :name => 'ContentConverter/XmlBuilder',
38
+ :author => Webgen::AUTHOR,
39
+ :summary => "Handles content structured using the XML Builder library"
40
+ )
41
+
42
+ register_handler 'xmlbuilder'
43
+
44
+
45
+ def call( content )
46
+ xml = Builder::XmlMarkup.new( :indent => 2 )
47
+ eval( content )
48
+ xml.target!
49
+ rescue Exception => e
50
+ log(:error) { "Error using XML Builder to generate HTML: #{e.message}" }
51
+ content
52
+ end
53
+
54
+ end
55
+
56
+ end
57
+
58
+ end
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: configuration.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: configuration.rb 531 2006-11-17 17:56:14Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -20,115 +20,24 @@
20
20
  #++
21
21
  #
22
22
 
23
- require 'find'
24
- require 'tsort'
25
- require 'cmdparse'
26
- require 'webgen/node'
27
- require 'webgen/plugin'
28
-
29
- # Helper class for calculating plugin dependencies.
30
- class Dependency < Hash
31
- include TSort
32
-
33
- alias tsort_each_node each_key
34
- def tsort_each_child(node, &block)
35
- fetch(node).each(&block)
36
- end
37
- end
38
-
39
- module Webgen
40
-
41
- VERSION = [0, 3, 8]
42
- SUMMARY = "Webgen is a templated based static website generator."
43
- DESCRIPTION = "Webgen is a web page generator implemented in Ruby. " \
44
- "It is used to generate static web pages from templates and page " \
45
- "description files."
46
-
47
- end
48
-
49
23
  module CorePlugins
50
24
 
51
- # Responsible for loading the other plugin files and holds the basic configuration options.
25
+ # Used for storing the basic configuration options.
52
26
  class Configuration < Webgen::Plugin
53
27
 
54
- summary "Responsible for loading plugins and holding general parameters"
55
-
56
- add_param 'srcDirectory', 'src', 'The directory from which the source files are read.'
57
- add_param 'outDirectory', 'output', 'The directory to which the output files are written.'
58
- add_param 'lang', 'en', 'The default language.'
28
+ infos( :name => 'Core/Configuration',
29
+ :author => Webgen::AUTHOR,
30
+ :summary => "Responsible for storing general parameters"
31
+ )
59
32
 
60
- # Returns the +CommandParser+ object used for parsing the command line. You can add site
61
- # specific commands to it by calling the Configuration#add_cmdparser_command method!
62
- attr_accessor :cmdparser
63
-
64
- # Returns the data directory of webgen.
65
- def self.data_dir
66
- unless defined?( @@data_dir )
67
- @@data_dir = File.join( Config::CONFIG["datadir"], "webgen" )
68
-
69
- if defined?( Gem::Cache )
70
- gem = Gem::Cache.from_installed_gems.search( "webgen", "=#{Webgen::VERSION.join('.')}" ).last
71
- @@data_dir = File.join( gem.full_gem_path, "data", "webgen" ) if gem
72
- end
73
-
74
- @@data_dir = File.dirname( $0 ) + '/../data/webgen' if !File.exists?( @@data_dir )
75
-
76
- if File.exists?( @@data_dir )
77
- logger.info { "Webgen data directory found at #{@@data_dir}" }
78
- else
79
- logger.error { "Could not locate webgen data directory!!!" }
80
- @@data_dir = ''
81
- end
82
- end
83
- @@data_dir
84
- end
85
-
86
- def add_cmdparser_command( command )
87
- @cmdparser.add_command( command ) if @cmdparser
88
- end
89
-
90
- # Does all the initialisation stuff
91
- def init_all
92
- load_plugins( File.dirname( __FILE__).sub( /coreplugins$/,'' ), File.dirname( __FILE__).sub(/webgen\/plugins\/coreplugins$/, '') )
93
- load_plugins( 'plugin', '' )
94
- init_plugins
95
- end
96
-
97
- # Load all plugins in the given +path+. Before +require+ is actually called the path is
98
- # trimmed: if +trimpath+ matches the beginning of the string, +trimpath+ is deleted from it.
99
- def load_plugins( path, trimpath )
100
- Find.find( path ) do |file|
101
- trimmedFile = file.gsub(/^#{trimpath}/, '')
102
- Find.prune unless File.directory?( file ) || ( (/.rb$/ =~ file) && !$".include?( trimmedFile ) )
103
- if File.file?( file )
104
- self.logger.debug { "Loading plugin file <#{file}>..." }
105
- require trimmedFile
106
- end
107
- end
108
- end
109
-
110
- # Instantiate the plugins in the correct order, except the classes which have a constant
111
- # +VIRTUAL+, and add CommandPlugin instance to the global CommandParser.
112
- def init_plugins
113
- dep = Dependency.new
114
- Webgen::Plugin.config.each {|k,data| dep[data.plugin] = data.dependencies || []}
115
- dep.tsort.each do |plugin|
116
- data = Webgen::Plugin.config.find {|k,v| v.plugin == plugin }[1]
117
- unless data.klass.const_defined?( 'VIRTUAL' ) || data.obj
118
- self.logger.debug { "Creating plugin of class #{data.klass.name}" }
119
- data.obj ||= data.klass.new
120
- end
121
- end
122
- Webgen::Plugin.config.keys.find_all {|klass| klass.ancestors.include?( Webgen::CommandPlugin )}.each do |cmdKlass|
123
- add_cmdparser_command( Webgen::Plugin.config[cmdKlass].obj )
124
- end
125
- end
33
+ param 'srcDir', Webgen::SRC_DIR, 'The directory from which the source files are read - is automatically set and cannot be overridden.'
34
+ param 'outDir', 'output', 'The directory to which the output files are written.'
35
+ param 'websiteDir', nil, 'The website directory - is automatically set and cannot be overridden!'
36
+ param 'lang', 'en', 'The default language.'
37
+ param 'loggerLevel', 2, 'The logging level, ranges from 0 (debug, more verbose) to 3 (error, less verbose)'
126
38
 
127
39
  end
128
40
 
129
- # Initialize single configuration instance
130
- Webgen::Plugin.config[Configuration].obj = Configuration.new
131
-
132
41
  end
133
42
 
134
43
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  #--
3
3
  #
4
- # $Id: resourcemanager.rb 369 2005-12-24 11:37:40Z thomas $
4
+ # $Id: resourcemanager.rb 563 2006-12-29 08:59:41Z thomas $
5
5
  #
6
6
  # webgen: template based static website generator
7
7
  # Copyright (C) 2004 Thomas Leitner
@@ -20,20 +20,28 @@
20
20
  #++
21
21
  #
22
22
 
23
- require 'rbconfig'
24
23
  require 'fileutils'
25
- require 'webgen/plugins/tags/tags'
26
- require 'webgen/plugins/filehandlers/filehandler'
24
+ load_plugin 'webgen/plugins/tags/tag_processor'
25
+ load_plugin 'webgen/plugins/filehandlers/filehandler'
27
26
 
28
27
  module CorePlugins
29
28
 
29
+ # Handles resources in webgen.
30
30
  class ResourceManager < Webgen::Plugin
31
31
 
32
+ # The base class for all resources.
32
33
  class Resource
33
34
 
35
+ # The unique name of the resource.
34
36
  attr_reader :name
37
+
38
+ # The output path.
35
39
  attr_reader :output_path
40
+
41
+ # Specifies if this resource is predefined. This is only used internally by webgen!
36
42
  attr_accessor :predefined
43
+
44
+ # The type of resource: file or memory.
37
45
  attr_accessor :type
38
46
 
39
47
  def initialize( name, type, output_path )
@@ -44,13 +52,13 @@ module CorePlugins
44
52
  end
45
53
 
46
54
  # Returns the relative path from the node to the resource.
47
- def relpath_from_node( node )
48
- node.relpath_to_string( '/' + @output_path )
55
+ def route_from( node )
56
+ node.route_to( '/' + @output_path )
49
57
  end
50
58
 
51
59
  # Returns the complete destination path.
52
- def dest_path
53
- File.join( Webgen::Plugin['Configuration']['outDirectory'], @output_path )
60
+ def dest_path( root_dir )
61
+ File.join( root_dir, @output_path )
54
62
  end
55
63
 
56
64
  # Mark the resource as referenced. Only referenced resources are written to the output directory.
@@ -64,19 +72,21 @@ module CorePlugins
64
72
  end
65
73
 
66
74
  # Can the resource be written to the output directory?
67
- def write_resource?
75
+ def write_resource?( root_dir, file_handler )
68
76
  @referenced
69
77
  end
70
78
 
71
79
  # Write the resource to the output directory.
72
- def write_resource
80
+ def write_resource( root_dir, file_handler )
73
81
  raise NotImplementedError
74
82
  end
75
83
 
76
84
  end
77
85
 
86
+ # Describes a file resource.
78
87
  class FileResource < Resource
79
88
 
89
+ # The path to the file the resource references.
80
90
  attr_reader :res_path
81
91
 
82
92
  def initialize( name, output_path, res_path )
@@ -88,16 +98,17 @@ module CorePlugins
88
98
  File.read( @res_path )
89
99
  end
90
100
 
91
- def write_resource?
92
- referenced? && Webgen::Plugin['FileHandler'].file_modified?( @res_path, dest_path )
101
+ def write_resource?( root_dir, file_handler )
102
+ referenced? && file_handler.file_modified?( @res_path, dest_path( root_dir ) )
93
103
  end
94
104
 
95
- def write_resource
96
- FileUtils.cp( res_path, dest_path ) if write_resource?
105
+ def write_resource( root_dir, file_handler )
106
+ FileUtils.cp( res_path, dest_path( root_dir ) ) if write_resource?( root_dir, file_handler )
97
107
  end
98
108
 
99
109
  end
100
110
 
111
+ # Describes a memory resource.
101
112
  class MemoryResource < Resource
102
113
 
103
114
  def initialize( name, output_path )
@@ -113,27 +124,35 @@ module CorePlugins
113
124
  @data << data
114
125
  end
115
126
 
116
- def write_resource
117
- File.open( dest_path, 'w' ) {|file| file.write( data )} if write_resource?
127
+ def write_resource( root_dir, file_handler )
128
+ File.open( dest_path( root_dir ), 'w' ) {|file| file.write( data )} if write_resource?( root_dir, file_handler )
118
129
  end
119
130
 
120
131
  end
121
132
 
122
133
 
123
- summary "Provides access to pre- and userdefined resources"
124
- description "The resource manager manages a list of predefined and " \
125
- "userdefined resources. These resources can be used in page files."
126
- add_param 'resources', [], 'User defined file resources. Value has to be an array of arrays with three strings defining '\
127
- 'name, resource path and output path'
134
+ infos( :name => 'Core/ResourceManager',
135
+ :author => Webgen::AUTHOR,
136
+ :summary => "Provides access to pre- and userdefined resources",
137
+ :description => "The resource manager manages a list of predefined and " +
138
+ "userdefined resources. These resources can be used, for example, in page files."
139
+ )
140
+
141
+ param 'resources', [], 'User defined file resources. Value has to be an array of ' +
142
+ 'arrays with three strings defining name, resource path and output path'
143
+
144
+ depends_on 'Core/FileHandler'
128
145
 
129
- depends_on 'FileHandler'
130
146
 
131
- attr_reader :data_dir
147
+ # Returns all defined resources.
148
+ attr_reader :resources
132
149
 
133
- def initialize
134
- Webgen::Plugin.config[self.class].resources = {}
135
- Webgen::Plugin['FileHandler'].add_msg_listener( :AFTER_ALL_WRITTEN, method( :write_resources ) )
136
- define_webgen_resources unless CorePlugins::Configuration.data_dir.empty?
150
+
151
+ def initialize( plugin_manager )
152
+ super
153
+ @plugin_manager['Core/FileHandler'].add_msg_listener( :after_all_nodes_written, method( :write_resources ) )
154
+ @resources = {}
155
+ define_webgen_resources unless Webgen.data_dir.empty?
137
156
  define_user_resources
138
157
  end
139
158
 
@@ -142,14 +161,11 @@ module CorePlugins
142
161
  # should be an absolute path, like +/images/logo.png+. If not, it will be relative to the output
143
162
  # directory.
144
163
  def define_file_resource( name, resource_path, output_path )
145
- if !File.exists?( resource_path )
146
- logger.error { "Path <#{resource_path}> for resource #{name} is invalid!" }
147
- else
164
+ if File.exists?( resource_path )
148
165
  define_resource( name, FileResource.new( name, output_path, resource_path ) )
149
166
  end
150
167
  end
151
168
 
152
-
153
169
  # Adds a new resource which can be referenced later by using +name+. The +output_path+
154
170
  # should be an absolute path, like +/images/logo.png+. If not, it will be relative to the output
155
171
  # directory.
@@ -157,19 +173,22 @@ module CorePlugins
157
173
  define_resource( name, MemoryResource.new( name, output_path ) )
158
174
  end
159
175
 
176
+ # Assigns the resource +res+ the name +name+.
177
+ def define_resource( name, res )
178
+ @resources[name] = res unless @resources.has_key?( name )
179
+ end
160
180
 
161
181
  # Returns the requested resource.
162
182
  def get_resource( name )
163
- Webgen::Plugin.config[self.class].resources[name]
183
+ @resources[name]
164
184
  end
165
185
 
166
-
167
186
  # Appends given +data+ to the resource +name+. Data can only be appended to memory resources!
168
187
  def append_data( name, data )
169
188
  if (res = get_resource( name )) && res.type == :memory
170
189
  res.append_data( data )
171
190
  else
172
- logger.error {"Resource #{name} does not exist or data cannot be appended to it!" }
191
+ log(:error) {"Resource #{name} does not exist or data cannot be appended to it!" }
173
192
  end
174
193
  end
175
194
 
@@ -177,34 +196,31 @@ module CorePlugins
177
196
  private
178
197
  #######
179
198
 
180
- def define_resource( name, res )
181
- if Webgen::Plugin.config[self.class].resources.has_key?( name )
182
- logger.error { "Resource #{name} already defined, not using new definition (#{res.inspect})" }
183
- else
184
- logger.info { "Adding resource #{name} to pool (#{res.inspect})" }
185
- Webgen::Plugin.config[self.class].resources[name] = res
186
- end
187
- end
188
-
189
199
  def define_webgen_resources
190
- define_file_resource( 'webgen-logo', File.join( CorePlugins::Configuration.data_dir, 'resources', 'images', 'webgen_logo.png' ),
191
- '/images/webgen-logo.png' ).predefined = "The logo of webgen as seen on the homepage."
192
- define_file_resource( 'webgen-generated', File.join( CorePlugins::Configuration.data_dir, 'resources', 'images', 'generated_by_webgen.png' ),
193
- '/images/webgen-generated-by.png' ).predefined = "A 88x31 image for use on web sites that were generated by webgen."
194
- define_file_resource( 'w3c-valid-css', File.join( CorePlugins::Configuration.data_dir, 'resources', 'images', 'valid-css.gif' ),
195
- '/images/w3c-valid-css.gif' ).predefined = 'The W3C image for valid css.'
196
- define_file_resource( 'w3c-valid-xhtml11', File.join( CorePlugins::Configuration.data_dir, 'resources', 'images', 'valid-xhtml11.png' ),
197
- '/images/w3c-valid-xhtml11.png' ).predefined = "The W3C image for valid XHTML1.1"
200
+ define_file_resource( 'webgen-logo', File.join( Webgen.data_dir, 'resources', 'images', 'webgen_logo.png' ),
201
+ '/images/webgen-logo.png'
202
+ ).predefined = "The logo of webgen as seen on the homepage."
203
+ define_file_resource( 'webgen-generated', File.join( Webgen.data_dir, 'resources', 'images', 'generated_by_webgen.png' ),
204
+ '/images/webgen-generated-by.png'
205
+ ).predefined = "A 88x31 image for use on web sites that were generated by webgen."
206
+ define_file_resource( 'w3c-valid-css', File.join( Webgen.data_dir, 'resources', 'images', 'valid-css.gif' ),
207
+ '/images/w3c-valid-css.gif'
208
+ ).predefined = 'The W3C image for valid css.'
209
+ define_file_resource( 'w3c-valid-xhtml11', File.join( Webgen.data_dir, 'resources', 'images', 'valid-xhtml11.png' ),
210
+ '/images/w3c-valid-xhtml11.png'
211
+ ).predefined = "The W3C image for valid XHTML1.1"
198
212
 
199
213
  define_webgen_emoticons
200
214
  define_webgen_icons
201
215
 
202
- define_memory_resource( 'webgen-css', '/css/webgen.css' ).predefined = "Plugins use this resource for their CSS styles."
203
- define_memory_resource( 'webgen-javascript', '/css/webgen.js' ).predefined = "Plugins use this resource for their Javascript fragments."
216
+ define_memory_resource( 'webgen-css', '/css/webgen.css'
217
+ ).predefined = "Plugins use this resource for adding their CSS styles."
218
+ define_memory_resource( 'webgen-javascript', '/js/webgen.js'
219
+ ).predefined = "Plugins use this resource for adding their Javascript fragments."
204
220
  end
205
221
 
206
222
  def define_webgen_emoticons
207
- Dir[File.join( CorePlugins::Configuration.data_dir, 'resources', 'emoticons', '*/')].each do |pack_dir|
223
+ Dir[File.join( Webgen.data_dir, 'resources', 'emoticons', '*/')].each do |pack_dir|
208
224
  pack = File.basename( pack_dir )
209
225
  Dir[File.join( pack_dir, '*' )].each do |smiley_file|
210
226
  smiley = File.basename( smiley_file, '.*' )
@@ -217,7 +233,7 @@ module CorePlugins
217
233
  end
218
234
 
219
235
  def define_webgen_icons
220
- base_dir = File.join( CorePlugins::Configuration.data_dir, 'resources', 'icons' )
236
+ base_dir = File.join( Webgen.data_dir, 'resources', 'icons' )
221
237
  Dir[File.join( base_dir, '**/*')].each do |icon|
222
238
  dirs = File.dirname( icon ).sub( /^#{base_dir}/, '' ).split( '/' ).join( '-' )
223
239
  dirs += '-' if dirs.length > 0
@@ -229,24 +245,26 @@ module CorePlugins
229
245
  end
230
246
 
231
247
  def define_user_resources
232
- p = get_param( 'resources' )
248
+ p = param( 'resources' )
233
249
  if !p.kind_of?( Array ) || p.find {|h| !h.kind_of?( Array ) || h.length != 3}
234
- logger.error { "Parameter resources not correctly structured!" }
250
+ log(:error) { "Parameter 'resources' not correctly structured!" }
235
251
  return
236
252
  end
237
253
  p.each {|name, res_path, out_path| define_file_resource( name, res_path, out_path ) }
238
254
  end
239
255
 
240
256
 
241
- def write_resources
242
- Webgen::Plugin.config[self.class].resources.each do |name, res|
243
- if res.write_resource?
257
+ def write_resources( root )
258
+ outDir = @plugin_manager.param_for_plugin( 'Core/Configuration', 'outDir' )
259
+
260
+ @resources.each do |name, res|
261
+ if res.write_resource?( outDir, @plugin_manager['Core/FileHandler'] )
244
262
  begin
245
- FileUtils.makedirs( File.dirname( res.dest_path ) )
246
- res.write_resource
247
- logger.info { "Resource #{name} written to <#{res.dest_path}>" }
263
+ FileUtils.makedirs( File.dirname( res.dest_path( outDir ) ) )
264
+ res.write_resource( outDir, @plugin_manager['Core/FileHandler'] )
265
+ log(:info) { "Resource '#{name}' written to <#{res.dest_path( outDir )}>" }
248
266
  rescue Exception => e
249
- logger.error { "Error while writing resource #{name}: #{e.message}" }
267
+ log(:error) { "Error while writing resource '#{name}': #{e.message}" }
250
268
  end
251
269
  end
252
270
  end
@@ -261,22 +279,25 @@ module Tags
261
279
 
262
280
  class ResourceTag < DefaultTag
263
281
 
264
- summary "Used for referencing resources"
265
- description "This tag should be used output the path to a resource or the resource itself."
282
+ infos( :name => 'Tag/Resource',
283
+ :author => Webgen::AUTHOR,
284
+ :summary => "Used for referencing resources",
285
+ :description => "This tag can be used to output the path to a resource or the resource itself."
286
+ )
266
287
 
267
- add_param 'name', nil, 'The name of the resource'
268
- add_param 'insert', :path, 'What should be returned by the tag: the path to the resource (value :path) ' \
269
- 'or the data (value :data)'
288
+ param 'name', nil, 'The name of the resource'
289
+ param 'insert', :path, 'What should be returned by the tag: the path to the resource (value :path) ' +
290
+ 'or the data (value :data)'
270
291
  set_mandatory 'name', true
271
292
 
272
- tag 'resource'
293
+ register_tag 'resource'
273
294
 
274
- def process_tag( tag, node, refNode )
295
+ def process_tag( tag, chain )
275
296
  result = ''
276
- if res = Webgen::Plugin['ResourceManager'].get_resource( get_param( 'name' ) )
277
- result = (get_param( 'insert' ) == :path ? res.referenced! && res.relpath_from_node( node ) : res.data )
297
+ if res = @plugin_manager['Core/ResourceManager'].get_resource( param( 'name' ) )
298
+ result = (param( 'insert' ) == :path ? res.referenced! && res.route_from( chain.last ) : res.data )
278
299
  else
279
- logger.error { "Could not retrieve resource #{get_param( 'name' )} as it does not exist!" }
300
+ log(:error) { "Could not use resource #{param( 'name' )} as it does not exist!" }
280
301
  end
281
302
  result
282
303
  end