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