webgen 0.3.8 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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