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.
- data/ChangeLog +2565 -14
- data/README +4 -6
- data/Rakefile +207 -89
- data/TODO +175 -17
- data/VERSION +1 -1
- data/bin/webgen +1 -2
- data/data/webgen/gallery-creator/default.png +0 -0
- data/data/webgen/gallery_styles/default/README +6 -0
- data/data/webgen/gallery_styles/default/gallery_gallery.template +38 -0
- data/data/webgen/gallery_styles/default/gallery_image.template +30 -0
- data/data/webgen/gallery_styles/default/gallery_main.template +18 -0
- data/data/webgen/gallery_styles/slides/README +18 -0
- data/data/webgen/gallery_styles/slides/collage.rb +334 -0
- data/data/webgen/gallery_styles/slides/gallery_gallery.template +62 -0
- data/data/webgen/gallery_styles/slides/gallery_image.template +53 -0
- data/data/webgen/gallery_styles/slides/gallery_main.template +32 -0
- data/data/webgen/resources/images/generated_by_webgen.png +0 -0
- data/data/webgen/resources/images/webgen_logo.png +0 -0
- data/data/webgen/website_styles/1024px/README +10 -0
- data/data/webgen/website_styles/1024px/default.css +188 -0
- data/data/webgen/website_styles/1024px/default.template +62 -0
- data/data/webgen/website_styles/1024px/images/background.gif +0 -0
- data/data/webgen/website_styles/andreas00/README +10 -0
- data/data/webgen/website_styles/andreas00/default.css +290 -0
- data/data/webgen/website_styles/andreas00/default.template +62 -0
- data/data/webgen/website_styles/andreas00/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas00/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas00/images/menubg.gif +0 -0
- data/data/webgen/website_styles/andreas00/images/menubg2.gif +0 -0
- data/data/webgen/website_styles/andreas01/README +11 -0
- data/data/webgen/website_styles/andreas01/default.css +310 -0
- data/data/webgen/website_styles/andreas01/default.template +63 -0
- data/data/webgen/website_styles/andreas01/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas01/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas01/print.css +35 -0
- data/data/webgen/website_styles/andreas03/README +11 -0
- data/data/webgen/website_styles/andreas03/default.css +223 -0
- data/data/webgen/website_styles/andreas03/default.template +60 -0
- data/data/webgen/website_styles/andreas03/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/contbg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/footerbg.png +0 -0
- data/data/webgen/website_styles/andreas03/images/gradient1.png +0 -0
- data/data/webgen/website_styles/andreas03/images/gradient2.png +0 -0
- data/data/webgen/website_styles/andreas04/README +12 -0
- data/data/webgen/website_styles/andreas04/default.css +290 -0
- data/data/webgen/website_styles/andreas04/default.template +83 -0
- data/data/webgen/website_styles/andreas04/images/blinkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/contentbg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/entrybg.png +0 -0
- data/data/webgen/website_styles/andreas04/images/flash.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/flash2.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/globe.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/globebottom.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/linkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/images/menuhover.png +0 -0
- data/data/webgen/website_styles/andreas05/README +11 -0
- data/data/webgen/website_styles/andreas05/default.css +33 -0
- data/data/webgen/website_styles/andreas05/default.template +42 -0
- data/data/webgen/website_styles/andreas05/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas05/images/front.png +0 -0
- data/data/webgen/website_styles/andreas06/README +11 -0
- data/data/webgen/website_styles/andreas06/default.css +353 -0
- data/data/webgen/website_styles/andreas06/default.template +72 -0
- data/data/webgen/website_styles/andreas06/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/boxbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/greypx.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/header.jpg +0 -0
- data/data/webgen/website_styles/andreas06/images/innerbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/images/leaves.jpg +0 -0
- data/data/webgen/website_styles/andreas06/images/tabs.gif +0 -0
- data/data/webgen/website_styles/andreas07/README +12 -0
- data/data/webgen/website_styles/andreas07/browserfix.css +7 -0
- data/data/webgen/website_styles/andreas07/default.css +92 -0
- data/data/webgen/website_styles/andreas07/default.template +44 -0
- data/data/webgen/website_styles/andreas07/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas07/images/sidebarbg.gif +0 -0
- data/data/webgen/website_styles/andreas08/README +11 -0
- data/data/webgen/website_styles/andreas08/default.css +224 -0
- data/data/webgen/website_styles/andreas08/default.template +53 -0
- data/data/webgen/website_styles/andreas09/README +11 -0
- data/data/webgen/website_styles/andreas09/default.css +308 -0
- data/data/webgen/website_styles/andreas09/default.template +70 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/bodybg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/footerbg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/images/menuhover.jpg +0 -0
- data/data/webgen/website_styles/default/README +6 -0
- data/data/webgen/website_styles/default/default.css +1 -1
- data/data/webgen/website_styles/default/default.template +9 -3
- data/data/webgen/website_styles/plain/README +12 -0
- data/data/webgen/website_styles/plain/default.css +244 -0
- data/data/webgen/website_styles/plain/default.template +63 -0
- data/data/webgen/website_styles/plain/images/a_hover.jpg +0 -0
- data/data/webgen/website_styles/plain/images/desc.jpg +0 -0
- data/data/webgen/website_styles/plain/images/li.gif +0 -0
- data/data/webgen/website_styles/plain/images/mainbar.jpg +0 -0
- data/data/webgen/website_styles/plain/images/menu.jpg +0 -0
- data/data/webgen/website_styles/plain/images/submenua.gif +0 -0
- data/data/webgen/website_styles/plain/images/submenua_hover.jpg +0 -0
- data/data/webgen/website_templates/default/README +7 -5
- data/data/webgen/website_templates/personal_hp/README +7 -5
- data/data/webgen/website_templates/project/README +8 -6
- data/doc/config.yaml +2 -2
- data/doc/examples/website_styles/1024px/README +9 -0
- data/doc/examples/website_styles/1024px/config.yaml +2 -0
- data/doc/examples/website_styles/1024px/src/about.page +12 -0
- data/doc/examples/website_styles/1024px/src/default.css +188 -0
- data/doc/examples/website_styles/1024px/src/default.template +62 -0
- data/doc/examples/website_styles/1024px/src/download.page +15 -0
- data/doc/examples/website_styles/1024px/src/features.page +8 -0
- data/doc/examples/website_styles/1024px/src/images/background.gif +0 -0
- data/doc/examples/website_styles/1024px/src/index.page +9 -0
- data/doc/examples/website_styles/1024px/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas00/README +9 -0
- data/doc/examples/website_styles/andreas00/config.yaml +2 -0
- data/doc/examples/website_styles/andreas00/src/about.page +12 -0
- data/doc/examples/website_styles/andreas00/src/default.css +290 -0
- data/doc/examples/website_styles/andreas00/src/default.template +62 -0
- data/doc/examples/website_styles/andreas00/src/download.page +15 -0
- data/doc/examples/website_styles/andreas00/src/features.page +8 -0
- data/doc/examples/website_styles/andreas00/src/images/bg.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/images/front.jpg +0 -0
- data/doc/examples/website_styles/andreas00/src/images/menubg.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/images/menubg2.gif +0 -0
- data/doc/examples/website_styles/andreas00/src/index.page +9 -0
- data/doc/examples/website_styles/andreas00/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas01/README +9 -0
- data/doc/examples/website_styles/andreas01/config.yaml +2 -0
- data/doc/examples/website_styles/andreas01/src/about.page +12 -0
- data/doc/examples/website_styles/andreas01/src/default.css +310 -0
- data/doc/examples/website_styles/andreas01/src/default.template +63 -0
- data/doc/examples/website_styles/andreas01/src/download.page +15 -0
- data/doc/examples/website_styles/andreas01/src/features.page +8 -0
- data/doc/examples/website_styles/andreas01/src/images/bg.gif +0 -0
- data/doc/examples/website_styles/andreas01/src/images/front.jpg +0 -0
- data/doc/examples/website_styles/andreas01/src/index.page +9 -0
- data/doc/examples/website_styles/andreas01/src/print.css +35 -0
- data/doc/examples/website_styles/andreas01/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas03/README +9 -0
- data/doc/examples/website_styles/andreas03/config.yaml +2 -0
- data/doc/examples/website_styles/andreas03/src/about.page +12 -0
- data/doc/examples/website_styles/andreas03/src/default.css +223 -0
- data/doc/examples/website_styles/andreas03/src/default.template +60 -0
- data/doc/examples/website_styles/andreas03/src/download.page +15 -0
- data/doc/examples/website_styles/andreas03/src/features.page +8 -0
- data/doc/examples/website_styles/andreas03/src/images/bodybg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/contbg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/footerbg.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/gradient1.png +0 -0
- data/doc/examples/website_styles/andreas03/src/images/gradient2.png +0 -0
- data/doc/examples/website_styles/andreas03/src/index.page +9 -0
- data/doc/examples/website_styles/andreas03/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas04/README +9 -0
- data/doc/examples/website_styles/andreas04/config.yaml +2 -0
- data/doc/examples/website_styles/andreas04/src/about.page +12 -0
- data/doc/examples/website_styles/andreas04/src/default.css +290 -0
- data/doc/examples/website_styles/andreas04/src/default.template +83 -0
- data/doc/examples/website_styles/andreas04/src/download.page +15 -0
- data/doc/examples/website_styles/andreas04/src/features.page +8 -0
- data/doc/examples/website_styles/andreas04/src/images/blinkarrow.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/bodybg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/contentbg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/entrybg.png +0 -0
- data/doc/examples/website_styles/andreas04/src/images/flash.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/flash2.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/globe.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/globebottom.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/linkarrow.gif +0 -0
- data/doc/examples/website_styles/andreas04/src/images/menuhover.png +0 -0
- data/doc/examples/website_styles/andreas04/src/index.page +9 -0
- data/doc/examples/website_styles/andreas04/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas05/README +9 -0
- data/doc/examples/website_styles/andreas05/config.yaml +2 -0
- data/doc/examples/website_styles/andreas05/src/about.page +12 -0
- data/doc/examples/website_styles/andreas05/src/default.css +33 -0
- data/doc/examples/website_styles/andreas05/src/default.template +42 -0
- data/doc/examples/website_styles/andreas05/src/download.page +15 -0
- data/doc/examples/website_styles/andreas05/src/features.page +8 -0
- data/doc/examples/website_styles/andreas05/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas05/src/images/front.png +0 -0
- data/doc/examples/website_styles/andreas05/src/index.page +9 -0
- data/doc/examples/website_styles/andreas05/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas06/README +9 -0
- data/doc/examples/website_styles/andreas06/config.yaml +2 -0
- data/doc/examples/website_styles/andreas06/src/about.page +12 -0
- data/doc/examples/website_styles/andreas06/src/default.css +353 -0
- data/doc/examples/website_styles/andreas06/src/default.template +72 -0
- data/doc/examples/website_styles/andreas06/src/download.page +15 -0
- data/doc/examples/website_styles/andreas06/src/features.page +8 -0
- data/doc/examples/website_styles/andreas06/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/boxbg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/greypx.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/header.jpg +0 -0
- data/doc/examples/website_styles/andreas06/src/images/innerbg.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/images/leaves.jpg +0 -0
- data/doc/examples/website_styles/andreas06/src/images/tabs.gif +0 -0
- data/doc/examples/website_styles/andreas06/src/index.page +9 -0
- data/doc/examples/website_styles/andreas06/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas07/README +9 -0
- data/doc/examples/website_styles/andreas07/config.yaml +2 -0
- data/doc/examples/website_styles/andreas07/src/about.page +12 -0
- data/doc/examples/website_styles/andreas07/src/browserfix.css +7 -0
- data/doc/examples/website_styles/andreas07/src/default.css +92 -0
- data/doc/examples/website_styles/andreas07/src/default.template +44 -0
- data/doc/examples/website_styles/andreas07/src/download.page +15 -0
- data/doc/examples/website_styles/andreas07/src/features.page +8 -0
- data/doc/examples/website_styles/andreas07/src/images/bodybg.gif +0 -0
- data/doc/examples/website_styles/andreas07/src/images/sidebarbg.gif +0 -0
- data/doc/examples/website_styles/andreas07/src/index.page +9 -0
- data/doc/examples/website_styles/andreas07/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas08/README +9 -0
- data/doc/examples/website_styles/andreas08/config.yaml +2 -0
- data/doc/examples/website_styles/andreas08/src/about.page +12 -0
- data/doc/examples/website_styles/andreas08/src/default.css +224 -0
- data/doc/examples/website_styles/andreas08/src/default.template +53 -0
- data/doc/examples/website_styles/andreas08/src/download.page +15 -0
- data/doc/examples/website_styles/andreas08/src/features.page +8 -0
- data/doc/examples/website_styles/andreas08/src/index.page +9 -0
- data/doc/examples/website_styles/andreas08/src/screenshots.page +18 -0
- data/doc/examples/website_styles/andreas09/README +9 -0
- data/doc/examples/website_styles/andreas09/config.yaml +2 -0
- data/doc/examples/website_styles/andreas09/src/about.page +12 -0
- data/doc/examples/website_styles/andreas09/src/default.css +308 -0
- data/doc/examples/website_styles/andreas09/src/default.template +70 -0
- data/doc/examples/website_styles/andreas09/src/download.page +15 -0
- data/doc/examples/website_styles/andreas09/src/features.page +8 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-black.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-green.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-orange.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-purple.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg-red.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/bodybg.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/footerbg.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-black.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-green.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-orange.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-purple.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover-red.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/images/menuhover.jpg +0 -0
- data/doc/examples/website_styles/andreas09/src/index.page +9 -0
- data/doc/examples/website_styles/andreas09/src/screenshots.page +18 -0
- data/doc/examples/website_styles/default/README +9 -0
- data/doc/examples/website_styles/default/config.yaml +2 -0
- data/doc/examples/website_styles/default/src/about.page +12 -0
- data/doc/examples/website_styles/default/src/default.css +84 -0
- data/doc/examples/website_styles/default/src/default.template +38 -0
- data/doc/examples/website_styles/default/src/download.page +15 -0
- data/doc/examples/website_styles/default/src/features.page +8 -0
- data/doc/examples/website_styles/default/src/index.page +9 -0
- data/doc/examples/website_styles/default/src/screenshots.page +18 -0
- data/doc/examples/website_styles/plain/README +9 -0
- data/doc/examples/website_styles/plain/config.yaml +2 -0
- data/doc/examples/website_styles/plain/src/about.page +12 -0
- data/doc/examples/website_styles/plain/src/default.css +244 -0
- data/doc/examples/website_styles/plain/src/default.template +63 -0
- data/doc/examples/website_styles/plain/src/download.page +15 -0
- data/doc/examples/website_styles/plain/src/features.page +8 -0
- data/doc/examples/website_styles/plain/src/images/a_hover.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/desc.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/li.gif +0 -0
- data/doc/examples/website_styles/plain/src/images/mainbar.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/menu.jpg +0 -0
- data/doc/examples/website_styles/plain/src/images/submenua.gif +0 -0
- data/doc/examples/website_styles/plain/src/images/submenua_hover.jpg +0 -0
- data/doc/examples/website_styles/plain/src/index.page +9 -0
- data/doc/examples/website_styles/plain/src/screenshots.page +18 -0
- data/doc/examples/website_templates/default/README +8 -0
- data/doc/examples/website_templates/default/config.yaml +2 -0
- data/doc/examples/website_templates/default/src/default.css +84 -0
- data/doc/examples/website_templates/default/src/default.template +38 -0
- data/doc/examples/website_templates/default/src/index.page +8 -0
- data/doc/examples/website_templates/personal_hp/README +8 -0
- data/doc/examples/website_templates/personal_hp/config.yaml +2 -0
- data/doc/examples/website_templates/personal_hp/src/about.page +12 -0
- data/doc/examples/website_templates/personal_hp/src/default.css +84 -0
- data/doc/examples/website_templates/personal_hp/src/default.template +38 -0
- data/doc/examples/website_templates/personal_hp/src/index.page +9 -0
- data/doc/examples/website_templates/personal_hp/src/links.page +22 -0
- data/doc/examples/website_templates/personal_hp/src/projects.page +20 -0
- data/doc/examples/website_templates/project/README +9 -0
- data/doc/examples/website_templates/project/config.yaml +2 -0
- data/doc/examples/website_templates/project/src/about.page +12 -0
- data/doc/examples/website_templates/project/src/default.css +84 -0
- data/doc/examples/website_templates/project/src/default.template +38 -0
- data/doc/examples/website_templates/project/src/download.page +15 -0
- data/doc/examples/website_templates/project/src/features.page +8 -0
- data/doc/examples/website_templates/project/src/index.page +9 -0
- data/doc/examples/website_templates/project/src/screenshots.page +18 -0
- data/doc/metainfo.yaml +85 -0
- data/doc/plugin/emoticon.rb +19 -21
- data/doc/plugin/extension.rb +134 -55
- data/doc/plugin/gallery/slides/collage.rb +334 -0
- data/doc/plugin/listpluginparameters.rb +24 -26
- data/doc/plugin/resources.rb +20 -22
- data/doc/src/default.css +333 -154
- data/doc/src/default.template +92 -39
- data/doc/src/documentation/extending_webgen.page +1 -2
- data/doc/src/documentation/gettingstarted.page +161 -44
- data/doc/src/documentation/index.page +15 -28
- data/doc/src/documentation/plugins/contentconverter/default.page +15 -0
- data/doc/src/documentation/plugins/contentconverter/html.page +10 -0
- data/doc/src/documentation/plugins/contentconverter/markdown.page +21 -0
- data/doc/src/documentation/plugins/contentconverter/rdoc.page +11 -0
- data/doc/src/documentation/plugins/contentconverter/textile.page +21 -0
- data/doc/src/documentation/plugins/contentconverter/xmlbuilder.page +61 -0
- data/doc/src/documentation/plugins/core/configuration.page +11 -0
- data/doc/src/documentation/plugins/core/filehandler.page +214 -0
- data/doc/src/documentation/plugins/core/index.page +11 -0
- data/doc/src/documentation/plugins/core/resourcemanager.page +46 -0
- data/doc/src/documentation/plugins/core/tagprocessor.page +17 -0
- data/doc/src/documentation/plugins/file/copyhandler.page +26 -0
- data/doc/src/documentation/plugins/file/defaulthandler.page +15 -0
- data/doc/src/documentation/plugins/file/directoryhandler.page +37 -0
- data/doc/src/documentation/plugins/file/galleryhandler.page +181 -0
- data/doc/src/documentation/plugins/file/pagehandler.page +154 -0
- data/doc/src/documentation/plugins/file/templatehandler.page +34 -0
- data/doc/src/documentation/plugins/file/thumbnailwriter.page +39 -0
- data/doc/src/documentation/plugins/htmlvalidator/default.page +12 -0
- data/doc/src/documentation/plugins/htmlvalidator/xmllint.page +12 -0
- data/doc/src/documentation/plugins/index.page +32 -11
- data/doc/src/documentation/plugins/menustyle/default.page +19 -0
- data/doc/src/documentation/plugins/menustyle/horizontal.page +32 -0
- data/doc/src/documentation/plugins/{menustyles → menustyle}/horizontaldropdown.page +25 -19
- data/doc/src/documentation/plugins/menustyle/section.page +34 -0
- data/doc/src/documentation/plugins/menustyle/vertical.page +48 -0
- data/doc/src/documentation/plugins/menustyle/verticaldropdown.page +29 -0
- data/doc/src/documentation/plugins/misc/index.page +9 -0
- data/doc/src/documentation/plugins/{miscplugins → misc}/smileyreplacer.page +15 -14
- data/doc/src/documentation/plugins/misc/syntaxhighlighter.page +26 -0
- data/doc/src/documentation/plugins/tag/block.page +29 -0
- data/doc/src/documentation/plugins/tag/breadcrumbtrail.page +29 -0
- data/doc/src/documentation/plugins/tag/date.page +34 -0
- data/doc/src/documentation/plugins/tag/default.page +27 -0
- data/doc/src/documentation/plugins/tag/download.page +60 -0
- data/doc/src/documentation/plugins/tag/executecommand.page +29 -0
- data/doc/src/documentation/plugins/tag/includefile.page +30 -0
- data/doc/src/documentation/plugins/{tags → tag}/langbar.de.page +1 -1
- data/doc/src/documentation/plugins/tag/langbar.fr.page +6 -0
- data/doc/src/documentation/plugins/tag/langbar.page +41 -0
- data/doc/src/documentation/plugins/tag/menu.page +78 -0
- data/doc/src/documentation/plugins/{tags → tag}/meta.page +8 -7
- data/doc/src/documentation/plugins/tag/relocatable.page +46 -0
- data/doc/src/documentation/plugins/tag/resource.page +35 -0
- data/doc/src/documentation/plugins/tag/sitemap.page +35 -0
- data/doc/src/documentation/plugins/tag/wikilink.page +33 -0
- data/doc/src/documentation/references/index.page +0 -1
- data/doc/src/documentation/references/meta_info_reference.page +90 -13
- data/doc/src/documentation/references/parameter_reference.page +0 -1
- data/doc/src/documentation/references/webpage_format.page +249 -0
- data/doc/src/download.page +50 -21
- data/doc/src/examples/gallery_styles/default/default.gallery +78 -0
- data/doc/src/examples/gallery_styles/default/gallery_gallery.template +38 -0
- data/doc/src/examples/gallery_styles/default/gallery_image.template +30 -0
- data/doc/src/examples/gallery_styles/default/gallery_main.template +18 -0
- data/doc/src/examples/gallery_styles/index.page +22 -0
- data/doc/src/examples/gallery_styles/slides/gallery_gallery.template +62 -0
- data/doc/src/examples/gallery_styles/slides/gallery_image.template +53 -0
- data/doc/src/examples/gallery_styles/slides/gallery_main.template +32 -0
- data/doc/src/examples/gallery_styles/slides/slides.gallery +79 -0
- data/doc/src/examples/images/image01.jpg +0 -0
- data/doc/src/examples/images/image02.jpg +0 -0
- data/doc/src/examples/images/image03.jpg +0 -0
- data/doc/src/examples/images/image04.jpg +0 -0
- data/doc/src/examples/images/image05.jpg +0 -0
- data/doc/src/examples/images/image06.jpg +0 -0
- data/doc/src/examples/images/image07.jpg +0 -0
- data/doc/src/examples/images/image08.jpg +0 -0
- data/doc/src/examples/images/image09.jpg +0 -0
- data/doc/src/examples/images/image10.jpg +0 -0
- data/doc/src/examples/images/image11.jpg +0 -0
- data/doc/src/examples/images/image12.jpg +0 -0
- data/doc/src/examples/images/image13.jpg +0 -0
- data/doc/src/examples/images/image14.jpg +0 -0
- data/doc/src/examples/images/image15.jpg +0 -0
- data/doc/src/examples/images/image16.jpg +0 -0
- data/doc/src/examples/images/image17.jpg +0 -0
- data/doc/src/examples/images/image18.jpg +0 -0
- data/doc/src/examples/index.page +18 -0
- data/doc/src/examples/website_styles/1024px.page +5 -0
- data/doc/src/examples/website_styles/andreas00.page +5 -0
- data/doc/src/examples/website_styles/andreas01.page +5 -0
- data/doc/src/examples/website_styles/andreas03.page +5 -0
- data/doc/src/examples/website_styles/andreas04.page +5 -0
- data/doc/src/examples/website_styles/andreas05.page +5 -0
- data/doc/src/examples/website_styles/andreas06.page +5 -0
- data/doc/src/examples/website_styles/andreas07.page +5 -0
- data/doc/src/examples/website_styles/andreas08.page +5 -0
- data/doc/src/examples/website_styles/andreas09.page +5 -0
- data/doc/src/examples/website_styles/default.page +5 -0
- data/doc/src/examples/website_styles/index.page +71 -0
- data/doc/src/examples/website_styles/plain.page +5 -0
- data/doc/src/examples/website_templates/default.page +5 -0
- data/doc/src/examples/website_templates/index.page +24 -0
- data/doc/src/examples/website_templates/personal_hp.page +5 -0
- data/doc/src/examples/website_templates/project.page +5 -0
- data/doc/src/features.page +16 -14
- data/doc/src/images/bodybg.jpg +0 -0
- data/doc/src/images/footerbg.jpg +0 -0
- data/doc/src/images/menuhover.jpg +0 -0
- data/doc/src/images/node_diagram.svg +7132 -0
- data/doc/src/images/thumb_example.jpg +0 -0
- data/doc/src/images/thumb_example_cropped.jpg +0 -0
- data/doc/src/images/thumb_example_normal.jpg +0 -0
- data/doc/src/index.page +14 -102
- data/doc/src/news.page +154 -0
- data/doc/src/plugin.template +10 -0
- data/lib/webgen/cli.rb +427 -0
- data/lib/webgen/composite.rb +11 -11
- data/lib/webgen/config.rb +52 -0
- data/lib/webgen/content.rb +172 -0
- data/lib/webgen/extcommand.rb +23 -0
- data/lib/webgen/languages.rb +110 -0
- data/lib/webgen/listener.rb +1 -1
- data/lib/webgen/node.rb +196 -124
- data/lib/webgen/plugin.rb +480 -144
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/default.rb +10 -9
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/html.rb +11 -8
- data/lib/webgen/plugins/contentconverters/markdown.rb +54 -0
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/rdoc.rb +16 -12
- data/lib/webgen/plugins/{contenthandlers → contentconverters}/textile.rb +18 -13
- data/lib/webgen/plugins/contentconverters/xmlbuilder.rb +58 -0
- data/lib/webgen/plugins/coreplugins/configuration.rb +11 -102
- data/lib/webgen/plugins/coreplugins/resourcemanager.rb +95 -74
- data/lib/webgen/plugins/filehandlers/copy.rb +41 -19
- data/lib/webgen/plugins/filehandlers/directory.rb +52 -50
- data/lib/webgen/plugins/filehandlers/filehandler.rb +370 -123
- data/lib/webgen/plugins/filehandlers/gallery.rb +368 -117
- data/lib/webgen/plugins/filehandlers/page.rb +160 -146
- data/lib/webgen/plugins/filehandlers/template.rb +65 -52
- data/lib/webgen/plugins/htmlvalidators/default.rb +9 -7
- data/lib/webgen/plugins/htmlvalidators/xmllint.rb +17 -33
- data/lib/webgen/plugins/menustyles/default.rb +27 -25
- data/lib/webgen/plugins/menustyles/horizontal.rb +22 -41
- data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +25 -39
- data/lib/webgen/plugins/menustyles/section.rb +68 -0
- data/lib/webgen/plugins/menustyles/vertical.rb +36 -56
- data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +24 -32
- data/lib/webgen/plugins/miscplugins/smileyreplacer.rb +20 -17
- data/lib/webgen/plugins/miscplugins/syntax_highlighter.rb +72 -0
- data/lib/webgen/plugins/miscplugins/treewalker.rb +9 -36
- data/lib/webgen/plugins/tags/block.rb +65 -0
- data/lib/webgen/plugins/tags/breadcrumbtrail.rb +15 -11
- data/lib/webgen/plugins/tags/date.rb +11 -7
- data/lib/webgen/plugins/tags/download.rb +38 -38
- data/lib/webgen/plugins/tags/executecommand.rb +30 -15
- data/lib/webgen/plugins/tags/includefile.rb +26 -13
- data/lib/webgen/plugins/tags/langbar.rb +23 -18
- data/lib/webgen/plugins/tags/menu.rb +49 -70
- data/lib/webgen/plugins/tags/meta.rb +12 -9
- data/lib/webgen/plugins/tags/relocatable.rb +41 -13
- data/lib/webgen/plugins/tags/sitemap.rb +32 -28
- data/lib/webgen/plugins/tags/tag_processor.rb +279 -0
- data/lib/webgen/plugins/tags/wikilink.rb +25 -20
- data/lib/webgen/test.rb +202 -0
- data/lib/webgen/website.rb +310 -0
- data/test/fixtures/sample_site/src/chained.template +3 -0
- data/test/fixtures/sample_site/src/default.template +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/file111.de.page +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/file111.page +3 -0
- data/test/fixtures/sample_site/src/dir1/dir11/index.page +3 -0
- data/test/fixtures/sample_site/src/dir1/file11.page +3 -0
- data/test/fixtures/sample_site/src/dir2/file21.page +3 -0
- data/test/fixtures/sample_site/src/embedded.rhtml +1 -0
- data/test/fixtures/sample_site/src/file1.page +8 -0
- data/test/fixtures/sample_site/src/file2.de.page +6 -0
- data/test/fixtures/sample_site/src/index.de.page +4 -0
- data/test/fixtures/sample_site/src/index.en.page +1 -0
- data/test/fixtures/sample_site/src/invalid.template +3 -0
- data/test/fixtures/sample_site/src/test.jpg +1 -0
- data/test/fixtures/sample_site/src/test.template +3 -0
- data/test/fixtures/tc_content/blocks.yaml +40 -0
- data/test/fixtures/tc_content/correct.yaml +65 -0
- data/test/fixtures/tc_content/incorrect.yaml +42 -0
- data/test/fixtures/tc_filehandler_filehandler/backing/metainfo.yaml +9 -0
- data/test/fixtures/tc_filehandler_filehandler/backing_empty/metainfo.yaml +6 -0
- data/test/fixtures/tc_filehandler_filehandler/sample_plugin.rb +49 -0
- data/test/fixtures/tc_filehandler_filehandler/unmodified +0 -0
- data/test/fixtures/tc_filehandler_gallery/test.gallery +2 -0
- data/test/fixtures/tc_filehandler_gallery/test1.gallery +2 -0
- data/test/fixtures/tc_filehandler_gallery/test1.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test2.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test3.jpg +0 -0
- data/test/fixtures/tc_filehandler_gallery/test4.jpg +0 -0
- data/test/fixtures/tc_filehandler_page/testdata.yaml +10 -0
- data/test/fixtures/tc_menustyles_default/menustyle.rb +7 -0
- data/test/fixtures/tc_node/nodes.yaml +64 -0
- data/test/fixtures/tc_plugin/handlerplugin.rb +15 -0
- data/test/fixtures/tc_plugin/plugin1.rb +33 -0
- data/test/fixtures/tc_plugin/plugin2.rb +8 -0
- data/test/fixtures/tc_tags_includefile/testfile +1 -0
- data/test/fixtures/tc_tags_tag_processor/test_file1 +1 -0
- data/test/fixtures/tc_tags_tag_processor/testtag.rb +17 -0
- data/test/fixtures/tc_website/correct.yaml +6 -0
- data/test/fixtures/tc_website/incorrect_structure.yaml +2 -0
- data/test/fixtures/tc_website/incorrect_yaml.yaml +5 -0
- data/test/fixtures/tc_website/meta_info_test.yaml +10 -0
- data/test/fixtures/tc_website/testdir/README +1 -0
- data/test/fixtures/tc_website/testdir/falsedir/README +1 -0
- data/test/runtests.rb +2 -0
- data/test/unittests/tc_composite.rb +82 -0
- data/test/unittests/tc_config.rb +18 -0
- data/test/unittests/tc_content.rb +88 -0
- data/test/unittests/tc_contentconverters_default.rb +13 -0
- data/test/unittests/tc_contentconverters_html.rb +16 -0
- data/test/unittests/tc_contentconverters_markdown.rb +22 -0
- data/test/unittests/tc_contentconverters_rdoc.rb +16 -0
- data/test/unittests/tc_contentconverters_textile.rb +22 -0
- data/test/unittests/tc_contentconverters_xmlbuilder.rb +22 -0
- data/test/unittests/tc_filehandler_copy.rb +65 -0
- data/test/unittests/tc_filehandler_directory.rb +134 -0
- data/test/unittests/tc_filehandler_filehandler.rb +294 -0
- data/test/unittests/tc_filehandler_gallery.rb +165 -0
- data/test/unittests/tc_filehandler_page.rb +183 -0
- data/test/unittests/tc_filehandler_template.rb +60 -0
- data/test/unittests/tc_htmlvalidators_default.rb +12 -0
- data/test/unittests/tc_htmlvalidators_xmllint.rb +19 -0
- data/test/unittests/tc_languages.rb +57 -0
- data/test/unittests/tc_listener.rb +72 -0
- data/test/unittests/tc_menustyles_default.rb +51 -0
- data/test/unittests/tc_menustyles_horizontal.rb +18 -0
- data/test/unittests/tc_menustyles_horizontal_dropdown.rb +18 -0
- data/test/unittests/tc_menustyles_section.rb +59 -0
- data/test/unittests/tc_menustyles_vertical.rb +79 -0
- data/test/unittests/tc_menustyles_vertical_dropdown.rb +18 -0
- data/test/unittests/tc_node.rb +202 -0
- data/test/unittests/tc_plugin.rb +214 -0
- data/test/unittests/tc_resourcemanager.rb +42 -0
- data/test/unittests/tc_smileyreplacer.rb +25 -0
- data/test/unittests/tc_syntax_highlighter.rb +30 -0
- data/test/unittests/tc_tags_block.rb +27 -0
- data/test/unittests/tc_tags_breadcrumbtrail.rb +22 -0
- data/test/unittests/tc_tags_date.rb +15 -0
- data/test/unittests/tc_tags_download.rb +32 -0
- data/test/unittests/tc_tags_executecommand.rb +37 -0
- data/test/unittests/tc_tags_includefile.rb +53 -0
- data/test/unittests/tc_tags_langbar.rb +42 -0
- data/test/unittests/tc_tags_menu.rb +50 -0
- data/test/unittests/tc_tags_meta.rb +19 -0
- data/test/unittests/tc_tags_relocatable.rb +66 -0
- data/test/unittests/tc_tags_sitemap.rb +33 -0
- data/test/unittests/tc_tags_tag_processor.rb +107 -0
- data/test/unittests/tc_tags_wikilink.rb +22 -0
- data/test/unittests/tc_treewalker.rb +44 -0
- data/test/unittests/tc_website.rb +188 -0
- metadata +829 -312
- data/bin/webgen-gallery-editor +0 -654
- data/bin/webgen-gui +0 -10
- data/data/webgen/website_templates/default/config.yaml +0 -2
- data/doc/plugin/clidesc.rb +0 -46
- data/doc/plugin/source.rb +0 -21
- data/doc/src/about.page +0 -22
- data/doc/src/documentation/cli.page +0 -12
- data/doc/src/documentation/plugins/contenthandlers/html.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/index.page +0 -7
- data/doc/src/documentation/plugins/contenthandlers/markdown.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/rdoc.page +0 -11
- data/doc/src/documentation/plugins/contenthandlers/textile.page +0 -11
- data/doc/src/documentation/plugins/coreplugins/configuration.page +0 -12
- data/doc/src/documentation/plugins/coreplugins/index.page +0 -7
- data/doc/src/documentation/plugins/coreplugins/logging.page +0 -13
- data/doc/src/documentation/plugins/coreplugins/resourcemanager.page +0 -34
- data/doc/src/documentation/plugins/filehandlers/backing.page +0 -46
- data/doc/src/documentation/plugins/filehandlers/copy.page +0 -12
- data/doc/src/documentation/plugins/filehandlers/directoryhandler.page +0 -35
- data/doc/src/documentation/plugins/filehandlers/gallery.page +0 -86
- data/doc/src/documentation/plugins/filehandlers/index.page +0 -34
- data/doc/src/documentation/plugins/filehandlers/page.page +0 -170
- data/doc/src/documentation/plugins/filehandlers/template.page +0 -21
- data/doc/src/documentation/plugins/gallerylayouters/index.page +0 -18
- data/doc/src/documentation/plugins/htmlvalidators/index.page +0 -6
- data/doc/src/documentation/plugins/htmlvalidators/xmllint.page +0 -14
- data/doc/src/documentation/plugins/menustyles/horizontal.page +0 -21
- data/doc/src/documentation/plugins/menustyles/index.page +0 -12
- data/doc/src/documentation/plugins/menustyles/partial.page +0 -27
- data/doc/src/documentation/plugins/menustyles/vertical.page +0 -32
- data/doc/src/documentation/plugins/menustyles/verticaldropdown.page +0 -23
- data/doc/src/documentation/plugins/miscplugins/index.page +0 -7
- data/doc/src/documentation/plugins/tags/breadcrumbtrail.page +0 -20
- data/doc/src/documentation/plugins/tags/date.page +0 -19
- data/doc/src/documentation/plugins/tags/download.page +0 -23
- data/doc/src/documentation/plugins/tags/executecommand.page +0 -18
- data/doc/src/documentation/plugins/tags/includefile.page +0 -15
- data/doc/src/documentation/plugins/tags/index.page +0 -44
- data/doc/src/documentation/plugins/tags/langbar.page +0 -27
- data/doc/src/documentation/plugins/tags/menu.de.page +0 -12
- data/doc/src/documentation/plugins/tags/menu.page +0 -19
- data/doc/src/documentation/plugins/tags/multilang.de.page +0 -4
- data/doc/src/documentation/plugins/tags/multilang.fr.page +0 -4
- data/doc/src/documentation/plugins/tags/multilang.page +0 -4
- data/doc/src/documentation/plugins/tags/relocatable.page +0 -16
- data/doc/src/documentation/plugins/tags/resource.page +0 -22
- data/doc/src/documentation/plugins/tags/sitemap.page +0 -17
- data/doc/src/documentation/plugins/tags/wikilink.page +0 -18
- data/doc/src/documentation/webgen_gallery_editor.page +0 -82
- data/doc/src/images/screenshots/wge-image.png +0 -0
- data/doc/src/images/screenshots/wge-layout-preview.png +0 -0
- data/doc/src/images/screenshots/wge-main-disabled.png +0 -0
- data/doc/src/images/screenshots/wge-main.png +0 -0
- data/doc/src/meta.info +0 -30
- data/doc/src/screenshots.gallery +0 -33
- data/install.rb +0 -19
- data/lib/webgen.rb +0 -277
- data/lib/webgen/plugins/contenthandlers/markdown.rb +0 -50
- data/lib/webgen/plugins/coreplugins/logging.rb +0 -101
- data/lib/webgen/plugins/filehandlers/backing.rb +0 -159
- data/lib/webgen/plugins/gallerylayouters/default.rb +0 -152
- data/lib/webgen/plugins/menustyles/partial.rb +0 -95
- data/lib/webgen/plugins/tags/tags.rb +0 -254
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
#--
|
|
3
3
|
#
|
|
4
|
-
# $Id: default.rb
|
|
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
|
|
24
|
+
module ContentConverters
|
|
25
25
|
|
|
26
|
-
class
|
|
26
|
+
class DefaultContentConverter < Webgen::HandlerPlugin
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
infos( :name => 'ContentConverter/Default',
|
|
29
|
+
:author => Webgen::AUTHOR,
|
|
30
|
+
:summary => "Base class for content to HTML converters"
|
|
31
|
+
)
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
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
|
-
|
|
23
|
+
load_plugin 'webgen/plugins/contentconverters/default'
|
|
24
24
|
|
|
25
|
-
module
|
|
25
|
+
module ContentConverters
|
|
26
26
|
|
|
27
27
|
# Handles HTML content. Assumes that the content is already valid HTML.
|
|
28
|
-
class
|
|
28
|
+
class HtmlConverter < DefaultContentConverter
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
infos( :name => 'ContentConverter/HTML',
|
|
31
|
+
:author => Webgen::AUTHOR,
|
|
32
|
+
:summary => "Handles HTML formatted content"
|
|
33
|
+
)
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
register_handler 'html'
|
|
33
36
|
|
|
34
|
-
def
|
|
35
|
-
|
|
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
|
|
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
|
-
|
|
25
|
+
load_plugin 'webgen/plugins/contentconverters/default'
|
|
26
26
|
|
|
27
|
-
module
|
|
27
|
+
module ContentConverters
|
|
28
28
|
|
|
29
29
|
# Handles text in RDoc format.
|
|
30
|
-
class
|
|
30
|
+
class RDocConverter < DefaultContentConverter
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
infos( :name => 'ContentConverter/RDoc',
|
|
33
|
+
:author => Webgen::AUTHOR,
|
|
34
|
+
:summary => "Handles content in RDOC format"
|
|
35
|
+
)
|
|
33
36
|
|
|
34
|
-
|
|
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
|
|
42
|
-
@processor.convert(
|
|
43
|
-
rescue
|
|
44
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
29
|
+
load_plugin 'webgen/plugins/contentconverters/default'
|
|
26
30
|
|
|
27
|
-
module
|
|
31
|
+
module ContentConverters
|
|
28
32
|
|
|
29
33
|
# Handles content in Textile format using RedCloth.
|
|
30
|
-
class
|
|
34
|
+
class TextileConverter < DefaultContentConverter
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
infos( :name => 'ContentConverter/Textile',
|
|
37
|
+
:author => Webgen::AUTHOR,
|
|
38
|
+
:summary => "Handles content in Textile format using RedCloth"
|
|
39
|
+
)
|
|
33
40
|
|
|
34
|
-
|
|
41
|
+
register_handler 'textile'
|
|
35
42
|
|
|
36
|
-
def
|
|
37
|
-
RedCloth.new(
|
|
43
|
+
def call( content )
|
|
44
|
+
RedCloth.new( content ).to_html
|
|
38
45
|
rescue Exception => e
|
|
39
|
-
|
|
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
|
|
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
|
-
#
|
|
25
|
+
# Used for storing the basic configuration options.
|
|
52
26
|
class Configuration < Webgen::Plugin
|
|
53
27
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
|
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
|
-
|
|
26
|
-
|
|
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
|
|
48
|
-
node.
|
|
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(
|
|
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? &&
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
147
|
+
# Returns all defined resources.
|
|
148
|
+
attr_reader :resources
|
|
132
149
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
191
|
-
'/images/webgen-logo.png'
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
define_file_resource( 'w3c-valid-
|
|
197
|
-
'/images/w3c-valid-
|
|
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'
|
|
203
|
-
|
|
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(
|
|
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(
|
|
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 =
|
|
248
|
+
p = param( 'resources' )
|
|
233
249
|
if !p.kind_of?( Array ) || p.find {|h| !h.kind_of?( Array ) || h.length != 3}
|
|
234
|
-
|
|
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
|
-
|
|
243
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
265
|
-
|
|
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
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
-
|
|
293
|
+
register_tag 'resource'
|
|
273
294
|
|
|
274
|
-
def process_tag( tag,
|
|
295
|
+
def process_tag( tag, chain )
|
|
275
296
|
result = ''
|
|
276
|
-
if res =
|
|
277
|
-
result = (
|
|
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
|
-
|
|
300
|
+
log(:error) { "Could not use resource #{param( 'name' )} as it does not exist!" }
|
|
280
301
|
end
|
|
281
302
|
result
|
|
282
303
|
end
|