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
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/doc/src/index.page
CHANGED
|
@@ -3,9 +3,16 @@ title: HomePage
|
|
|
3
3
|
inMenu: true
|
|
4
4
|
directoryName: webgen
|
|
5
5
|
---
|
|
6
|
-
h2.
|
|
6
|
+
h2. About _webgen_
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
webgen is used to generate web pages from page and template files. You create one or more template
|
|
9
|
+
files in which you define the layout of your page and where the content should go. After that you
|
|
10
|
+
create page files in which you only define the content.
|
|
11
|
+
|
|
12
|
+
When webgen is run it combines the template with each of the page files and generates the HTML
|
|
13
|
+
output files. During this process special tags are substituted so that, for example, a menu is
|
|
14
|
+
generated. Actually, this website was generated with webgen and, for example, the menu that you can
|
|
15
|
+
see was created dynamically. For more information look at the documentation!
|
|
9
16
|
|
|
10
17
|
This whole site was generated with webgen and provides an online demonstration of its features.
|
|
11
18
|
Choose from the menu what you want to see from or know about webgen!
|
|
@@ -16,105 +23,10 @@ can "report it here!":http://rubyforge.org/tracker/?atid=1207&group_id=296&func=
|
|
|
16
23
|
are "forums":http://rubyforge.org/forum/?group_id=296 and a "mailing
|
|
17
24
|
list":http://rubyforge.org/mail/?group_id=296 available if you have any questions!
|
|
18
25
|
|
|
19
|
-
h2. News
|
|
20
|
-
|
|
21
|
-
<b>29.12.2005 - webgen 0.3.8 release!!!</b>
|
|
22
|
-
|
|
23
|
-
Bug fix release
|
|
24
|
-
|
|
25
|
-
<b>27.11.2005 - webgen 0.3.7 released!!!</b>
|
|
26
|
-
|
|
27
|
-
Major changes:
|
|
28
|
-
|
|
29
|
-
* Now using cmdparse version 2.0.0!
|
|
30
|
-
* %{color:red}Attention%: For unified naming in reference to image galleries, I have removed all occurences of the word "picture" from the code and documentation and replaced it with "image". Therefore you may need to adapt your code, especially custom gallery layouters!
|
|
31
|
-
* %{color:red}Attention%: Many documentation and library files have been renamed for better consistency! Custom plugins may have to be adapted!
|
|
32
|
-
* <b>New <a href="{relocatable: /documentation/webgen_gallery_editor.page}">application</a></b> for managing image galleries (only alpha quality currently!)
|
|
33
|
-
* Smileys are now optionally replaced with emoticons (<notextile>:-) ;-) :'-( 8-)</notextile>, several different emoticon packs available) -> see <a href="{relocatable: documentation/plugins/miscplugins/smileyreplacer.page}">SmileyReplacer</a>
|
|
34
|
-
* <a href="{relocatable: documentation/extending_webgen.page}">Site specific commands</a> (used in command line processing) can now be used
|
|
35
|
-
* New plugin <a href="{relocatable: documentation/plugins/tags/download.page}">Download Tag</a> for nice download links
|
|
36
|
-
* New parameters: <a href="{relocatable: documentation/plugins/filehandlers/page.page}">PageFileHandler:defaultPageMetaData</a>, <a href="{relocatable: documentation/plugins/tags/sitemap.page}">SitemapTag:honorInMenu</a>
|
|
37
|
-
* Removed parameters: PageFileHandler:useERB, PageFileHandler:defaultContentFormat
|
|
38
|
-
* Renamed tag <b>navbar</b> to <b>breadcrumbTrail</b>
|
|
39
|
-
* Images in image galleries can now be ordered by specifying the @orderInfo@ meta information
|
|
40
|
-
* The use of directory index files is now optional: by setting the parameter <a href="{relocatable: documentation/plugins/filehandlers/directoryhandler.page}">DirectoryHandler:indexFile</a> to nil directory index files are not used
|
|
41
|
-
* Languages can now be specified using 2-char ISO-639-1 codes or 3-char ISO-639-2 codes
|
|
42
|
-
* Now there is a link (next to the wiki link) to the source of each page unless the page was programmatically generated.
|
|
43
|
-
|
|
44
|
-
<b>24.06.2005 - webgen 0.3.5 released!!!</b>
|
|
45
|
-
|
|
46
|
-
Major changes:
|
|
47
|
-
|
|
48
|
-
* Now using cmdparse version 1.0.3!
|
|
49
|
-
* New CLI command "clean" for deleting the generated or all files from the output directory
|
|
50
|
-
* Restructured menu tag -> five different menu styles now available (see <a href="{relocatable: documentation/plugins/menustyles}">Menu Styles</a>)
|
|
51
|
-
* New plugin <a href="{relocatable: documentation/plugins/coreplugins/resourcemanager.page}">ResourceManager</a> for defining resources
|
|
52
|
-
* New plugin <a href="{relocatable: documentation/plugins/tags/resource.page}">Resource Tag</a> for accessing resources
|
|
53
|
-
* Pages files can now be referenced in @relocatable@ tag and backing files with a standardified name (see <a href="{relocatable: documentation/plugins/filehandlers/page.page#naming}">here</a>), despite an eventually self defined naming scheme
|
|
54
|
-
* New parameters: <a href="{relocatable: documentation/plugins/tags/langbar.page}">LangbarTag:showOwnLang</a>
|
|
55
|
-
* Changed paramters: <a href="{relocatable: documentation/plugins/filehandlers/page.page}">PageFileHandler:validator</a> (now deactivated by default)
|
|
56
|
-
* Fixed bugs
|
|
57
|
-
|
|
58
|
-
<b>12.05.2005 - webgen 0.3.4 released!!!</b>
|
|
59
|
-
|
|
60
|
-
Major changes:
|
|
61
|
-
|
|
62
|
-
* FileHandler now uses path patterns and/or extensions for determining which files to process !
|
|
63
|
-
* ERB (embedded ruby) can now be used in templates and page files (see <a href="{relocatable: documentation/plugins/filehandlers/page.page}">PageFileHandler</a>)!
|
|
64
|
-
* Relocatable tag now accepts complex URIs (URIs with query and fragment part, absolute URIs)
|
|
65
|
-
* Changed meta info name *menuOrder* to *orderInfo* (e.g. used for specifying order information for menus) -- you have to adapt your page and backing files!!!
|
|
66
|
-
* New parameters: <a href="{relocatable: documentation/plugins/filehandlers/page.page}">PageFileHandler:useERB</a>
|
|
67
|
-
* Changed parameters: <a href="{relocatable: documentation/plugins/filehandlers}">FileHandler:ignorePaths</a>, <a href="{relocatable: documentation/plugins/filehandlers/copy.page}">CopyFileHandler:paths</a>
|
|
68
|
-
* New page describing meta information items used by plugins
|
|
69
|
-
* Fixed bugs
|
|
70
|
-
|
|
71
|
-
<b>21.04.2005 - webgen 0.3.3 released!!!</b>
|
|
72
|
-
|
|
73
|
-
Major changes:
|
|
74
|
-
|
|
75
|
-
* New command line interface based on "CommandParser":http://cmdparse.rubyforge.org
|
|
76
|
-
* Now you can let webgen create the basic directories and files by executing @webgen create my_site@
|
|
77
|
-
* New logging plugin lets you have more control over logging and log files
|
|
78
|
-
* Now each website can have a plugin directory
|
|
79
|
-
* New parameters for: <a href="{relocatable: documentation/plugins/tags/wikilink.page}">wikilink</a>
|
|
80
|
-
* Changed format of backing files -> have a look at the <a href="{relocatable: documentation/plugins/filehandlers/backing.page}">documentation</a>!
|
|
81
|
-
* Removed obsolete Extension Loader plugin
|
|
82
|
-
* Fixed bugs
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<b>17.03.2005 - webgen 0.3.2 released!!!</b>
|
|
86
|
-
|
|
87
|
-
Bug fix release for bug #1637 and other bugs
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
<b>16.03.2005 - webgen 0.3.1 released!!!</b>
|
|
91
|
-
|
|
92
|
-
Major changes:
|
|
93
|
-
|
|
94
|
-
* Better DefaultLayouter for image galleries (<a href="{relocatable: Screenshots_1.page}">online demo</a>)
|
|
95
|
-
* Output names for page files now customizable (see <a href="{relocatable: documentation/plugins/filehandlers/page.page}">PageFileHandler</a>)
|
|
96
|
-
* On-the-fly creation of thumbnails for images with RMagick
|
|
97
|
-
* New tags: <a href="{relocatable: documentation/plugins/tags/sitemap.page}">sitemap</a>
|
|
98
|
-
* Tag @lang@ renamed, new name @langbar@!
|
|
99
|
-
* New parameters for @menu@ tag
|
|
100
|
-
* Automatic checking of HTML files on their validness
|
|
101
|
-
* Fixed bugs
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
<b>21.02.2005 - webgen 0.3.0 released!!!</b>
|
|
105
|
-
|
|
106
|
-
Major changes:
|
|
107
|
-
|
|
108
|
-
* Textile, Markdown, RDOC and HTML as content format supported!!!
|
|
109
|
-
* New tags: <a href="{relocatable: documentation/plugins/tags/wikilink.page}">wikilink</a>
|
|
110
|
-
* Improved plugin system
|
|
111
|
-
* On-the-fly creation of new tags
|
|
112
|
-
* Fixed bugs
|
|
113
|
-
* Improved online documentation: pages on file handlers and tags now show parameters and other
|
|
114
|
-
additional info
|
|
115
|
-
* Added comprehensive test suite
|
|
116
|
-
* and more...
|
|
117
26
|
|
|
118
|
-
h2.
|
|
27
|
+
h2. Author
|
|
119
28
|
|
|
120
|
-
|
|
29
|
+
* *Thomas Leitner*
|
|
30
|
+
* Web: "http://webgen.rubyforge.org":http://webgen.rubyforge.org
|
|
31
|
+
* e-Mail: "t_leitner@gmx.at":mailto:t_leitner@gmx.at
|
|
32
|
+
* GPG Key-Id: 0xD942E7F6
|
data/doc/src/news.page
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: News
|
|
3
|
+
inMenu: true
|
|
4
|
+
---
|
|
5
|
+
h2. News
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
h3(#news-2007-01-05). 05.01.2007 - webgen 0.4.0
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
This is a major release with many updates to the webgen core, the plugins and the documentation.
|
|
12
|
+
Plugins written for prior version won't work with this one anymore. However, changing them to work
|
|
13
|
+
again is easy. As an upgrade guide is currently not available have a look at webgen plugins and the
|
|
14
|
+
API documentation to see how to do upgrade plugins.
|
|
15
|
+
|
|
16
|
+
Major changes:
|
|
17
|
+
|
|
18
|
+
* New website layout :-)
|
|
19
|
+
* webgen now includes many <a href="{relocatable: examples/website_styles}">website styles</a> which can be used out of the box!
|
|
20
|
+
* Template files have the same format as page files now and can be nested!
|
|
21
|
+
* Speed-up through caching of node information
|
|
22
|
+
* New and cool gallery style
|
|
23
|
+
* New content converter plugin ({plugin: ContentConverter/XmlBuilder})
|
|
24
|
+
* New plugin for syntax highlighting ({plugin: Misc/SyntaxHighlighter})
|
|
25
|
+
* Many changes to the core (plugin system revised, webgen can now be used from other Ruby applications directly, faster node resolution, hooks are now spelled with only lowercase letters, ...)
|
|
26
|
+
* Structure of meta information @blocks@ changed
|
|
27
|
+
* New meta information @linkAttrs@ for setting additional attributes on links
|
|
28
|
+
* Handling and structure of meta information backing file changed
|
|
29
|
+
* Evaluation of page files changed (first converted to HTML, then ERB, then webgen tags)
|
|
30
|
+
* "Static" menus now available
|
|
31
|
+
* New sub-commands for the webgen command
|
|
32
|
+
* Gallery editor application deprecated.
|
|
33
|
+
* Many tests have been added.
|
|
34
|
+
* Documentation on the homepage as well as the API documentation is now more complete
|
|
35
|
+
* Fixed many bugs
|
|
36
|
+
* *Many other changes*
|
|
37
|
+
|
|
38
|
+
For detailed information have a look at the ChangeLog file included in the webgen distribution!
|
|
39
|
+
|
|
40
|
+
*Upcoming features:*
|
|
41
|
+
|
|
42
|
+
* More documentation
|
|
43
|
+
* Blogging plugins
|
|
44
|
+
* RSS generation plugins
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
h3(#news-2005-12-29). 29.12.2005 - webgen 0.3.8
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
Bug fix release
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
h3(#news-2005-11-27). 27.11.2005 - webgen 0.3.7
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
Major changes:
|
|
57
|
+
|
|
58
|
+
* Now using cmdparse version 2.0.0!
|
|
59
|
+
* %{color:red}Attention%: For unified naming in reference to image galleries, I have removed all occurences of the word "picture" from the code and documentation and replaced it with "image". Therefore you may need to adapt your code, especially custom gallery layouters!
|
|
60
|
+
* %{color:red}Attention%: Many documentation and library files have been renamed for better consistency! Custom plugins may have to be adapted!
|
|
61
|
+
* New application for managing image galleries (only alpha quality currently!)
|
|
62
|
+
* Smileys are now optionally replaced with emoticons (<notextile>:-) ;-) :'-( 8-)</notextile>, several different emoticon packs available) -> see {plugin: Misc/SmileyReplacer}
|
|
63
|
+
* <a href="{relocatable: documentation/extending_webgen.page}">Site specific commands</a> (used in command line processing) can now be used
|
|
64
|
+
* New plugin {plugin: Tag/Download} for nice download links
|
|
65
|
+
* New parameters: PageFileHandler:defaultPageMetaData, SitemapTag:honorInMenu
|
|
66
|
+
* Removed parameters: PageFileHandler:useERB, PageFileHandler:defaultContentFormat
|
|
67
|
+
* Renamed tag <b>navbar</b> to <b>breadcrumbTrail</b>
|
|
68
|
+
* Images in image galleries can now be ordered by specifying the @orderInfo@ meta information
|
|
69
|
+
* The use of directory index files is now optional: by setting the parameter File/DirectoryHandler:indexFile to nil directory index files are not used
|
|
70
|
+
* Languages can now be specified using 2-char ISO-639-1 codes or 3-char ISO-639-2 codes
|
|
71
|
+
* Now there is a link (next to the wiki link) to the source of each page unless the page was programmatically generated.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
h3(#news-2005-06-24). 24.06.2005 - webgen 0.3.5
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
Major changes:
|
|
78
|
+
|
|
79
|
+
* Now using cmdparse version 1.0.3!
|
|
80
|
+
* New CLI command "clean" for deleting the generated or all files from the output directory
|
|
81
|
+
* Restructured menu tag -> five different menu styles now available (see {plugin: MenuStyle})
|
|
82
|
+
* New plugin {plugin: Core/ResourceManager} for defining resources
|
|
83
|
+
* New plugin {plugin: Tag/Resource} for accessing resources
|
|
84
|
+
* Pages files can now be referenced in @relocatable@ tag and backing files with a standardified name, despite an eventually self defined naming scheme
|
|
85
|
+
* New parameters: LangbarTag:showOwnLang
|
|
86
|
+
* Changed paramters: PageFileHandler:validator (now deactivated by default)
|
|
87
|
+
* Fixed bugs
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
h3(#news-2005-05-12). 12.05.2005 - webgen 0.3.4
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
Major changes:
|
|
94
|
+
|
|
95
|
+
* FileHandler now uses path patterns and/or extensions for determining which files to process !
|
|
96
|
+
* ERB (embedded ruby) can now be used in templates and page files !
|
|
97
|
+
* Relocatable tag now accepts complex URIs (URIs with query and fragment part, absolute URIs)
|
|
98
|
+
* Changed meta info name *menuOrder* to *orderInfo* (e.g. used for specifying order information for menus) -- you have to adapt your page and backing files!!!
|
|
99
|
+
* New parameters: PageFileHandler:useERB
|
|
100
|
+
* Changed parameters: FileHandler:ignorePaths, CopyFileHandler:paths
|
|
101
|
+
* New page describing meta information items used by plugins
|
|
102
|
+
* Fixed bugs
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
h3(#news-2005-04-21). 21.04.2005 - webgen 0.3.3
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
Major changes:
|
|
109
|
+
|
|
110
|
+
* New command line interface based on "CommandParser":http://cmdparse.rubyforge.org
|
|
111
|
+
* Now you can let webgen create the basic directories and files by executing @webgen create my_site@
|
|
112
|
+
* New logging plugin lets you have more control over logging and log files
|
|
113
|
+
* Now each website can have a plugin directory
|
|
114
|
+
* New parameters for: Tag/WikiLink
|
|
115
|
+
* Changed format of backing files -> have a look at the documentation
|
|
116
|
+
* Removed obsolete Extension Loader plugin
|
|
117
|
+
* Fixed bugs
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
h3(#news-2005-03-17). 17.03.2005 - webgen 0.3.2
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
Bug fix release for bug #1637 and other bugs
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
h3(#news-2005-03-16). 16.03.2005 - webgen 0.3.1
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
Major changes:
|
|
130
|
+
|
|
131
|
+
* Better DefaultLayouter for image galleries
|
|
132
|
+
* Output names for page files now customizable (see {plugin: File/PageHandler})
|
|
133
|
+
* On-the-fly creation of thumbnails for images with RMagick
|
|
134
|
+
* New tags: {plugin: Tag/Sitemap}
|
|
135
|
+
* Tag @lang@ renamed, new name @langbar@!
|
|
136
|
+
* New parameters for @menu@ tag
|
|
137
|
+
* Automatic checking of HTML files on their validness
|
|
138
|
+
* Fixed bugs
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
h3(#news-2005-02-21). 21.02.2005 - webgen 0.3.0
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
Major changes:
|
|
145
|
+
|
|
146
|
+
* Textile, Markdown, RDOC and HTML as content format supported!!!
|
|
147
|
+
* New tags: {plugin: Tag/WikiLink}
|
|
148
|
+
* Improved plugin system
|
|
149
|
+
* On-the-fly creation of new tags
|
|
150
|
+
* Fixed bugs
|
|
151
|
+
* Improved online documentation: pages on file handlers and tags now show parameters and other
|
|
152
|
+
additional info
|
|
153
|
+
* Added comprehensive test suite
|
|
154
|
+
* and more...
|
data/lib/webgen/cli.rb
ADDED
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
#
|
|
4
|
+
# $Id: cli.rb 579 2007-01-04 20:48: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
|
+
require 'rbconfig'
|
|
24
|
+
require 'fileutils'
|
|
25
|
+
require 'cmdparse'
|
|
26
|
+
require 'webgen/website'
|
|
27
|
+
|
|
28
|
+
module Webgen
|
|
29
|
+
|
|
30
|
+
class Color
|
|
31
|
+
|
|
32
|
+
@@colors = {:bold => [0, 1], :green => [0, 32], :lblue => [1, 34], :lred => [1, 31], :reset => [0, 0]}
|
|
33
|
+
|
|
34
|
+
def self.colorify
|
|
35
|
+
@@colors.each do |color, values|
|
|
36
|
+
module_eval <<-EOF
|
|
37
|
+
def Color.#{color.to_s}( text = nil )
|
|
38
|
+
"\e[#{values[0]};#{values[1]}m" + (text.nil? ? '' : text + self.reset)
|
|
39
|
+
end
|
|
40
|
+
EOF
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.method_missing( id, text = nil )
|
|
45
|
+
text.to_s
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class CliUtils
|
|
52
|
+
|
|
53
|
+
def self.format( content, indent = 0, width = 100 )
|
|
54
|
+
content ||= ''
|
|
55
|
+
return [content] if content.length + indent <= width
|
|
56
|
+
lines = []
|
|
57
|
+
while content.length + indent > width
|
|
58
|
+
index = content[0..(width-indent-1)].rindex(' ')
|
|
59
|
+
lines << (lines.empty? ? '' : ' '*indent) + content[0..index]
|
|
60
|
+
content = content[index+1..-1]
|
|
61
|
+
end
|
|
62
|
+
lines << ' '*indent + content unless content.strip.empty?
|
|
63
|
+
lines
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def self.headline( text, indent = 2 )
|
|
67
|
+
' '*indent + "#{Color.bold( text )}"
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def self.section( text, ljustlength = 0, indent = 4, color = :green )
|
|
71
|
+
' '*indent + "#{Color.send( color, text )}".ljust( ljustlength - indent + Color.send( color ).length + Color.reset.length )
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def self.dirinfo_output( opts, name, dirinfo )
|
|
75
|
+
ljust = 15 + opts.summary_indent.length
|
|
76
|
+
opts.separator CliUtils.section( 'Name', ljust, opts.summary_indent.length + 2 ) + "#{Color.lred( name )}"
|
|
77
|
+
|
|
78
|
+
dirinfo.infos.sort.each do |name, value|
|
|
79
|
+
desc = CliUtils.format( value, ljust )
|
|
80
|
+
opts.separator CliUtils.section( name.capitalize, ljust, opts.summary_indent.length + 2 ) + desc.shift
|
|
81
|
+
desc.each {|line| opts.separator line}
|
|
82
|
+
end
|
|
83
|
+
opts.separator ''
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class CreateCommand < CmdParse::Command
|
|
90
|
+
|
|
91
|
+
def initialize
|
|
92
|
+
super( 'create', false )
|
|
93
|
+
self.short_desc = "Creates the basic directories and files for webgen."
|
|
94
|
+
self.description = CliUtils.format( "\nIf the global verbosity level is set to 0 or 1, the created files are listed." )
|
|
95
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
96
|
+
opts.separator "Options:"
|
|
97
|
+
opts.on( '-t', '--template TEMPLATE', Webgen::WebSiteTemplate.entries.keys, 'Specify the template which should be used' ) {|@template|}
|
|
98
|
+
opts.on( '-s', '--style STYLE', Webgen::WebSiteStyle.entries.keys, 'Specify the style which should be used' ) {|@style|}
|
|
99
|
+
opts.separator ""
|
|
100
|
+
opts.separator "Arguments:"
|
|
101
|
+
opts.separator opts.summary_indent + "DIR: the base directory for the website"
|
|
102
|
+
opts.separator ""
|
|
103
|
+
opts.separator "Available templates and styles:"
|
|
104
|
+
opts.separator ""
|
|
105
|
+
opts.separator opts.summary_indent + "#{Color.bold( 'Templates' )}"
|
|
106
|
+
Webgen::WebSiteTemplate.entries.sort.each {|name, entry| CliUtils.dirinfo_output( opts, name, entry ) }
|
|
107
|
+
opts.separator opts.summary_indent + "#{Color.bold( 'Styles' )}"
|
|
108
|
+
Webgen::WebSiteStyle.entries.sort.each {|name, entry| CliUtils.dirinfo_output( opts, name, entry ) }
|
|
109
|
+
end
|
|
110
|
+
@template = 'default'
|
|
111
|
+
@style = 'default'
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def usage
|
|
115
|
+
"Usage: #{commandparser.program_name} [global options] create [options] DIR"
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def execute( args )
|
|
119
|
+
if args.length == 0
|
|
120
|
+
raise OptionParser::MissingArgument.new( 'DIR' )
|
|
121
|
+
else
|
|
122
|
+
files = Webgen::WebSite.create_website( args[0], @template, @style )
|
|
123
|
+
if (0..1) === commandparser.verbosity
|
|
124
|
+
puts "The following files were created:"
|
|
125
|
+
puts files.collect {|f| "- " + f }.join("\n")
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
class UseCommand < CmdParse::Command
|
|
133
|
+
|
|
134
|
+
def initialize( cmdparser )
|
|
135
|
+
super( 'use', true )
|
|
136
|
+
self.short_desc = "Changes the used website or gallery styles"
|
|
137
|
+
|
|
138
|
+
@force = false
|
|
139
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
140
|
+
opts.separator "Options:"
|
|
141
|
+
opts.on( '-f', '--[no-]force', 'If specified, existing files are overwritten without asking.' ) {|@force|}
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Use website style command.
|
|
145
|
+
useWebsiteStyle = CmdParse::Command.new( 'website_style', false )
|
|
146
|
+
useWebsiteStyle.short_desc = "Changes the used website style"
|
|
147
|
+
useWebsiteStyle.description =
|
|
148
|
+
CliUtils.format("\nCopies the style files for the website style STYLE to the website " +
|
|
149
|
+
"directory defined by the global directory option, overwritting existing " +
|
|
150
|
+
"files. If the global verbosity level is set to 0 or 1, the copied files are listed.")
|
|
151
|
+
useWebsiteStyle.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
152
|
+
opts.separator "Available styles:"
|
|
153
|
+
opts.separator ""
|
|
154
|
+
Webgen::WebSiteStyle.entries.sort.each {|name, entry| CliUtils.dirinfo_output( opts, name, entry ) }
|
|
155
|
+
end
|
|
156
|
+
def useWebsiteStyle.usage
|
|
157
|
+
"Usage: #{commandparser.program_name} [global options] use website_style STYLE"
|
|
158
|
+
end
|
|
159
|
+
useWebsiteStyle.set_execution_block do |args|
|
|
160
|
+
if args.length == 0
|
|
161
|
+
raise OptionParser::MissingArgument.new( 'STYLE' )
|
|
162
|
+
else
|
|
163
|
+
if @force || ask_overwrite
|
|
164
|
+
files = Webgen::WebSite.use_website_style( cmdparser.directory, args[0] )
|
|
165
|
+
if (0..1) === cmdparser.verbosity
|
|
166
|
+
puts "The following files were created or overwritten:"
|
|
167
|
+
puts files.collect {|f| "- " + f }.join("\n")
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
self.add_command( useWebsiteStyle )
|
|
173
|
+
|
|
174
|
+
# Use gallery style command.
|
|
175
|
+
useGalleryStyle = CmdParse::Command.new( 'gallery_style', false )
|
|
176
|
+
useGalleryStyle.short_desc = "Changes the used gallery style"
|
|
177
|
+
useGalleryStyle.description =
|
|
178
|
+
CliUtils.format("\nCopies the gallery templates for the gallery style STYLE to the website " +
|
|
179
|
+
"directory defined by the global directory option, overwritting existing files. " +
|
|
180
|
+
"If the global verbosity level is set to 0 or 1, the copied files are listed.")
|
|
181
|
+
useGalleryStyle.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
182
|
+
opts.separator "Available styles:"
|
|
183
|
+
opts.separator ""
|
|
184
|
+
Webgen::GalleryStyle.entries.sort.each {|name, entry| CliUtils.dirinfo_output( opts, name, entry ) }
|
|
185
|
+
end
|
|
186
|
+
def useGalleryStyle.usage
|
|
187
|
+
"Usage: #{commandparser.program_name} [global options] use gallery_style STYLE"
|
|
188
|
+
end
|
|
189
|
+
useGalleryStyle.set_execution_block do |args|
|
|
190
|
+
if args.length == 0
|
|
191
|
+
raise OptionParser::MissingArgument.new( 'STYLE' )
|
|
192
|
+
else
|
|
193
|
+
if @force || ask_overwrite
|
|
194
|
+
files = Webgen::WebSite.use_gallery_style( cmdparser.directory, args[0] )
|
|
195
|
+
if (0..1) === cmdparser.verbosity
|
|
196
|
+
puts "The following files were created or overwritten:"
|
|
197
|
+
puts files.collect {|f| "- " + f }.join("\n")
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
self.add_command( useGalleryStyle )
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
#######
|
|
206
|
+
private
|
|
207
|
+
#######
|
|
208
|
+
|
|
209
|
+
def ask_overwrite
|
|
210
|
+
printf "Existing files may get overwritten, procede (yes/no)? : "
|
|
211
|
+
$stdin.gets =~ /y|yes/
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
class ShowCommand < CmdParse::Command
|
|
218
|
+
|
|
219
|
+
def initialize( cmdparser )
|
|
220
|
+
super( 'show', true )
|
|
221
|
+
self.short_desc = "Shows various information"
|
|
222
|
+
|
|
223
|
+
# Show plugins command
|
|
224
|
+
showPlugins = CmdParse::Command.new( 'plugins', false )
|
|
225
|
+
showPlugins.short_desc = "Shows the available plugins"
|
|
226
|
+
showPlugins.set_execution_block do |args|
|
|
227
|
+
puts "List of loaded plugins:"
|
|
228
|
+
headers = Hash.new {|h,k| h[k] = (k.nil? ? "Other Plugins" : k.gsub(/([A-Z][a-z])/, ' \1').strip) }
|
|
229
|
+
|
|
230
|
+
header = ''
|
|
231
|
+
cmdparser.website.manager.plugin_classes.sort {|a, b| a.plugin_name <=> b.plugin_name }.each do |plugin|
|
|
232
|
+
newHeader = headers[plugin.plugin_name[/^.*?(?=\/)/]]
|
|
233
|
+
unless newHeader == header
|
|
234
|
+
puts "\n" + CliUtils.headline( newHeader )
|
|
235
|
+
header = newHeader
|
|
236
|
+
end
|
|
237
|
+
puts CliUtils.section( plugin.plugin_name[/\w+$/], 33 ) + CliUtils.format( plugin.config.infos[:summary], 33 ).join("\n")
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
self.add_command( showPlugins )
|
|
241
|
+
|
|
242
|
+
# Show config command
|
|
243
|
+
showConfig = CmdParse::Command.new( 'config', false )
|
|
244
|
+
showConfig.short_desc = "Shows information like the parameters for all or the matched plugins"
|
|
245
|
+
showConfig.description =
|
|
246
|
+
CliUtils.format( "\nIf no argument is provided, all plugins and their information are listed. If " +
|
|
247
|
+
"an argument is specified, all plugin names that match the argument are listed." ).join("\n")
|
|
248
|
+
showConfig.set_execution_block do |args|
|
|
249
|
+
puts "List of plugin informations:"
|
|
250
|
+
puts
|
|
251
|
+
|
|
252
|
+
cmdparser.website.manager.plugins.sort {|a, b| a[0] <=> b[0] }.each do |name, plugin|
|
|
253
|
+
next if args.length > 0 && /#{args[0]}/i !~ name
|
|
254
|
+
|
|
255
|
+
config = plugin.class.config
|
|
256
|
+
puts CliUtils.headline( name )
|
|
257
|
+
ljust = 25
|
|
258
|
+
|
|
259
|
+
puts CliUtils.section( 'Summary', ljust ) + CliUtils.format( config.infos[:summary], ljust ).join("\n") if config.infos[:summary]
|
|
260
|
+
puts CliUtils.section( 'Author', ljust ) + CliUtils.format( config.infos[:author], ljust ).join("\n") if config.infos[:author]
|
|
261
|
+
puts CliUtils.section( 'Description', ljust ) + CliUtils.format( config.infos[:description], ljust ).join("\n") if config.infos[:description]
|
|
262
|
+
puts CliUtils.section( 'Tag names', ljust ) + plugin.tags.join(", ") if plugin.respond_to?( :tags )
|
|
263
|
+
puts CliUtils.section( 'Handles paths', ljust ) + plugin.path_patterns.collect {|r,f| f}.inspect if plugin.respond_to?( :path_patterns )
|
|
264
|
+
puts CliUtils.section( 'Dependencies', ljust ) + config.dependencies.join(', ') if !config.dependencies.empty?
|
|
265
|
+
|
|
266
|
+
if !config.params.empty?
|
|
267
|
+
puts "\n" + CliUtils.section( 'Parameters' )
|
|
268
|
+
config.params.sort.each do |name, item|
|
|
269
|
+
print "\n" + CliUtils.section( 'Parameter', ljust, 6 )
|
|
270
|
+
puts Color.lred( item.name ) + ": " + Color.lblue( plugin.instance_eval {param( name )}.inspect ) +
|
|
271
|
+
" (" + item.default.inspect + ")"
|
|
272
|
+
puts CliUtils.section( 'Description', ljust, 6 ) + CliUtils.format( item.description, ljust ).join("\n")
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
otherinfos = config.infos.select {|k,v| ![:name, :author, :summary, :description, :tags, :path_patterns].include?( k ) }
|
|
277
|
+
puts "\n" +CliUtils.section( 'Other Information' ) unless otherinfos.empty?
|
|
278
|
+
otherinfos.each {|name, value| puts CliUtils.section( name.to_s.tr('_', ' '), ljust, 6 ) + value.inspect }
|
|
279
|
+
|
|
280
|
+
puts
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
self.add_command( showConfig )
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
class CheckCommand < CmdParse::Command
|
|
290
|
+
|
|
291
|
+
def initialize( cmdparser )
|
|
292
|
+
super( 'check', true )
|
|
293
|
+
self.short_desc = "Checks things like validity of the config file or the availability of optional libraries"
|
|
294
|
+
|
|
295
|
+
# Check configuration file command
|
|
296
|
+
checkConfig = CmdParse::Command.new( 'config', false )
|
|
297
|
+
checkConfig.short_desc = "Checks the validity of the configuration and outputs the used options"
|
|
298
|
+
checkConfig.set_execution_block do |args|
|
|
299
|
+
begin
|
|
300
|
+
if File.exists?( File.join( cmdparser.directory, 'config.yaml' ) )
|
|
301
|
+
print CliUtils.section( "Checking configuration file syntax...", 50, 0, :bold )
|
|
302
|
+
config_file = ConfigurationFile.new( File.join( cmdparser.directory, 'config.yaml' ) )
|
|
303
|
+
puts Color.green( 'OK' )
|
|
304
|
+
|
|
305
|
+
puts CliUtils.section( "Checking parameters...", 0, 0, :bold )
|
|
306
|
+
config_file.config.each do |plugin_name, params|
|
|
307
|
+
params.each do |param_name, value|
|
|
308
|
+
print CliUtils.section( "#{plugin_name}:#{param_name}", 50, 2, :reset )
|
|
309
|
+
if cmdparser.website.manager.plugin_class_for_name( plugin_name ).nil?
|
|
310
|
+
puts Color.lred( 'NOT OK' ) + ': no such plugin'
|
|
311
|
+
else
|
|
312
|
+
begin
|
|
313
|
+
cmdparser.website.manager.param_for_plugin( plugin_name, param_name )
|
|
314
|
+
puts Color.green( 'OK' )
|
|
315
|
+
rescue PluginParamNotFound => e
|
|
316
|
+
puts Color.lred( 'NOT OK' ) + ': no such parameter'
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
end
|
|
321
|
+
else
|
|
322
|
+
print CliUtils.section( "No configuration file found!", 50, 0, :bold )
|
|
323
|
+
end
|
|
324
|
+
rescue ConfigurationFileInvalid => e
|
|
325
|
+
puts Color.lred( 'NOT OK' ) + ': ' + e.message
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
self.add_command( checkConfig, true )
|
|
329
|
+
|
|
330
|
+
# Check optional libraries
|
|
331
|
+
checkLibs = CmdParse::Command.new( 'libs', false )
|
|
332
|
+
checkLibs.short_desc = "Checks the availability of optional libraries used by plugins"
|
|
333
|
+
checkLibs.set_execution_block do |args|
|
|
334
|
+
puts CliUtils.format( "List of optional libraries (the info line specifies which functionality will be available " +
|
|
335
|
+
"if the needed gems are installed):" ).join("\n")
|
|
336
|
+
puts
|
|
337
|
+
|
|
338
|
+
cmdparser.website.manager.plugin_loaders.each do |loader|
|
|
339
|
+
loader.optional_parts.sort.each do |name, options|
|
|
340
|
+
puts CliUtils.headline( name )
|
|
341
|
+
puts CliUtils.section( 'Info', 25 ) + CliUtils.format( options[:info], 25 ).join("\n")
|
|
342
|
+
puts CliUtils.section( 'Needed gems', 25 ) + options[:needed_gems].join( ', ' )
|
|
343
|
+
puts CliUtils.section( 'Loaded', 25 ) + ( options[:loaded] ? Color.green( 'yes' ) : Color.lred( 'no' ) )
|
|
344
|
+
puts CliUtils.section( 'Error message', 25 ) + CliUtils.format( options[:error_msg], 25 ).join("\n") unless options[:loaded]
|
|
345
|
+
puts
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
self.add_command( checkLibs )
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
class CommandParser < CmdParse::CommandParser
|
|
356
|
+
|
|
357
|
+
VERBOSITY_UNUSED = -1
|
|
358
|
+
|
|
359
|
+
attr_reader :directory
|
|
360
|
+
attr_reader :website
|
|
361
|
+
attr_reader :verbosity
|
|
362
|
+
attr_reader :config_file
|
|
363
|
+
|
|
364
|
+
def initialize
|
|
365
|
+
super( true )
|
|
366
|
+
@directory = Dir.pwd
|
|
367
|
+
@verbosity = VERBOSITY_UNUSED
|
|
368
|
+
|
|
369
|
+
self.program_name = "webgen"
|
|
370
|
+
self.program_version = Webgen::VERSION
|
|
371
|
+
self.options = CmdParse::OptionParserWrapper.new do |opts|
|
|
372
|
+
opts.separator "Global options:"
|
|
373
|
+
opts.on( "--directory DIR", "-d", String, "The website directory, if none specified, current directory is used." ) {|@directory|}
|
|
374
|
+
opts.on( "--verbosity LEVEL", "-V", Integer, "The verbosity level (0-3)" ) {|@verbosity|}
|
|
375
|
+
end
|
|
376
|
+
|
|
377
|
+
# Run command
|
|
378
|
+
run = CmdParse::Command.new( 'run', false )
|
|
379
|
+
run.short_desc = "Runs webgen, ie. generates the HTML files"
|
|
380
|
+
run.description = CliUtils.format("\nWith no arguments, renders the whole site. If file names are " +
|
|
381
|
+
"specified (don't include the path/to/src/ part), only those are rendered." )
|
|
382
|
+
run.set_execution_block do |args|
|
|
383
|
+
@website.render( args )
|
|
384
|
+
end
|
|
385
|
+
self.add_command( run, true )
|
|
386
|
+
|
|
387
|
+
self.add_command( CreateCommand.new )
|
|
388
|
+
self.add_command( ShowCommand.new( self ) )
|
|
389
|
+
self.add_command( UseCommand.new( self ) )
|
|
390
|
+
self.add_command( CmdParse::HelpCommand.new )
|
|
391
|
+
self.add_command( CmdParse::VersionCommand.new )
|
|
392
|
+
self.add_command( CheckCommand.new( self ) )
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
def param_for_plugin( plugin_name, param )
|
|
396
|
+
if [plugin_name, param] == ['Core/Configuration', 'loggerLevel'] && @verbosity != VERBOSITY_UNUSED
|
|
397
|
+
@verbosity
|
|
398
|
+
elsif @config_file
|
|
399
|
+
@config_file.param_for_plugin( plugin_name, param )
|
|
400
|
+
else
|
|
401
|
+
Webgen::PluginParamValueNotFound
|
|
402
|
+
end
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
def parse( argv = ARGV )
|
|
406
|
+
super do |level, cmd_name|
|
|
407
|
+
if level == 0
|
|
408
|
+
@config_file = Webgen::WebSite.load_config_file( @directory )
|
|
409
|
+
@website = Webgen::WebSite.new( @directory, self )
|
|
410
|
+
@website.manager.init
|
|
411
|
+
@website.manager.plugins.
|
|
412
|
+
each {|name,plugin| self.add_command( plugin ) if plugin.kind_of?( Webgen::CommandPlugin ) }
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
# Main program for the webgen CLI.
|
|
421
|
+
def self.cli_main
|
|
422
|
+
Color.colorify if $stdout.isatty && !Config::CONFIG['arch'].include?( 'mswin32' )
|
|
423
|
+
cmdparser = CommandParser.new
|
|
424
|
+
cmdparser.parse
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
end
|