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
@@ -0,0 +1,134 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'webgen/test'
|
3
|
+
|
4
|
+
class DirNodeTest < Webgen::PluginTestCase
|
5
|
+
|
6
|
+
plugin_files [
|
7
|
+
'webgen/plugins/filehandlers/directory.rb'
|
8
|
+
]
|
9
|
+
|
10
|
+
def test_accessors
|
11
|
+
dir = @wrapper::FileHandlers::DirectoryHandler::DirNode.new( nil, 'dir/', {'test'=>'test'} )
|
12
|
+
assert_equal( 'Dir', dir['title'] )
|
13
|
+
assert_equal( 'test', dir['test'] )
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_order_info
|
17
|
+
dir = @wrapper::FileHandlers::DirectoryHandler::DirNode.new( nil, 'dir/' )
|
18
|
+
dir.node_info[:processor] = @manager['File/DirectoryHandler']
|
19
|
+
|
20
|
+
assert_equal( 0, dir.order_info )
|
21
|
+
|
22
|
+
index = Node.new( dir, 'index.page' )
|
23
|
+
dir.meta_info.delete( 'indexFile' )
|
24
|
+
assert_equal( 0, dir.order_info )
|
25
|
+
|
26
|
+
dir['indexFile'] = 'index.page'
|
27
|
+
index['orderInfo'] = 1
|
28
|
+
assert_equal( 0, dir.order_info )
|
29
|
+
|
30
|
+
dir['orderInfo'] = 2
|
31
|
+
assert_equal( 2, dir.order_info )
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_index_file
|
35
|
+
dir = @wrapper::FileHandlers::DirectoryHandler::DirNode.new( nil, 'dir/' )
|
36
|
+
dir.node_info[:processor] = @manager['File/DirectoryHandler']
|
37
|
+
|
38
|
+
assert_nil( dir['indexFile'] )
|
39
|
+
|
40
|
+
index = Node.new( dir, 'index.page' )
|
41
|
+
|
42
|
+
dir['indexFile'] = index
|
43
|
+
assert_equal( index, dir['indexFile'] )
|
44
|
+
|
45
|
+
dir['indexFile'] = 'index.page'
|
46
|
+
assert_equal( index, dir['indexFile'] )
|
47
|
+
|
48
|
+
dir['indexFile'] = 'index1.page'
|
49
|
+
assert_equal( nil, dir['indexFile'] )
|
50
|
+
dir['indexFile'] = 'index1.page'
|
51
|
+
index.path = 'index1.page'
|
52
|
+
assert_equal( index, dir['indexFile'] )
|
53
|
+
|
54
|
+
index.path = 'index.page'
|
55
|
+
dir['indexFile'] = nil
|
56
|
+
assert_equal( nil, dir['indexFile'] )
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
class DirectoryHandlerTest < Webgen::PluginTestCase
|
62
|
+
|
63
|
+
plugin_files [
|
64
|
+
'webgen/plugins/filehandlers/directory.rb',
|
65
|
+
base_fixture_path( 'tc_filehandler_filehandler/sample_plugin.rb' )
|
66
|
+
]
|
67
|
+
plugin_to_test 'File/DirectoryHandler'
|
68
|
+
|
69
|
+
def setup
|
70
|
+
super
|
71
|
+
@dirs = find_in_sample_site {|path| path =~ /\/$/ }.collect {|p| p.sub(/^#{sample_site( Webgen::SRC_DIR )}/, sample_site( 'out' ) )}
|
72
|
+
@root_dir = @dirs.min
|
73
|
+
@max_dir = @dirs.max
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_create_node
|
77
|
+
root = @plugin.create_node( @root_dir, nil, {} )
|
78
|
+
assert_equal( @plugin, root.node_info[:processor] )
|
79
|
+
assert_equal( @root_dir, root.node_info[:src] )
|
80
|
+
dir = @plugin.create_node( @max_dir, root, {'test'=>'yes'} )
|
81
|
+
assert_equal( 'yes', dir['test'] )
|
82
|
+
dir1 = @plugin.create_node( @max_dir, root, {'test'=>'no'} )
|
83
|
+
assert_equal( 'yes', dir1['test'] )
|
84
|
+
assert_same( dir, dir1 )
|
85
|
+
assert_equal( File.basename( @max_dir ).capitalize, dir['title'] )
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_write_node
|
89
|
+
root = @plugin.create_node( @root_dir, nil, {} )
|
90
|
+
root.path = @root_dir
|
91
|
+
dir_node = @plugin.create_node( @max_dir, root, {} )
|
92
|
+
dir_node.write_node
|
93
|
+
assert( File.directory?( dir_node.full_path ) )
|
94
|
+
ensure
|
95
|
+
FileUtils.rm_r( @root_dir, :force => true )
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_recursive_create_path
|
99
|
+
root = @plugin.create_node( @root_dir, nil, {} )
|
100
|
+
root.path = @root_dir
|
101
|
+
root.node_info[:src] = @root_dir
|
102
|
+
dir_node = @plugin.recursive_create_path( @max_dir.sub( /^#{@root_dir}/, '' ), root )
|
103
|
+
dir_node.write_node
|
104
|
+
assert( File.directory?( @max_dir ) )
|
105
|
+
ensure
|
106
|
+
FileUtils.rm_r( @root_dir, :force => true )
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_node_for_lang
|
110
|
+
# directory with index file
|
111
|
+
root = @manager['Core/FileHandler'].instance_eval { build_tree }
|
112
|
+
assert_equal( root.resolve_node( 'index.en.html' ), root.node_for_lang( Webgen::LanguageManager.language_for_code( 'en' ) ) )
|
113
|
+
assert_equal( root.resolve_node( 'index.de.html' ), root.node_for_lang( Webgen::LanguageManager.language_for_code( 'de' ) ) )
|
114
|
+
|
115
|
+
# directory without index file
|
116
|
+
dir1 = root.resolve_node( 'dir1' )
|
117
|
+
assert_equal( dir1, dir1.node_for_lang( Webgen::LanguageManager.language_for_code( 'de' ) ) )
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_link_from
|
121
|
+
root = @manager['Core/FileHandler'].instance_eval { build_tree }
|
122
|
+
|
123
|
+
file11 = root.resolve_node( 'dir1/file11.html' )
|
124
|
+
assert_equal( '<a href="../index.en.html"></a>', root.link_from( file11 ) )
|
125
|
+
assert_equal( '<span>TestLink</span>',
|
126
|
+
root.link_from( root.resolve_node( 'index.de.html' ), {:link_text => 'TestLink' } ) )
|
127
|
+
|
128
|
+
dir1 = root.resolve_node( 'dir1' )
|
129
|
+
assert_equal( '<a href="./">Dir1</a>', dir1.link_from( file11 ) )
|
130
|
+
assert_equal( '<a href="dir1/">TestLink</a>', dir1.link_from( root, {:link_text => 'TestLink' } ) )
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
@@ -0,0 +1,294 @@
|
|
1
|
+
require 'find'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'webgen/test'
|
4
|
+
require 'webgen/node'
|
5
|
+
require 'webgen/config'
|
6
|
+
|
7
|
+
class FileHandlerTest < Webgen::PluginTestCase
|
8
|
+
|
9
|
+
#TODO think about runtime depdencies (e.g. Configuration for Core/FileHandler)
|
10
|
+
# ie. ones which are not required for initializing, but for running
|
11
|
+
plugin_files [
|
12
|
+
'webgen/plugins/filehandlers/filehandler.rb',
|
13
|
+
'webgen/plugins/filehandlers/directory.rb',
|
14
|
+
fixture_path( 'sample_plugin.rb' ),
|
15
|
+
]
|
16
|
+
plugin_to_test 'Core/FileHandler'
|
17
|
+
|
18
|
+
def setup
|
19
|
+
@websiteDir = nil
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
23
|
+
def param_for_plugin( plugin_name, param )
|
24
|
+
if [plugin_name, param] == ['Core/Configuration', 'websiteDir'] && @websiteDir
|
25
|
+
@websiteDir
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_file_modified
|
32
|
+
modified = fixture_path( 'modified' )
|
33
|
+
unmodified = fixture_path( 'unmodified' )
|
34
|
+
|
35
|
+
assert( @plugin.file_modified?( unmodified, modified ) )
|
36
|
+
assert( !@plugin.file_modified?( unmodified, unmodified ) )
|
37
|
+
FileUtils.touch( modified )
|
38
|
+
assert( !@plugin.file_modified?( unmodified, modified ) )
|
39
|
+
assert( @plugin.file_modified?( modified, unmodified ) )
|
40
|
+
ensure
|
41
|
+
FileUtils.rm( modified, :force => true )
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_find_all_files
|
45
|
+
found_files = @plugin.instance_eval {find_all_files}
|
46
|
+
files = find_in_sample_site {|p| p != sample_site( Webgen::SRC_DIR ) + '/' }
|
47
|
+
assert_equal( files, found_files )
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_find_files_for_handlers
|
51
|
+
files_for_handlers = @plugin.instance_eval {find_files_for_handlers}
|
52
|
+
files = find_in_sample_site {|path| path =~ /\.page$/}
|
53
|
+
|
54
|
+
assert_equal( 2, files_for_handlers.length )
|
55
|
+
files_for_sample_handler = files_for_handlers.select {|r,p,f| p == @manager['SampleHandler']}
|
56
|
+
assert_not_nil( files_for_sample_handler )
|
57
|
+
assert_equal( files, files_for_sample_handler.first[2] )
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_create_root_node
|
61
|
+
srcDir = @manager.param_for_plugin( 'Core/Configuration', 'srcDir' ) + '/'
|
62
|
+
outDir = @manager.param_for_plugin( 'Core/Configuration', 'outDir' ) + '/'
|
63
|
+
|
64
|
+
dir_handler = @manager.plugins.delete( 'File/DirectoryHandler' )
|
65
|
+
root = @plugin.instance_eval {create_root_node}
|
66
|
+
assert_nil( root )
|
67
|
+
|
68
|
+
@manager.plugins['File/DirectoryHandler'] = dir_handler
|
69
|
+
root = @plugin.instance_eval {create_root_node}
|
70
|
+
assert_kind_of( Node, root )
|
71
|
+
assert_equal( '', root['title'] )
|
72
|
+
assert_equal( outDir, root.path )
|
73
|
+
assert_equal( root.path, root.full_path )
|
74
|
+
assert_equal( srcDir, root.node_info[:src] )
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_create_node_dir
|
78
|
+
dirs = find_in_sample_site {|path| File.directory?(path)}
|
79
|
+
|
80
|
+
root_node = @plugin.instance_eval {create_root_node}
|
81
|
+
dir_handler = @manager['File/DirectoryHandler']
|
82
|
+
|
83
|
+
max_dir = dirs.max
|
84
|
+
|
85
|
+
dir = @plugin.create_node( max_dir.sub( /^#{root_node.node_info[:src]}/, ''), root_node, dir_handler )
|
86
|
+
assert_not_nil( dir )
|
87
|
+
assert_equal( File.join( File.basename( max_dir ), '/' ), dir.path )
|
88
|
+
assert_equal( max_dir.sub(/^#{root_node.node_info[:src]}/, root_node.path), dir.full_path )
|
89
|
+
assert( dir.is_directory? )
|
90
|
+
|
91
|
+
n = root_node
|
92
|
+
while n.has_children?
|
93
|
+
assert( n.is_directory? )
|
94
|
+
assert_equal( 1, n.children.length, "node: #{n.children.collect{|c| c.path}.inspect}" )
|
95
|
+
n = n.children[0]
|
96
|
+
end
|
97
|
+
|
98
|
+
dir1 = @plugin.create_node( max_dir.sub( /^#{root_node.node_info[:src]}/, ''), root_node, dir_handler )
|
99
|
+
assert_same( dir, dir1 )
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_create_node_file
|
103
|
+
pages = find_in_sample_site {|path| path =~ /\.page$/}
|
104
|
+
|
105
|
+
root_node = @plugin.instance_eval {create_root_node}
|
106
|
+
dir_handler = @manager['File/DirectoryHandler']
|
107
|
+
page_handler = @manager['SampleHandler']
|
108
|
+
|
109
|
+
max_page = pages.max
|
110
|
+
page = @plugin.create_node( max_page.sub( /^#{root_node.node_info[:src]}/, ''), root_node, page_handler )
|
111
|
+
assert_not_nil( page )
|
112
|
+
max_page_outpath = File.join( File.dirname( max_page.sub(/^#{root_node.node_info[:src]}/, root_node.path) ),
|
113
|
+
page_handler.class.out_name( max_page ) )
|
114
|
+
assert_equal( max_page_outpath, page.full_path )
|
115
|
+
assert( page.is_file? )
|
116
|
+
|
117
|
+
page1 = @plugin.create_node( max_page.sub( /^#{root_node.node_info[:src]}/, ''), root_node, page_handler )
|
118
|
+
assert_same( page, page1 )
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_build_tree
|
122
|
+
outDir = @manager.param_for_plugin( 'Core/Configuration', 'outDir' ) + '/'
|
123
|
+
|
124
|
+
tree = @plugin.instance_eval {build_tree}
|
125
|
+
assert_not_nil( tree )
|
126
|
+
assert_equal( outDir, tree.full_path )
|
127
|
+
assert_equal( 6, tree.children.size )
|
128
|
+
assert_not_nil( tree.resolve_node( 'dir1/dir11/file111.html' ) )
|
129
|
+
|
130
|
+
nr_paths_on_disc = find_in_sample_site {|p| true }.length
|
131
|
+
|
132
|
+
def calc_length( tree ); tree.children.inject( 1 ) {|memo,c| memo += calc_length( c ) }; end
|
133
|
+
|
134
|
+
assert( calc_length( tree ), nr_paths_on_disc )
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_load_meta_info_backing_file
|
138
|
+
@websiteDir = fixture_path('backing')
|
139
|
+
assert( File.exists?( @websiteDir ) )
|
140
|
+
@plugin.instance_eval { load_meta_info_backing_file }
|
141
|
+
assert_equal({'key1'=>'value1'}, @plugin.instance_eval { @source_backing['/file1'] })
|
142
|
+
assert_equal({}, @plugin.instance_eval { @output_backing })
|
143
|
+
@websiteDir = fixture_path('backing_empty')
|
144
|
+
assert( File.exists?( @websiteDir ) )
|
145
|
+
@plugin.instance_eval { @source_backing = nil; @output_backing = nil; load_meta_info_backing_file }
|
146
|
+
assert_equal({}, @plugin.instance_eval { @source_backing })
|
147
|
+
ensure
|
148
|
+
@websiteDir = nil
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_meta_info_for
|
152
|
+
@plugin.instance_eval { @source_backing = {'/file'=>{'key'=>'novalue'},'ile'=>{'key'=>'false value'}} }
|
153
|
+
assert_equal( {'key'=>'value'}, @plugin.meta_info_for( @manager['SampleHandler'] ) )
|
154
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], '/file' ) )
|
155
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], 'file' ) )
|
156
|
+
|
157
|
+
@plugin.instance_eval { @source_backing = {'/file'=>{'key'=>'novalue'}} }
|
158
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], '/file' ) )
|
159
|
+
assert_equal( {'key'=>'value'}, @plugin.meta_info_for( @manager['SampleHandler'] ) )
|
160
|
+
|
161
|
+
@plugin.instance_eval { @source_backing = {'/dir'=>{'key'=>'novalue'}} }
|
162
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], 'dir' ) )
|
163
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], '/dir/' ) )
|
164
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], '/dir' ) )
|
165
|
+
assert_equal( {'key'=>'novalue'}, @plugin.meta_info_for( @manager['SampleHandler'], 'dir/' ) )
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_handle_output_backing
|
169
|
+
root = @plugin.instance_eval { create_root_node }
|
170
|
+
node = Node.new( Node.new( root, 'dir/' ), 'test1.html' )
|
171
|
+
node['test'] = 'yes'
|
172
|
+
@plugin.instance_eval { @output_backing = {
|
173
|
+
'api.html'=>{'url'=>'rdoc/index.html'},
|
174
|
+
'/doc/test.html'=>{'url'=>'http://www.webgen.com'},
|
175
|
+
'dir/test1.html'=>{'test'=>'no'}
|
176
|
+
}}
|
177
|
+
@plugin.instance_eval { handle_output_backing( root ) }
|
178
|
+
|
179
|
+
# test virtual node creation
|
180
|
+
assert_not_nil( root.resolve_node( 'rdoc/index.html' ) )
|
181
|
+
assert_not_nil( root.resolve_node( 'api.html' ) )
|
182
|
+
backed1 = root.resolve_node( 'api.html' )
|
183
|
+
assert_equal( 'api.html', backed1.node_info[:reference] )
|
184
|
+
assert_equal( @manager['File/VirtualFileHandler'], backed1.node_info[:processor] )
|
185
|
+
|
186
|
+
backed2 = root.resolve_node( 'doc/test.html' )
|
187
|
+
assert_not_nil( backed2 )
|
188
|
+
|
189
|
+
assert_equal( '<a href="../rdoc/index.html">rdoc/index.html</a>', backed1.link_from( node ) )
|
190
|
+
assert_equal( '<a href="http://www.webgen.com">http://www.webgen.com</a>', backed2.link_from( node ) )
|
191
|
+
|
192
|
+
# test setting of meta infos for existing nodes
|
193
|
+
assert_equal( 1, root.resolve_node( 'dir/' ).children.length )
|
194
|
+
assert_equal( 'no', node['test'] )
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
|
199
|
+
class DefaultHandlerTest < Webgen::PluginTestCase
|
200
|
+
|
201
|
+
plugin_files ['webgen/plugins/filehandlers/filehandler.rb']
|
202
|
+
plugin_to_test 'File/DefaultHandler'
|
203
|
+
|
204
|
+
def setup
|
205
|
+
super
|
206
|
+
@defHandlerClass = @manager.plugin_class_for_name( 'File/DefaultHandler' )
|
207
|
+
@plugin1 = @defHandlerClass.new( @manager )
|
208
|
+
end
|
209
|
+
|
210
|
+
def param_for_plugin( plugin_name, param )
|
211
|
+
if [plugin_name, param] == ['File/DefaultHandler', 'linkToCurrentPage'] && @link_to_current
|
212
|
+
@link_to_current
|
213
|
+
else
|
214
|
+
super
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_initialization
|
219
|
+
assert_nil( @plugin )
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_accessors
|
223
|
+
@defHandlerClass.class_eval do
|
224
|
+
register_path_pattern 'first'
|
225
|
+
register_path_pattern 'second', 10
|
226
|
+
register_extension 'fff'
|
227
|
+
register_extension 'ggg', 20
|
228
|
+
|
229
|
+
public :register_extension
|
230
|
+
public :register_path_pattern
|
231
|
+
end
|
232
|
+
@plugin1.register_path_pattern 'third'
|
233
|
+
@plugin1.register_path_pattern 'fourth', 30
|
234
|
+
@plugin1.register_extension 'hhh'
|
235
|
+
@plugin1.register_extension 'iii', 40
|
236
|
+
|
237
|
+
patterns = @plugin1.path_patterns.sort
|
238
|
+
[
|
239
|
+
[10, 'second'],
|
240
|
+
[20, @defHandlerClass::EXTENSION_PATH_PATTERN % ['ggg']],
|
241
|
+
[30, 'fourth'],
|
242
|
+
[40, @defHandlerClass::EXTENSION_PATH_PATTERN % ['iii']],
|
243
|
+
[@defHandlerClass::DEFAULT_RANK, 'first'],
|
244
|
+
[@defHandlerClass::DEFAULT_RANK, 'third'],
|
245
|
+
[@defHandlerClass::DEFAULT_RANK, @defHandlerClass::EXTENSION_PATH_PATTERN % ['fff']],
|
246
|
+
[@defHandlerClass::DEFAULT_RANK, @defHandlerClass::EXTENSION_PATH_PATTERN % ['hhh']]
|
247
|
+
].each_with_index do |p, index|
|
248
|
+
if p[0] == @defHandlerClass::DEFAULT_RANK
|
249
|
+
assert( patterns.include?( p ), "#{p} missing" )
|
250
|
+
else
|
251
|
+
assert_equal( p, patterns[index] )
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
def test_methods_for_subclasses
|
257
|
+
assert_raise( NotImplementedError ) { @plugin1.create_node( nil, nil, nil ) }
|
258
|
+
assert_raise( NotImplementedError ) { @plugin1.write_node( nil ) }
|
259
|
+
end
|
260
|
+
|
261
|
+
def test_node_for_lang
|
262
|
+
node = Node.new( nil, 'path' )
|
263
|
+
de = Webgen::LanguageManager.language_for_code( 'de' )
|
264
|
+
en = Webgen::LanguageManager.language_for_code( 'en' )
|
265
|
+
assert_equal( node, @plugin1.node_for_lang( node, de ) )
|
266
|
+
assert_equal( node, @plugin1.node_for_lang( node, en ) )
|
267
|
+
end
|
268
|
+
|
269
|
+
def test_link_from
|
270
|
+
refNode = Node.new( nil, 'path' )
|
271
|
+
node = Node.new( refNode, '#frag' )
|
272
|
+
node['title'] = 'title'
|
273
|
+
|
274
|
+
assert_equal( '<a href="#frag">title</a>', @plugin1.link_from( node, refNode ) )
|
275
|
+
assert_equal( '<a href="#frag">link_text</a>',
|
276
|
+
@plugin1.link_from( node, refNode, :link_text => 'link_text' ) )
|
277
|
+
assert_equal( '<a attr1="val1" href="#frag">link_text</a>',
|
278
|
+
@plugin1.link_from( node, refNode, :link_text => 'link_text', 'attr1' => 'val1' ) )
|
279
|
+
assert_equal( '<a href="#frag">link_text</a>',
|
280
|
+
@plugin1.link_from( node, refNode, :link_text => 'link_text', :attr1 => 'val1' ) )
|
281
|
+
|
282
|
+
node['linkAttrs'] = {:link_text => 'Default Text', 'class'=>'help'}
|
283
|
+
assert_equal( '<a attr1="val1" class="help" href="#frag">link_text</a>',
|
284
|
+
@plugin1.link_from( node, refNode, :link_text => 'link_text', 'attr1' => 'val1' ) )
|
285
|
+
|
286
|
+
# Test param setting
|
287
|
+
node['linkAttrs'] = nil
|
288
|
+
@link_to_current = true
|
289
|
+
assert_equal( '<a href="#frag">title</a>', @plugin1.link_from( node, node ) )
|
290
|
+
@link_to_current = false
|
291
|
+
assert_equal( '<span>title</span>', @plugin1.link_from( node, node ) )
|
292
|
+
end
|
293
|
+
|
294
|
+
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
require 'webgen/test'
|
2
|
+
|
3
|
+
class GalleryInfoTest < Webgen::PluginTestCase
|
4
|
+
|
5
|
+
plugin_files [
|
6
|
+
'webgen/plugins/filehandlers/gallery.rb',
|
7
|
+
]
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@ginfoclass = @wrapper::FileHandlers::GalleryHandler::GalleryInfo
|
12
|
+
@iclass = @wrapper::FileHandlers::GalleryHandler::GalleryInfo::Image
|
13
|
+
@gclass = @wrapper::FileHandlers::GalleryHandler::GalleryInfo::Gallery
|
14
|
+
@galleries = []
|
15
|
+
@galleries << @gclass.new( 'gal1.html', {},
|
16
|
+
[@iclass.new( 'test1.html', {'thumbnail' => 'tn_test1.jpg'}, 'test1.jpg' ), @iclass.new( 'test2.html', {'thumbnailSize' => '100x50'}, 'test2.jpg' )] )
|
17
|
+
@galleries << @gclass.new( 'gal2.html', {},
|
18
|
+
[@iclass.new( 'test3.html', {}, 'test3.jpg' ), @iclass.new( 'test4.html', {}, 'test4.jpg' )] )
|
19
|
+
@galleries << @gclass.new( 'gal3.html', {},
|
20
|
+
[@iclass.new( 'test5.html', {}, 'test5.jpg' ), @iclass.new( 'test6.html', {}, 'test6.jpg' )] )
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_ginfo( gindex = nil, iindex = nil )
|
24
|
+
@ginfoclass.new( {:galleries => @galleries}, gindex, iindex )
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_cur_image
|
28
|
+
assert_equal( @galleries[0].images[0], create_ginfo( 0, 0 ).cur_image )
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_cur_gallery
|
32
|
+
assert_equal( @galleries[0], create_ginfo( 0 ).cur_gallery )
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_prev_image
|
36
|
+
assert_equal( nil, create_ginfo( 0, 0 ).prev_image )
|
37
|
+
assert_equal( @galleries[0].images[0], create_ginfo( 0, 1 ).prev_image )
|
38
|
+
assert_equal( @galleries[0].images[1], create_ginfo( 1, 0 ).prev_image )
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_next_image
|
42
|
+
assert_equal( nil, create_ginfo( 2, 1 ).next_image )
|
43
|
+
assert_equal( @galleries[0].images[1], create_ginfo( 0, 0 ).next_image )
|
44
|
+
assert_equal( @galleries[1].images[0], create_ginfo( 0, 1 ).next_image )
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_prev_gallery
|
48
|
+
assert_equal( nil, create_ginfo( 0 ).prev_gallery )
|
49
|
+
assert_equal( @galleries[0], create_ginfo( 1 ).prev_gallery )
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_next_gallery
|
53
|
+
assert_equal( nil, create_ginfo( 2 ).next_gallery )
|
54
|
+
assert_equal( @galleries[1], create_ginfo( 0 ).next_gallery )
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_image_accessors
|
58
|
+
ginfo = create_ginfo( 0, 0 )
|
59
|
+
assert_equal( '<img src="{relocatable: tn_test1.jpg}" alt="" />', ginfo.cur_image.thumbnail )
|
60
|
+
assert_equal( '<img src="{relocatable: test2.jpg}" width="100" height="50" alt="" />', ginfo.next_image.thumbnail )
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_gallery_accessors
|
64
|
+
ginfo = create_ginfo( 0, 0 )
|
65
|
+
assert_equal( '<img src="{relocatable: tn_test1.jpg}" alt="" />', ginfo.cur_gallery.thumbnail )
|
66
|
+
assert_equal( '<img src="{relocatable: test3.jpg}" width="" height="" alt="" />', ginfo.next_gallery.thumbnail )
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
class GalleryFileHandlerTest < Webgen::PluginTestCase
|
72
|
+
|
73
|
+
plugin_files [
|
74
|
+
'webgen/plugins/filehandlers/directory.rb',
|
75
|
+
'webgen/plugins/filehandlers/gallery.rb'
|
76
|
+
]
|
77
|
+
plugin_to_test 'File/GalleryHandler'
|
78
|
+
|
79
|
+
def test_param
|
80
|
+
assert_nothing_raised { @plugin.instance_eval { param('imagesPerPage') } }
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_create_node
|
84
|
+
ginfoclass = @wrapper::FileHandlers::GalleryHandler::GalleryInfo
|
85
|
+
|
86
|
+
root = Node.new( nil, '/' )
|
87
|
+
root.node_info[:src] = fixture_path
|
88
|
+
|
89
|
+
# with a main page
|
90
|
+
assert_nil( @plugin.create_node( fixture_path( 'test.gallery' ), root, {} ) )
|
91
|
+
assert_not_nil( root.resolve_node( 'Test.page' ) )
|
92
|
+
assert_not_nil( root.resolve_node( 'Test_1.page' ) )
|
93
|
+
assert_not_nil( root.resolve_node( 'Test_2.page' ) )
|
94
|
+
assert_not_nil( root.resolve_node( 'Test_test1_jpg.page' ) )
|
95
|
+
assert_not_nil( root.resolve_node( 'Test_test2_jpg.page' ) )
|
96
|
+
assert_not_nil( root.resolve_node( 'Test_test3_jpg.page' ) )
|
97
|
+
assert_not_nil( root.resolve_node( 'Test_test4_jpg.page' ) )
|
98
|
+
|
99
|
+
node = root.resolve_node( 'Test_test3_jpg.page' )
|
100
|
+
assert_kind_of( ginfoclass, node.node_info[:ginfo] )
|
101
|
+
assert_equal( 'test3.jpg', node.node_info[:ginfo].cur_image.filename )
|
102
|
+
assert_equal( node.path, node.node_info[:ginfo].cur_image.pagename )
|
103
|
+
assert_equal( 'gallery_image.template', node['template'] )
|
104
|
+
|
105
|
+
node = root.resolve_node( 'Test_2.page' )
|
106
|
+
assert_kind_of( ginfoclass, node.node_info[:ginfo] )
|
107
|
+
assert_equal( node.path, node.node_info[:ginfo].cur_gallery.pagename )
|
108
|
+
assert_equal( 'gallery_gallery.template', node['template'] )
|
109
|
+
|
110
|
+
node = root.resolve_node( 'Test.page' )
|
111
|
+
assert_kind_of( ginfoclass, node.node_info[:ginfo] )
|
112
|
+
assert_equal( 'gallery_main.template', node['template'] )
|
113
|
+
|
114
|
+
# without a main page
|
115
|
+
root.del_children
|
116
|
+
@plugin.create_node( fixture_path( 'test1.gallery' ), root, {} )
|
117
|
+
assert_not_nil( root.resolve_node( 'Test1.page' ) )
|
118
|
+
assert_nil( root.resolve_node( 'Test1_1.page' ) )
|
119
|
+
assert_nil( root.resolve_node( 'Test1_2.page' ) )
|
120
|
+
assert_not_nil( root.resolve_node( 'Test1_test1_jpg.page' ) )
|
121
|
+
assert_not_nil( root.resolve_node( 'Test1_test2_jpg.page' ) )
|
122
|
+
assert_not_nil( root.resolve_node( 'Test1_test3_jpg.page' ) )
|
123
|
+
assert_not_nil( root.resolve_node( 'Test1_test4_jpg.page' ) )
|
124
|
+
|
125
|
+
node = root.resolve_node( 'Test1.page' )
|
126
|
+
assert_kind_of( ginfoclass, node.node_info[:ginfo] )
|
127
|
+
assert_equal( 'gallery_gallery.template', node['template'] )
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
begin
|
133
|
+
|
134
|
+
require 'RMagick'
|
135
|
+
|
136
|
+
class ThumbnailWriterTest < Webgen::PluginTestCase
|
137
|
+
|
138
|
+
plugin_files [
|
139
|
+
'webgen/plugins/filehandlers/directory.rb',
|
140
|
+
'webgen/plugins/filehandlers/gallery.rb'
|
141
|
+
]
|
142
|
+
plugin_to_test 'File/ThumbnailWriter'
|
143
|
+
|
144
|
+
def test_create_node
|
145
|
+
node = @plugin.create_node( 'testfor anddo.jpg', nil, {}, '100x100' )
|
146
|
+
assert_equal( 'tn_testfor_anddo.jpg', node.path )
|
147
|
+
assert_equal( 'testfor anddo.jpg', node.node_info[:thumbnail_file] )
|
148
|
+
assert_equal( '100x100', node.node_info[:thumbnail_size] )
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_gallery_thumbnail_creation
|
152
|
+
root = Node.new( nil, '/' )
|
153
|
+
root.node_info[:src] = fixture_path
|
154
|
+
|
155
|
+
@manager['File/GalleryHandler'].create_node( fixture_path( 'test.gallery' ), root, {} )
|
156
|
+
tn_node = root.resolve_node( 'tn_test1.jpg' )
|
157
|
+
assert_not_nil( tn_node )
|
158
|
+
assert_equal( fixture_path( 'test1.jpg' ), tn_node.node_info[:thumbnail_file] )
|
159
|
+
assert_equal( tn_node.absolute_path, root.resolve_node( 'Test_test1_jpg.page' ).node_info[:ginfo].cur_image.data['thumbnail'] )
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
rescue LoadError
|
165
|
+
end
|