webgen 0.4.7 → 0.5.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/AUTHORS +5 -0
- data/COPYING +8 -338
- data/GPL +340 -0
- data/Rakefile +188 -445
- data/THANKS +7 -22
- data/VERSION +1 -1
- data/bin/webgen +6 -1
- data/data/webgen/resources.yaml +3 -0
- data/data/webgen/website_skeleton/README +10 -0
- data/data/webgen/website_skeleton/Rakefile +40 -0
- data/data/webgen/website_skeleton/config.yaml +17 -0
- data/data/webgen/website_styles/1024px/{default.css → src/default.css} +0 -0
- data/data/webgen/website_styles/1024px/{default.template → src/default.template} +3 -5
- data/data/webgen/website_styles/1024px/{images → src/images}/background.gif +0 -0
- data/data/webgen/website_styles/andreas00/{default.css → src/default.css} +0 -0
- data/{doc/examples → data/webgen}/website_styles/andreas00/src/default.template +3 -5
- data/data/webgen/website_styles/andreas00/{images → src/images}/bg.gif +0 -0
- data/data/webgen/website_styles/andreas00/{images → src/images}/front.jpg +0 -0
- data/data/webgen/website_styles/andreas00/{images → src/images}/menubg.gif +0 -0
- data/data/webgen/website_styles/andreas00/{images → src/images}/menubg2.gif +0 -0
- data/data/webgen/website_styles/andreas01/{default.css → src/default.css} +0 -0
- data/{doc/examples → data/webgen}/website_styles/andreas01/src/default.template +3 -5
- data/data/webgen/website_styles/andreas01/{images → src/images}/bg.gif +0 -0
- data/data/webgen/website_styles/andreas01/{images → src/images}/front.jpg +0 -0
- data/data/webgen/website_styles/andreas01/{print.css → src/print.css} +0 -0
- data/data/webgen/website_styles/andreas03/{default.css → src/default.css} +0 -0
- data/data/webgen/website_styles/andreas03/{default.template → src/default.template} +2 -4
- data/data/webgen/website_styles/andreas03/{images → src/images}/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas03/{images → src/images}/contbg.png +0 -0
- data/data/webgen/website_styles/andreas03/{images → src/images}/footerbg.png +0 -0
- data/data/webgen/website_styles/andreas03/{images → src/images}/gradient1.png +0 -0
- data/data/webgen/website_styles/andreas03/{images → src/images}/gradient2.png +0 -0
- data/data/webgen/website_styles/andreas04/{default.css → src/default.css} +0 -0
- data/data/webgen/website_styles/andreas04/{default.template → src/default.template} +2 -4
- data/data/webgen/website_styles/andreas04/{images → src/images}/blinkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/contentbg.png +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/entrybg.png +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/flash.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/flash2.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/globe.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/globebottom.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/linkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/{images → src/images}/menuhover.png +0 -0
- data/data/webgen/website_styles/andreas05/{default.css → src/default.css} +0 -0
- data/data/webgen/website_styles/andreas05/{default.template → src/default.template} +2 -4
- data/data/webgen/website_styles/andreas05/{images → src/images}/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas05/{images → src/images}/front.png +0 -0
- data/data/webgen/website_styles/andreas06/{default.css → src/default.css} +0 -0
- data/{doc/examples → data/webgen}/website_styles/andreas06/src/default.template +4 -6
- data/data/webgen/website_styles/andreas06/{images → src/images}/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/boxbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/greypx.gif +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/header.jpg +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/innerbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/leaves.jpg +0 -0
- data/data/webgen/website_styles/andreas06/{images → src/images}/tabs.gif +0 -0
- data/data/webgen/website_styles/andreas07/{browserfix.css → src/browserfix.css} +0 -0
- data/data/webgen/website_styles/andreas07/{default.css → src/default.css} +0 -0
- data/{doc/examples → data/webgen}/website_styles/andreas07/src/default.template +2 -4
- data/data/webgen/website_styles/andreas07/{images → src/images}/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas07/{images → src/images}/sidebarbg.gif +0 -0
- data/data/webgen/website_styles/andreas08/{default.css → src/default.css} +0 -0
- data/{doc/examples → data/webgen}/website_styles/andreas08/src/default.template +3 -5
- data/data/webgen/website_styles/andreas09/{default.css → src/default.css} +0 -0
- data/data/webgen/website_styles/andreas09/{default.template → src/default.template} +4 -6
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/bodybg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/footerbg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/{images → src/images}/menuhover.jpg +0 -0
- data/data/webgen/website_styles/{default → simple}/README +0 -0
- data/data/webgen/website_styles/{default → simple/src}/default.css +0 -0
- data/{doc/examples/website_styles/default → data/webgen/website_styles/simple}/src/default.template +3 -5
- data/data/webgen/website_templates/default/README +0 -2
- data/data/webgen/website_templates/default/src/index.page +3 -3
- data/data/webgen/website_templates/project/README +0 -4
- data/data/webgen/website_templates/project/src/about.page +5 -5
- data/data/webgen/website_templates/project/src/download.page +3 -3
- data/data/webgen/website_templates/project/src/features.page +3 -3
- data/data/webgen/website_templates/project/src/index.page +4 -4
- data/data/webgen/website_templates/project/src/screenshots.page +5 -5
- data/doc/contentprocessor/erb.page +38 -0
- data/doc/contentprocessor/tags.page +61 -0
- data/doc/extensions.page +11 -0
- data/doc/faq.page +177 -0
- data/doc/getting_started.page +130 -0
- data/doc/index.page +50 -0
- data/doc/manual.page +356 -0
- data/doc/reference_configuration.page +328 -0
- data/doc/reference_metainfo.page +128 -0
- data/doc/sourcehandler/metainfo.page +117 -0
- data/doc/sourcehandler/page.page +32 -0
- data/doc/webgen_page_format.page +126 -0
- data/lib/webgen/blackboard.rb +73 -0
- data/lib/webgen/cache.rb +77 -0
- data/lib/webgen/cli.rb +99 -440
- data/lib/webgen/cli/create_command.rb +64 -0
- data/lib/webgen/cli/run_command.rb +20 -0
- data/lib/webgen/cli/utils.rb +82 -0
- data/lib/webgen/configuration.rb +71 -0
- data/lib/webgen/contentprocessor.rb +89 -0
- data/lib/webgen/contentprocessor/blocks.rb +46 -0
- data/lib/webgen/contentprocessor/context.rb +86 -0
- data/lib/webgen/contentprocessor/maruku.rb +18 -0
- data/lib/webgen/contentprocessor/redcloth.rb +15 -0
- data/lib/webgen/contentprocessor/tags.rb +134 -0
- data/lib/webgen/default_config.rb +128 -0
- data/lib/webgen/languages.rb +508 -40
- data/lib/webgen/loggable.rb +23 -0
- data/lib/webgen/logger.rb +78 -0
- data/lib/webgen/node.rb +275 -237
- data/lib/webgen/output.rb +31 -0
- data/lib/webgen/output/filesystem.rb +61 -0
- data/lib/webgen/page.rb +129 -0
- data/lib/webgen/path.rb +172 -0
- data/lib/webgen/source.rb +24 -0
- data/lib/webgen/source/filesystem.rb +56 -0
- data/lib/webgen/source/resource.rb +33 -0
- data/lib/webgen/source/stacked.rb +53 -0
- data/lib/webgen/sourcehandler.rb +175 -0
- data/lib/webgen/sourcehandler/base.rb +188 -0
- data/lib/webgen/sourcehandler/copy.rb +41 -0
- data/lib/webgen/sourcehandler/directory.rb +31 -0
- data/lib/webgen/sourcehandler/fragment.rb +66 -0
- data/lib/webgen/sourcehandler/metainfo.rb +107 -0
- data/lib/webgen/sourcehandler/page.rb +47 -0
- data/lib/webgen/sourcehandler/template.rb +64 -0
- data/lib/webgen/sourcehandler/virtual.rb +72 -0
- data/lib/webgen/tag.rb +16 -0
- data/lib/webgen/tag/base.rb +162 -0
- data/lib/webgen/tag/menu.rb +187 -0
- data/lib/webgen/tag/metainfo.rb +25 -0
- data/lib/webgen/tag/relocatable.rb +53 -0
- data/lib/webgen/tree.rb +80 -0
- data/lib/webgen/version.rb +6 -0
- data/lib/webgen/webgentask.rb +153 -0
- data/lib/webgen/website.rb +166 -288
- data/lib/webgen/websiteaccess.rb +29 -0
- data/lib/webgen/websitemanager.rb +124 -0
- data/man/man1/webgen.1 +31 -42
- data/misc/default.css +337 -0
- data/misc/default.template +73 -0
- data/misc/htmldoc.metainfo +22 -0
- data/misc/htmldoc.virtual +5 -0
- data/misc/images/arrow.gif +0 -0
- data/misc/images/error.gif +0 -0
- data/misc/images/exclamation.gif +0 -0
- data/misc/images/headerbg.jpg +0 -0
- data/misc/images/information.gif +0 -0
- data/misc/images/quote.gif +0 -0
- data/test/helper.rb +28 -0
- data/test/test_blackboard.rb +58 -0
- data/test/test_cache.rb +57 -0
- data/test/test_configuration.rb +35 -0
- data/test/test_contentprocessor.rb +31 -0
- data/test/test_contentprocessor_blocks.rb +34 -0
- data/test/test_contentprocessor_context.rb +38 -0
- data/test/test_contentprocessor_maruku.rb +24 -0
- data/test/test_contentprocessor_redcloth.rb +12 -0
- data/test/test_contentprocessor_tags.rb +97 -0
- data/test/test_languages.rb +53 -0
- data/test/test_loggable.rb +30 -0
- data/test/test_logger.rb +73 -0
- data/test/test_node.rb +305 -0
- data/test/test_output_filesystem.rb +57 -0
- data/test/test_page.rb +180 -0
- data/test/test_path.rb +112 -0
- data/test/test_source_filesystem.rb +59 -0
- data/test/test_source_resource.rb +21 -0
- data/test/test_source_stacked.rb +34 -0
- data/test/test_sourcehandler_base.rb +78 -0
- data/test/test_sourcehandler_copy.rb +45 -0
- data/test/test_sourcehandler_directory.rb +25 -0
- data/test/test_sourcehandler_fragment.rb +62 -0
- data/test/test_sourcehandler_metainfo.rb +79 -0
- data/test/test_sourcehandler_page.rb +62 -0
- data/test/test_sourcehandler_template.rb +61 -0
- data/test/test_sourcehandler_virtual.rb +46 -0
- data/test/test_tag_base.rb +82 -0
- data/test/test_tag_menu.rb +196 -0
- data/test/test_tag_metainfo.rb +17 -0
- data/test/test_tag_relocatable.rb +57 -0
- data/test/test_tree.rb +69 -0
- data/test/test_website.rb +96 -0
- data/test/test_websiteaccess.rb +23 -0
- data/test/test_websitemanager.rb +68 -0
- metadata +276 -800
- data/ChangeLog +0 -46
- data/README +0 -14
- data/TODO +0 -376
- data/data/webgen/data/ISO-639-2_values_8bits.txt +0 -492
- data/data/webgen/gallery-creator/default.png +0 -0
- data/data/webgen/gallery_styles/default/README +0 -6
- data/data/webgen/gallery_styles/default/gallery_gallery.template +0 -38
- data/data/webgen/gallery_styles/default/gallery_image.template +0 -30
- data/data/webgen/gallery_styles/default/gallery_main.template +0 -18
- data/data/webgen/gallery_styles/slides/README +0 -18
- data/data/webgen/gallery_styles/slides/collage.rb +0 -337
- data/data/webgen/gallery_styles/slides/gallery_gallery.template +0 -62
- data/data/webgen/gallery_styles/slides/gallery_image.template +0 -53
- data/data/webgen/gallery_styles/slides/gallery_main.template +0 -32
- data/data/webgen/icon_mapping.yaml +0 -27
- data/data/webgen/resources/emoticons/bigeyes/angry.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/cool.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/cry.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/drunk.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/lol.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/oops.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/sad.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/sleep.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/smile.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/tongue.png +0 -0
- data/data/webgen/resources/emoticons/bigeyes/wink.png +0 -0
- data/data/webgen/resources/emoticons/crystal/angry.png +0 -0
- data/data/webgen/resources/emoticons/crystal/cool.png +0 -0
- data/data/webgen/resources/emoticons/crystal/cry.png +0 -0
- data/data/webgen/resources/emoticons/crystal/drunk.png +0 -0
- data/data/webgen/resources/emoticons/crystal/lol.png +0 -0
- data/data/webgen/resources/emoticons/crystal/oops.png +0 -0
- data/data/webgen/resources/emoticons/crystal/sad.png +0 -0
- data/data/webgen/resources/emoticons/crystal/sleep.png +0 -0
- data/data/webgen/resources/emoticons/crystal/smile.png +0 -0
- data/data/webgen/resources/emoticons/crystal/tongue.png +0 -0
- data/data/webgen/resources/emoticons/crystal/wink.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/angry.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/cool.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/cry.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/drunk.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/lol.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/oops.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/sad.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/sleep.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/smile.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/tongue.png +0 -0
- data/data/webgen/resources/emoticons/cyclops/wink.png +0 -0
- data/data/webgen/resources/emoticons/glass/angry.png +0 -0
- data/data/webgen/resources/emoticons/glass/cool.png +0 -0
- data/data/webgen/resources/emoticons/glass/cry.png +0 -0
- data/data/webgen/resources/emoticons/glass/drunk.png +0 -0
- data/data/webgen/resources/emoticons/glass/lol.png +0 -0
- data/data/webgen/resources/emoticons/glass/oops.png +0 -0
- data/data/webgen/resources/emoticons/glass/sad.png +0 -0
- data/data/webgen/resources/emoticons/glass/sleep.png +0 -0
- data/data/webgen/resources/emoticons/glass/smile.png +0 -0
- data/data/webgen/resources/emoticons/glass/tongue.png +0 -0
- data/data/webgen/resources/emoticons/glass/wink.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/angry.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/cool.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/cry.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/drunk.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/lol.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/oops.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/sad.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/sleep.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/smile.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/tongue.png +0 -0
- data/data/webgen/resources/emoticons/icqstyle/wink.png +0 -0
- data/data/webgen/resources/emoticons/matrix/angry.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/cool.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/cry.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/drunk.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/lol.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/oops.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/sad.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/sleep.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/smile.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/tongue.gif +0 -0
- data/data/webgen/resources/emoticons/matrix/wink.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/angry.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/cool.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/cry.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/drunk.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/lol.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/oops.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/sad.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/sleep.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/smile.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/tongue.gif +0 -0
- data/data/webgen/resources/emoticons/smellies/wink.gif +0 -0
- data/data/webgen/resources/icons/compressed.png +0 -0
- data/data/webgen/resources/icons/document.png +0 -0
- data/data/webgen/resources/icons/download.png +0 -0
- data/data/webgen/resources/icons/image.png +0 -0
- data/data/webgen/resources/icons/linux.png +0 -0
- data/data/webgen/resources/icons/mac.png +0 -0
- data/data/webgen/resources/icons/pdf.png +0 -0
- data/data/webgen/resources/icons/penguin.png +0 -0
- data/data/webgen/resources/icons/quicktime.png +0 -0
- data/data/webgen/resources/icons/real.png +0 -0
- data/data/webgen/resources/icons/rpm.png +0 -0
- data/data/webgen/resources/icons/sound.png +0 -0
- data/data/webgen/resources/icons/source.png +0 -0
- data/data/webgen/resources/icons/spreadsheet.png +0 -0
- data/data/webgen/resources/icons/text.png +0 -0
- data/data/webgen/resources/icons/vcard.png +0 -0
- data/data/webgen/resources/icons/video.png +0 -0
- data/data/webgen/resources/icons/win.png +0 -0
- data/data/webgen/resources/images/generated_by_webgen.png +0 -0
- data/data/webgen/resources/images/valid-css.gif +0 -0
- data/data/webgen/resources/images/valid-xhtml11.png +0 -0
- data/data/webgen/resources/images/webgen_logo.png +0 -0
- data/data/webgen/sipttra_styles/default/README +0 -7
- data/data/webgen/sipttra_styles/default/css/sipttra.rcss +0 -71
- data/data/webgen/sipttra_styles/default/js/sipttra.js +0 -7
- data/data/webgen/sipttra_styles/default/sipttra.template +0 -105
- data/data/webgen/website_styles/andreas00/default.template +0 -62
- data/data/webgen/website_styles/andreas01/default.template +0 -63
- data/data/webgen/website_styles/andreas06/default.template +0 -72
- data/data/webgen/website_styles/andreas07/default.template +0 -44
- data/data/webgen/website_styles/andreas08/default.template +0 -53
- data/data/webgen/website_styles/default/default.template +0 -38
- data/data/webgen/website_templates/personal_hp/README +0 -8
- data/data/webgen/website_templates/personal_hp/src/about.page +0 -12
- data/data/webgen/website_templates/personal_hp/src/index.page +0 -9
- data/data/webgen/website_templates/personal_hp/src/links.page +0 -22
- data/data/webgen/website_templates/personal_hp/src/projects.page +0 -20
- data/doc/config.yaml +0 -8
- data/doc/examples/website_styles/1024px/README +0 -9
- data/doc/examples/website_styles/1024px/config.yaml +0 -2
- data/doc/examples/website_styles/1024px/src/about.page +0 -12
- data/doc/examples/website_styles/1024px/src/default.css +0 -188
- data/doc/examples/website_styles/1024px/src/default.template +0 -62
- data/doc/examples/website_styles/1024px/src/download.page +0 -15
- data/doc/examples/website_styles/1024px/src/features.page +0 -8
- data/doc/examples/website_styles/1024px/src/images/background.gif +0 -0
- data/doc/examples/website_styles/1024px/src/index.page +0 -9
- data/doc/examples/website_styles/1024px/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas00/README +0 -9
- data/doc/examples/website_styles/andreas00/config.yaml +0 -2
- data/doc/examples/website_styles/andreas00/src/about.page +0 -12
- data/doc/examples/website_styles/andreas00/src/default.css +0 -290
- data/doc/examples/website_styles/andreas00/src/download.page +0 -15
- data/doc/examples/website_styles/andreas00/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas00/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas01/README +0 -9
- data/doc/examples/website_styles/andreas01/config.yaml +0 -2
- data/doc/examples/website_styles/andreas01/src/about.page +0 -12
- data/doc/examples/website_styles/andreas01/src/default.css +0 -310
- data/doc/examples/website_styles/andreas01/src/download.page +0 -15
- data/doc/examples/website_styles/andreas01/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas01/src/print.css +0 -35
- data/doc/examples/website_styles/andreas01/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas03/README +0 -9
- data/doc/examples/website_styles/andreas03/config.yaml +0 -2
- data/doc/examples/website_styles/andreas03/src/about.page +0 -12
- data/doc/examples/website_styles/andreas03/src/default.css +0 -223
- data/doc/examples/website_styles/andreas03/src/default.template +0 -60
- data/doc/examples/website_styles/andreas03/src/download.page +0 -15
- data/doc/examples/website_styles/andreas03/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas03/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas04/README +0 -9
- data/doc/examples/website_styles/andreas04/config.yaml +0 -2
- data/doc/examples/website_styles/andreas04/src/about.page +0 -12
- data/doc/examples/website_styles/andreas04/src/default.css +0 -290
- data/doc/examples/website_styles/andreas04/src/default.template +0 -83
- data/doc/examples/website_styles/andreas04/src/download.page +0 -15
- data/doc/examples/website_styles/andreas04/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas04/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas05/README +0 -9
- data/doc/examples/website_styles/andreas05/config.yaml +0 -2
- data/doc/examples/website_styles/andreas05/src/about.page +0 -12
- data/doc/examples/website_styles/andreas05/src/default.css +0 -33
- data/doc/examples/website_styles/andreas05/src/default.template +0 -42
- data/doc/examples/website_styles/andreas05/src/download.page +0 -15
- data/doc/examples/website_styles/andreas05/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas05/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas06/README +0 -9
- data/doc/examples/website_styles/andreas06/config.yaml +0 -2
- data/doc/examples/website_styles/andreas06/src/about.page +0 -12
- data/doc/examples/website_styles/andreas06/src/default.css +0 -354
- data/doc/examples/website_styles/andreas06/src/download.page +0 -15
- data/doc/examples/website_styles/andreas06/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas06/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas07/README +0 -9
- data/doc/examples/website_styles/andreas07/config.yaml +0 -2
- data/doc/examples/website_styles/andreas07/src/about.page +0 -12
- data/doc/examples/website_styles/andreas07/src/browserfix.css +0 -7
- data/doc/examples/website_styles/andreas07/src/default.css +0 -92
- data/doc/examples/website_styles/andreas07/src/download.page +0 -15
- data/doc/examples/website_styles/andreas07/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas07/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas08/README +0 -9
- data/doc/examples/website_styles/andreas08/config.yaml +0 -2
- data/doc/examples/website_styles/andreas08/src/about.page +0 -12
- data/doc/examples/website_styles/andreas08/src/default.css +0 -224
- data/doc/examples/website_styles/andreas08/src/download.page +0 -15
- data/doc/examples/website_styles/andreas08/src/features.page +0 -8
- data/doc/examples/website_styles/andreas08/src/index.page +0 -9
- data/doc/examples/website_styles/andreas08/src/screenshots.page +0 -18
- data/doc/examples/website_styles/andreas09/README +0 -9
- data/doc/examples/website_styles/andreas09/config.yaml +0 -2
- data/doc/examples/website_styles/andreas09/src/about.page +0 -12
- data/doc/examples/website_styles/andreas09/src/default.css +0 -308
- data/doc/examples/website_styles/andreas09/src/default.template +0 -70
- data/doc/examples/website_styles/andreas09/src/download.page +0 -15
- data/doc/examples/website_styles/andreas09/src/features.page +0 -8
- 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 +0 -9
- data/doc/examples/website_styles/andreas09/src/screenshots.page +0 -18
- data/doc/examples/website_styles/default/README +0 -9
- data/doc/examples/website_styles/default/config.yaml +0 -2
- data/doc/examples/website_styles/default/src/about.page +0 -12
- data/doc/examples/website_styles/default/src/default.css +0 -84
- data/doc/examples/website_styles/default/src/download.page +0 -15
- data/doc/examples/website_styles/default/src/features.page +0 -8
- data/doc/examples/website_styles/default/src/index.page +0 -9
- data/doc/examples/website_styles/default/src/screenshots.page +0 -18
- data/doc/examples/website_templates/default/README +0 -8
- data/doc/examples/website_templates/default/config.yaml +0 -2
- data/doc/examples/website_templates/default/src/default.css +0 -84
- data/doc/examples/website_templates/default/src/default.template +0 -38
- data/doc/examples/website_templates/default/src/index.page +0 -8
- data/doc/examples/website_templates/personal_hp/README +0 -8
- data/doc/examples/website_templates/personal_hp/config.yaml +0 -2
- data/doc/examples/website_templates/personal_hp/src/about.page +0 -12
- data/doc/examples/website_templates/personal_hp/src/default.css +0 -84
- data/doc/examples/website_templates/personal_hp/src/default.template +0 -38
- data/doc/examples/website_templates/personal_hp/src/index.page +0 -9
- data/doc/examples/website_templates/personal_hp/src/links.page +0 -22
- data/doc/examples/website_templates/personal_hp/src/projects.page +0 -20
- data/doc/examples/website_templates/project/README +0 -9
- data/doc/examples/website_templates/project/config.yaml +0 -2
- data/doc/examples/website_templates/project/src/about.page +0 -12
- data/doc/examples/website_templates/project/src/default.css +0 -84
- data/doc/examples/website_templates/project/src/default.template +0 -38
- data/doc/examples/website_templates/project/src/download.page +0 -15
- data/doc/examples/website_templates/project/src/features.page +0 -8
- data/doc/examples/website_templates/project/src/index.page +0 -9
- data/doc/examples/website_templates/project/src/screenshots.page +0 -18
- data/doc/metainfo.yaml +0 -105
- data/doc/plugin/emoticon.rb +0 -27
- data/doc/plugin/extension.rb +0 -163
- data/doc/plugin/gallery/slides/collage.rb +0 -337
- data/doc/plugin/listpluginparameters.rb +0 -37
- data/doc/plugin/resources.rb +0 -28
- data/doc/src/css/sipttra.rcss +0 -71
- data/doc/src/default.css +0 -434
- data/doc/src/default.template +0 -125
- data/doc/src/documentation/basics.page +0 -148
- data/doc/src/documentation/extending_webgen.page +0 -104
- data/doc/src/documentation/howto.page +0 -221
- data/doc/src/documentation/index.page +0 -50
- data/doc/src/documentation/plugins/contentconverter/default.page +0 -16
- data/doc/src/documentation/plugins/contentconverter/haml.page +0 -21
- data/doc/src/documentation/plugins/contentconverter/html.page +0 -10
- data/doc/src/documentation/plugins/contentconverter/markdown.page +0 -21
- data/doc/src/documentation/plugins/contentconverter/maruku.page +0 -23
- data/doc/src/documentation/plugins/contentconverter/rdoc.page +0 -11
- data/doc/src/documentation/plugins/contentconverter/sass.page +0 -36
- data/doc/src/documentation/plugins/contentconverter/textile.page +0 -21
- data/doc/src/documentation/plugins/contentconverter/xmlbuilder.page +0 -61
- data/doc/src/documentation/plugins/core/configuration.page +0 -17
- data/doc/src/documentation/plugins/core/filehandler.page +0 -220
- data/doc/src/documentation/plugins/core/index.page +0 -11
- data/doc/src/documentation/plugins/core/resourcemanager.page +0 -40
- data/doc/src/documentation/plugins/core/tagprocessor.page +0 -17
- data/doc/src/documentation/plugins/file/copyhandler.page +0 -26
- data/doc/src/documentation/plugins/file/defaulthandler.page +0 -16
- data/doc/src/documentation/plugins/file/directoryhandler.page +0 -37
- data/doc/src/documentation/plugins/file/galleryhandler.page +0 -190
- data/doc/src/documentation/plugins/file/pagehandler.page +0 -154
- data/doc/src/documentation/plugins/file/sipttrahandler.page +0 -18
- data/doc/src/documentation/plugins/file/templatehandler.page +0 -51
- data/doc/src/documentation/plugins/file/thumbnailwriter.page +0 -42
- data/doc/src/documentation/plugins/htmlvalidator/default.page +0 -13
- data/doc/src/documentation/plugins/htmlvalidator/xmllint.page +0 -12
- data/doc/src/documentation/plugins/index.page +0 -53
- data/doc/src/documentation/plugins/menustyle/default.page +0 -20
- data/doc/src/documentation/plugins/menustyle/horizontal.page +0 -36
- data/doc/src/documentation/plugins/menustyle/horizontaldropdown.page +0 -48
- data/doc/src/documentation/plugins/menustyle/section.page +0 -34
- data/doc/src/documentation/plugins/menustyle/vertical.page +0 -48
- data/doc/src/documentation/plugins/menustyle/verticaldropdown.page +0 -29
- data/doc/src/documentation/plugins/misc/index.page +0 -9
- data/doc/src/documentation/plugins/misc/smileyreplacer.page +0 -39
- data/doc/src/documentation/plugins/misc/syntaxhighlighter.page +0 -26
- data/doc/src/documentation/plugins/tag/block.page +0 -29
- data/doc/src/documentation/plugins/tag/breadcrumbtrail.page +0 -41
- data/doc/src/documentation/plugins/tag/customvar.page +0 -11
- data/doc/src/documentation/plugins/tag/date.page +0 -34
- data/doc/src/documentation/plugins/tag/default.page +0 -28
- data/doc/src/documentation/plugins/tag/download.page +0 -60
- data/doc/src/documentation/plugins/tag/executecommand.page +0 -29
- data/doc/src/documentation/plugins/tag/htmlmetainfo.page +0 -32
- data/doc/src/documentation/plugins/tag/includefile.page +0 -30
- data/doc/src/documentation/plugins/tag/langbar.de.page +0 -6
- data/doc/src/documentation/plugins/tag/langbar.fr.page +0 -6
- data/doc/src/documentation/plugins/tag/langbar.page +0 -41
- data/doc/src/documentation/plugins/tag/menu.page +0 -78
- data/doc/src/documentation/plugins/tag/meta.page +0 -21
- data/doc/src/documentation/plugins/tag/news.page +0 -48
- data/doc/src/documentation/plugins/tag/relocatable.page +0 -46
- data/doc/src/documentation/plugins/tag/resource.page +0 -35
- data/doc/src/documentation/plugins/tag/sitemap.page +0 -35
- data/doc/src/documentation/plugins/tag/wikilink.page +0 -33
- data/doc/src/documentation/references/index.page +0 -34
- data/doc/src/documentation/references/meta_info_reference.page +0 -136
- data/doc/src/documentation/references/parameter_reference.page +0 -11
- data/doc/src/documentation/references/resource_reference.page +0 -18
- data/doc/src/documentation/references/sipttra_format.page +0 -241
- data/doc/src/documentation/references/webpage_format.page +0 -253
- data/doc/src/documentation/tutorial.page +0 -167
- data/doc/src/download.page +0 -74
- data/doc/src/examples/example_sites/index.page +0 -45
- data/doc/src/examples/example_sites/personal.zip +0 -0
- data/doc/src/examples/example_sites/photo_gallery.zip +0 -0
- data/doc/src/examples/gallery_styles/default/default.gallery +0 -78
- data/doc/src/examples/gallery_styles/default/gallery_gallery.template +0 -38
- data/doc/src/examples/gallery_styles/default/gallery_image.template +0 -30
- data/doc/src/examples/gallery_styles/default/gallery_main.template +0 -18
- data/doc/src/examples/gallery_styles/index.page +0 -22
- data/doc/src/examples/gallery_styles/slides/gallery_gallery.template +0 -62
- data/doc/src/examples/gallery_styles/slides/gallery_image.template +0 -53
- data/doc/src/examples/gallery_styles/slides/gallery_main.template +0 -32
- data/doc/src/examples/gallery_styles/slides/slides.gallery +0 -79
- 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 +0 -19
- data/doc/src/examples/sipttra_styles/default.page +0 -5
- data/doc/src/examples/sipttra_styles/default/css/sipttra.rcss +0 -71
- data/doc/src/examples/sipttra_styles/default/default.template +0 -16
- data/doc/src/examples/sipttra_styles/default/index.todo +0 -60
- data/doc/src/examples/sipttra_styles/default/js/sipttra.js +0 -7
- data/doc/src/examples/sipttra_styles/default/sipttra.template +0 -105
- data/doc/src/examples/sipttra_styles/index.page +0 -17
- data/doc/src/examples/website_styles/1024px.page +0 -5
- data/doc/src/examples/website_styles/andreas00.page +0 -5
- data/doc/src/examples/website_styles/andreas01.page +0 -5
- data/doc/src/examples/website_styles/andreas03.page +0 -5
- data/doc/src/examples/website_styles/andreas04.page +0 -5
- data/doc/src/examples/website_styles/andreas05.page +0 -5
- data/doc/src/examples/website_styles/andreas06.page +0 -5
- data/doc/src/examples/website_styles/andreas07.page +0 -5
- data/doc/src/examples/website_styles/andreas08.page +0 -5
- data/doc/src/examples/website_styles/andreas09.page +0 -5
- data/doc/src/examples/website_styles/default.page +0 -5
- data/doc/src/examples/website_styles/index.page +0 -76
- data/doc/src/examples/website_templates/default.page +0 -5
- data/doc/src/examples/website_templates/index.page +0 -24
- data/doc/src/examples/website_templates/personal_hp.page +0 -5
- data/doc/src/examples/website_templates/project.page +0 -5
- data/doc/src/features.page +0 -41
- 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 +0 -7132
- 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 +0 -32
- data/doc/src/js/sipttra.js +0 -7
- data/doc/src/news.page +0 -256
- data/doc/src/plugin.template +0 -10
- data/doc/src/project.todo +0 -144
- data/doc/src/sipttra.template +0 -105
- data/lib/webgen/composite.rb +0 -101
- data/lib/webgen/config.rb +0 -52
- data/lib/webgen/content.rb +0 -172
- data/lib/webgen/extcommand.rb +0 -23
- data/lib/webgen/gui/common.rb +0 -38
- data/lib/webgen/gui/main.rb +0 -219
- data/lib/webgen/gui/new_website_dlg.rb +0 -125
- data/lib/webgen/listener.rb +0 -105
- data/lib/webgen/plugin.rb +0 -578
- data/lib/webgen/plugins/contentconverters/default.rb +0 -40
- data/lib/webgen/plugins/contentconverters/haml.rb +0 -71
- data/lib/webgen/plugins/contentconverters/html.rb +0 -43
- data/lib/webgen/plugins/contentconverters/markdown.rb +0 -54
- data/lib/webgen/plugins/contentconverters/maruku.rb +0 -33
- data/lib/webgen/plugins/contentconverters/rdoc.rb +0 -54
- data/lib/webgen/plugins/contentconverters/textile.rb +0 -54
- data/lib/webgen/plugins/contentconverters/xmlbuilder.rb +0 -58
- data/lib/webgen/plugins/coreplugins/configuration.rb +0 -45
- data/lib/webgen/plugins/coreplugins/resourcemanager.rb +0 -307
- data/lib/webgen/plugins/filehandlers/copy.rb +0 -82
- data/lib/webgen/plugins/filehandlers/directory.rb +0 -126
- data/lib/webgen/plugins/filehandlers/filehandler.rb +0 -486
- data/lib/webgen/plugins/filehandlers/gallery.rb +0 -486
- data/lib/webgen/plugins/filehandlers/page.rb +0 -255
- data/lib/webgen/plugins/filehandlers/sipttra.rb +0 -73
- data/lib/webgen/plugins/filehandlers/template.rb +0 -115
- data/lib/webgen/plugins/htmlvalidators/default.rb +0 -39
- data/lib/webgen/plugins/htmlvalidators/xmllint.rb +0 -54
- data/lib/webgen/plugins/menustyles/default.rb +0 -80
- data/lib/webgen/plugins/menustyles/horizontal.rb +0 -85
- data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +0 -99
- data/lib/webgen/plugins/menustyles/section.rb +0 -68
- data/lib/webgen/plugins/menustyles/vertical.rb +0 -87
- data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +0 -99
- data/lib/webgen/plugins/miscplugins/rendered_files.rb +0 -75
- data/lib/webgen/plugins/miscplugins/smileyreplacer.rb +0 -87
- data/lib/webgen/plugins/miscplugins/syntax_highlighter.rb +0 -72
- data/lib/webgen/plugins/miscplugins/treewalker.rb +0 -91
- data/lib/webgen/plugins/tags/block.rb +0 -65
- data/lib/webgen/plugins/tags/breadcrumbtrail.rb +0 -75
- data/lib/webgen/plugins/tags/customvar.rb +0 -54
- data/lib/webgen/plugins/tags/date.rb +0 -46
- data/lib/webgen/plugins/tags/download.rb +0 -155
- data/lib/webgen/plugins/tags/executecommand.rb +0 -69
- data/lib/webgen/plugins/tags/htmlmetainfo.rb +0 -27
- data/lib/webgen/plugins/tags/includefile.rb +0 -69
- data/lib/webgen/plugins/tags/langbar.rb +0 -55
- data/lib/webgen/plugins/tags/menu.rb +0 -111
- data/lib/webgen/plugins/tags/meta.rb +0 -53
- data/lib/webgen/plugins/tags/news.rb +0 -151
- data/lib/webgen/plugins/tags/relocatable.rb +0 -94
- data/lib/webgen/plugins/tags/sitemap.rb +0 -82
- data/lib/webgen/plugins/tags/tag_processor.rb +0 -279
- data/lib/webgen/plugins/tags/wikilink.rb +0 -62
- data/lib/webgen/rake/webgentask.rb +0 -161
- data/lib/webgen/sipttra_format.rb +0 -343
- data/lib/webgen/test.rb +0 -202
- data/test/fixtures/sample_site/src/chained.template +0 -3
- data/test/fixtures/sample_site/src/default.template +0 -3
- data/test/fixtures/sample_site/src/dir1/dir11/file111.de.page +0 -3
- data/test/fixtures/sample_site/src/dir1/dir11/file111.page +0 -3
- data/test/fixtures/sample_site/src/dir1/dir11/index.page +0 -3
- data/test/fixtures/sample_site/src/dir1/file11.page +0 -3
- data/test/fixtures/sample_site/src/dir2/file21.page +0 -3
- data/test/fixtures/sample_site/src/embedded.rhtml +0 -1
- data/test/fixtures/sample_site/src/file1.page +0 -8
- data/test/fixtures/sample_site/src/file2.de.page +0 -6
- data/test/fixtures/sample_site/src/index.de.page +0 -5
- data/test/fixtures/sample_site/src/index.en.page +0 -1
- data/test/fixtures/sample_site/src/invalid.template +0 -3
- data/test/fixtures/sample_site/src/test.jpg +0 -1
- data/test/fixtures/sample_site/src/test.template +0 -3
- data/test/fixtures/sample_site/src/test.todo +0 -7
- data/test/fixtures/tc_content/blocks.yaml +0 -40
- data/test/fixtures/tc_content/correct.yaml +0 -65
- data/test/fixtures/tc_content/incorrect.yaml +0 -42
- data/test/fixtures/tc_filehandler_filehandler/backing/metainfo.yaml +0 -9
- data/test/fixtures/tc_filehandler_filehandler/backing_empty/metainfo.yaml +0 -6
- data/test/fixtures/tc_filehandler_filehandler/sample_plugin.rb +0 -49
- data/test/fixtures/tc_filehandler_filehandler/unmodified +0 -0
- data/test/fixtures/tc_filehandler_gallery/test.gallery +0 -2
- data/test/fixtures/tc_filehandler_gallery/test1.gallery +0 -2
- 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 +0 -10
- data/test/fixtures/tc_menustyles_default/menustyle.rb +0 -7
- data/test/fixtures/tc_node/nodes.yaml +0 -64
- data/test/fixtures/tc_plugin/handlerplugin.rb +0 -15
- data/test/fixtures/tc_plugin/plugin1.rb +0 -35
- data/test/fixtures/tc_plugin/plugin2.rb +0 -8
- data/test/fixtures/tc_sipttra_format/test.sipttra +0 -46
- data/test/fixtures/tc_tags_includefile/testfile +0 -1
- data/test/fixtures/tc_tags_tag_processor/test_file1 +0 -1
- data/test/fixtures/tc_tags_tag_processor/testtag.rb +0 -17
- data/test/fixtures/tc_website/correct.yaml +0 -6
- data/test/fixtures/tc_website/incorrect_structure.yaml +0 -2
- data/test/fixtures/tc_website/incorrect_yaml.yaml +0 -5
- data/test/fixtures/tc_website/meta_info_test.yaml +0 -10
- data/test/fixtures/tc_website/testdir/README +0 -1
- data/test/fixtures/tc_website/testdir/falsedir/README +0 -1
- data/test/runtests.rb +0 -2
- data/test/unittests/tc_composite.rb +0 -82
- data/test/unittests/tc_config.rb +0 -18
- data/test/unittests/tc_content.rb +0 -96
- data/test/unittests/tc_contentconverters_default.rb +0 -13
- data/test/unittests/tc_contentconverters_html.rb +0 -16
- data/test/unittests/tc_contentconverters_markdown.rb +0 -22
- data/test/unittests/tc_contentconverters_rdoc.rb +0 -16
- data/test/unittests/tc_contentconverters_textile.rb +0 -22
- data/test/unittests/tc_contentconverters_xmlbuilder.rb +0 -22
- data/test/unittests/tc_filehandler_copy.rb +0 -65
- data/test/unittests/tc_filehandler_directory.rb +0 -134
- data/test/unittests/tc_filehandler_filehandler.rb +0 -294
- data/test/unittests/tc_filehandler_gallery.rb +0 -165
- data/test/unittests/tc_filehandler_page.rb +0 -183
- data/test/unittests/tc_filehandler_sipttra.rb +0 -26
- data/test/unittests/tc_filehandler_template.rb +0 -64
- data/test/unittests/tc_htmlvalidators_default.rb +0 -12
- data/test/unittests/tc_htmlvalidators_xmllint.rb +0 -19
- data/test/unittests/tc_languages.rb +0 -57
- data/test/unittests/tc_listener.rb +0 -72
- data/test/unittests/tc_menustyles_default.rb +0 -51
- data/test/unittests/tc_menustyles_horizontal.rb +0 -64
- data/test/unittests/tc_menustyles_horizontal_dropdown.rb +0 -18
- data/test/unittests/tc_menustyles_section.rb +0 -59
- data/test/unittests/tc_menustyles_vertical.rb +0 -79
- data/test/unittests/tc_menustyles_vertical_dropdown.rb +0 -18
- data/test/unittests/tc_node.rb +0 -205
- data/test/unittests/tc_plugin.rb +0 -221
- data/test/unittests/tc_resourcemanager.rb +0 -42
- data/test/unittests/tc_sipttra_format.rb +0 -58
- data/test/unittests/tc_smileyreplacer.rb +0 -25
- data/test/unittests/tc_syntax_highlighter.rb +0 -30
- data/test/unittests/tc_tags_block.rb +0 -27
- data/test/unittests/tc_tags_breadcrumbtrail.rb +0 -56
- data/test/unittests/tc_tags_customvar.rb +0 -24
- data/test/unittests/tc_tags_date.rb +0 -16
- data/test/unittests/tc_tags_download.rb +0 -32
- data/test/unittests/tc_tags_executecommand.rb +0 -37
- data/test/unittests/tc_tags_includefile.rb +0 -46
- data/test/unittests/tc_tags_langbar.rb +0 -42
- data/test/unittests/tc_tags_menu.rb +0 -50
- data/test/unittests/tc_tags_meta.rb +0 -19
- data/test/unittests/tc_tags_relocatable.rb +0 -66
- data/test/unittests/tc_tags_sitemap.rb +0 -33
- data/test/unittests/tc_tags_tag_processor.rb +0 -107
- data/test/unittests/tc_tags_wikilink.rb +0 -22
- data/test/unittests/tc_treewalker.rb +0 -51
- data/test/unittests/tc_website.rb +0 -188
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
#
|
|
3
|
+
#--
|
|
4
|
+
# webgentask.rb:
|
|
5
|
+
#
|
|
6
|
+
# Define a task library for running webgen
|
|
7
|
+
#
|
|
8
|
+
# Copyright (C) 2007 Jeremy Hinegardner
|
|
9
|
+
#
|
|
10
|
+
# Tasks restructuration by Massimiliano Filacchioni
|
|
11
|
+
# Modifications for 0.5.0 by Thomas Leitner
|
|
12
|
+
#
|
|
13
|
+
# This program is free software; you can redistribute it and/or modify
|
|
14
|
+
# it under the terms of the GNU General Public License as published by
|
|
15
|
+
# the Free Software Foundation; either version 2 of the License, or (at
|
|
16
|
+
# your option) any later version.
|
|
17
|
+
#
|
|
18
|
+
# This program is distributed in the hope that it will be useful, but
|
|
19
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
21
|
+
# General Public License for more details.
|
|
22
|
+
#
|
|
23
|
+
# You should have received a copy of the GNU General Public License
|
|
24
|
+
# along with this program; if not, write to the Free Software
|
|
25
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
26
|
+
# USA
|
|
27
|
+
#
|
|
28
|
+
#++
|
|
29
|
+
#
|
|
30
|
+
|
|
31
|
+
require 'rake'
|
|
32
|
+
require 'rake/tasklib'
|
|
33
|
+
|
|
34
|
+
module Webgen
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Task library to manage a webgen website.
|
|
38
|
+
#
|
|
39
|
+
# It is assumed that you have already used the 'webgen' command to create the website directory
|
|
40
|
+
# for the site.
|
|
41
|
+
#
|
|
42
|
+
# === Basics
|
|
43
|
+
#
|
|
44
|
+
# require 'webgen/webgentask'
|
|
45
|
+
#
|
|
46
|
+
# Webgen::WebgenTask.new
|
|
47
|
+
#
|
|
48
|
+
# === Attributes
|
|
49
|
+
#
|
|
50
|
+
# The attributes available in the new block are:
|
|
51
|
+
#
|
|
52
|
+
# * directory - the root directory of the webgen site
|
|
53
|
+
# (default Dir.pwd)
|
|
54
|
+
# * config - the config block for setting additional configuration options
|
|
55
|
+
# * clobber_outdir - remove webgens output directory on clobber
|
|
56
|
+
# (default false)
|
|
57
|
+
#
|
|
58
|
+
# === Tasks Provided
|
|
59
|
+
#
|
|
60
|
+
# The tasks provided are :
|
|
61
|
+
#
|
|
62
|
+
# * webgen - render the webgen website
|
|
63
|
+
# * clobber_webgen - remove all the files created during generation
|
|
64
|
+
#
|
|
65
|
+
# === Integrate webgen in other project
|
|
66
|
+
#
|
|
67
|
+
# To integrate webgen tasks in another project you can use rake namespaces. For example assuming
|
|
68
|
+
# webgen's site directory is +webgen+ under the main project directory use the following code
|
|
69
|
+
# fragment in project Rakefile:
|
|
70
|
+
#
|
|
71
|
+
# require 'webgen/webgentask'
|
|
72
|
+
#
|
|
73
|
+
# namespace :dev do
|
|
74
|
+
# Webgen::WebgenTask.new do |site|
|
|
75
|
+
# site.directory = File.join(Dir.pwd, "webgen")
|
|
76
|
+
# site.clobber_outdir = true
|
|
77
|
+
# site.config_block = lambda |config|
|
|
78
|
+
# config['website.lang'] = 'de'
|
|
79
|
+
# end
|
|
80
|
+
# end
|
|
81
|
+
# end
|
|
82
|
+
#
|
|
83
|
+
# task :clobber => ['dev:clobber_webgen']
|
|
84
|
+
#
|
|
85
|
+
# This will create the following tasks:
|
|
86
|
+
#
|
|
87
|
+
# * dev:webgen
|
|
88
|
+
# * dev:clobber_webgen
|
|
89
|
+
#
|
|
90
|
+
# and add dev:clobber_webgen to the main clobber task.
|
|
91
|
+
#
|
|
92
|
+
class WebgenTask < ::Rake::TaskLib
|
|
93
|
+
|
|
94
|
+
# The directory of the webgen website. This would be the directory of your <tt>config.yaml</tt>
|
|
95
|
+
# file. Or the parent directory of the <tt>src/</tt> directory for webgen.
|
|
96
|
+
#
|
|
97
|
+
# The default for this is assumed to be
|
|
98
|
+
# Dir.pwd
|
|
99
|
+
attr_accessor :directory
|
|
100
|
+
|
|
101
|
+
# The configuration block that is invoked when the Webgen::Website object is initialized. This
|
|
102
|
+
# can be used to set configuration parameters and to avoid having a <tt>config.yaml</tt> file
|
|
103
|
+
# lying around.
|
|
104
|
+
attr_accessor :config_block
|
|
105
|
+
|
|
106
|
+
# During the clobber, should webgen's output directory be clobbered. The default is false.
|
|
107
|
+
attr_accessor :clobber_outdir
|
|
108
|
+
|
|
109
|
+
# Create webgen tasks. You can override the task name with the parameter +name+.
|
|
110
|
+
def initialize(name = 'webgen')
|
|
111
|
+
@name = name
|
|
112
|
+
@directory = Dir.pwd
|
|
113
|
+
@clobber_outdir = false
|
|
114
|
+
@config_block = nil
|
|
115
|
+
|
|
116
|
+
yield self if block_given?
|
|
117
|
+
|
|
118
|
+
define
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
#######
|
|
122
|
+
private
|
|
123
|
+
#######
|
|
124
|
+
|
|
125
|
+
def define # :nodoc:
|
|
126
|
+
desc "Render the webgen website"
|
|
127
|
+
task @name, :verbosity, :log_level do |t, args|
|
|
128
|
+
begin
|
|
129
|
+
require 'webgen/website'
|
|
130
|
+
website = Webgen::Website.new(@directory, Webgen::Logger.new($stdout), &@config_block)
|
|
131
|
+
website.logger.verbosity = args[:verbosity].to_s.intern unless args[:verbosity].to_s.empty?
|
|
132
|
+
website.logger.level = args[:log_level].to_i if args[:log_level]
|
|
133
|
+
website.render
|
|
134
|
+
rescue => e
|
|
135
|
+
puts "webgen task failed: #{e}"
|
|
136
|
+
raise e
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
task :clobber => paste('clobber_', @name)
|
|
141
|
+
|
|
142
|
+
desc "Remove webgen products"
|
|
143
|
+
task paste('clobber_', @name) do
|
|
144
|
+
require 'webgen/website'
|
|
145
|
+
website = Webgen::Website.new(@directory, Webgen::Logger.new($stdout), &@config_block)
|
|
146
|
+
website.clean(@clobber_outdir)
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
end
|
|
153
|
+
|
data/lib/webgen/website.rb
CHANGED
|
@@ -1,333 +1,211 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
require '
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
require 'webgen/plugin'
|
|
28
|
-
|
|
1
|
+
# Standard lib requires
|
|
2
|
+
require 'logger'
|
|
3
|
+
require 'set'
|
|
4
|
+
|
|
5
|
+
# Requirements for Website
|
|
6
|
+
require 'webgen/loggable'
|
|
7
|
+
require 'webgen/logger'
|
|
8
|
+
require 'webgen/configuration'
|
|
9
|
+
require 'webgen/websiteaccess'
|
|
10
|
+
require 'webgen/blackboard'
|
|
11
|
+
require 'webgen/cache'
|
|
12
|
+
require 'webgen/tree'
|
|
13
|
+
|
|
14
|
+
# Files for autoloading
|
|
15
|
+
require 'webgen/source'
|
|
16
|
+
require 'webgen/output'
|
|
17
|
+
require 'webgen/sourcehandler'
|
|
18
|
+
require 'webgen/contentprocessor'
|
|
19
|
+
|
|
20
|
+
# Load other needed files
|
|
21
|
+
require 'webgen/path'
|
|
22
|
+
require 'webgen/node'
|
|
23
|
+
require 'webgen/page'
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# The Webgen namespace houses all classes/modules used by webgen.
|
|
29
27
|
module Webgen
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# Contains additional information, like a description or the creator.
|
|
40
|
-
attr_reader :infos
|
|
41
|
-
|
|
42
|
-
# Returns a new object for the given +name+.
|
|
43
|
-
def initialize( name )
|
|
44
|
-
@name = name
|
|
45
|
-
raise ArgumentError.new( "'#{name}' is not a directory!" ) if !File.directory?( path )
|
|
46
|
-
@infos = YAML::load( File.read( File.join( path, 'README' ) ) )
|
|
47
|
-
raise ArgumentError.new( "'#{name}/README' does not contain key-value pairs in YAML format!" ) unless @infos.kind_of?( Hash )
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# The absolute directory path. Requires that child classes have defined a constant +BASE_PATH+.
|
|
51
|
-
def path
|
|
52
|
-
File.expand_path( File.join( self.class::BASE_PATH, name ) )
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# The files under the directory.
|
|
56
|
-
def files
|
|
57
|
-
Dir.glob( File.join( path, '**', '*' ), File::FNM_CASEFOLD )
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
# Copies the files returned by +#files+ into the directory +dest+, preserving the directory
|
|
61
|
-
# hierarchy.
|
|
62
|
-
def copy_to( dest )
|
|
63
|
-
files.collect do |file|
|
|
64
|
-
destpath = File.join( dest, File.dirname( file ).sub( /^#{path}/, '' ) )
|
|
65
|
-
FileUtils.mkdir_p( File.dirname( destpath ) )
|
|
66
|
-
if File.directory?( file )
|
|
67
|
-
FileUtils.mkdir_p( File.join( destpath, File.basename( file ) ) )
|
|
68
|
-
else
|
|
69
|
-
FileUtils.cp( file, destpath )
|
|
70
|
-
end
|
|
71
|
-
File.join( destpath, File.basename( file ) )
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# Returns all available entries.
|
|
76
|
-
def self.entries
|
|
77
|
-
unless defined?( @entries )
|
|
78
|
-
@entries = {}
|
|
79
|
-
Dir.glob( File.join( self::BASE_PATH, '*' ), File::FNM_CASEFOLD ).each do |f|
|
|
80
|
-
next unless File.directory?( f )
|
|
81
|
-
name = File.basename( f );
|
|
82
|
-
@entries[name] = self.new( name )
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
@entries
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
# A Web site template is a collection of files which provide a starting point for a Web site.
|
|
92
|
-
# These files provide stubs for the content and should not contain any style information.
|
|
93
|
-
class WebSiteTemplate < DirectoryInfo
|
|
94
|
-
|
|
95
|
-
# Base path for the templates.
|
|
96
|
-
BASE_PATH = File.join( Webgen.data_dir, 'website_templates' )
|
|
97
|
-
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
# A Web site style provides style information for a Web site. This means it contains, at least, a
|
|
102
|
-
# template file and a CSS file.
|
|
103
|
-
class WebSiteStyle < DirectoryInfo
|
|
104
|
-
|
|
105
|
-
# Base path for the styles.
|
|
106
|
-
BASE_PATH = File.join( Webgen.data_dir, 'website_styles' )
|
|
107
|
-
|
|
108
|
-
# See DirectoryInfo#files
|
|
109
|
-
def files
|
|
110
|
-
super.select {|f| f != File.join( path, 'README' )}
|
|
29
|
+
# Returns the data directory for webgen.
|
|
30
|
+
def self.data_dir
|
|
31
|
+
unless defined?(@@data_dir)
|
|
32
|
+
require 'rbconfig'
|
|
33
|
+
@@data_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data', 'webgen'))
|
|
34
|
+
@@data_dir = File.expand_path(File.join(Config::CONFIG["datadir"], "webgen")) if !File.exists?(@@data_dir)
|
|
35
|
+
raise "Could not find webgen data directory! This is a bug, report it please!" unless File.directory?(@@data_dir)
|
|
111
36
|
end
|
|
112
|
-
|
|
37
|
+
@@data_dir
|
|
113
38
|
end
|
|
114
39
|
|
|
115
40
|
|
|
116
|
-
#
|
|
117
|
-
|
|
118
|
-
# readme file.
|
|
119
|
-
class GalleryStyle < DirectoryInfo
|
|
41
|
+
# Represents a webgen website and is used to render it.
|
|
42
|
+
class Website
|
|
120
43
|
|
|
121
|
-
#
|
|
122
|
-
|
|
44
|
+
# Raised when the configuration file of the website is invalid.
|
|
45
|
+
class ConfigFileInvalid < RuntimeError; end
|
|
123
46
|
|
|
124
|
-
|
|
125
|
-
def files
|
|
126
|
-
super.select {|f| f != File.join( path, 'README' )} - plugin_files
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
def plugin_files
|
|
130
|
-
plugin_files = []
|
|
131
|
-
@infos['plugin files'].each do |pfile|
|
|
132
|
-
plugin_files += Dir.glob( File.join( path, pfile ), File::FNM_CASEFOLD )
|
|
133
|
-
end if @infos['plugin files']
|
|
134
|
-
plugin_files
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
end
|
|
47
|
+
include Loggable
|
|
138
48
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
49
|
+
# The website configuration. Can only be used after #init has been called (which is
|
|
50
|
+
# automatically done in #render).
|
|
51
|
+
attr_reader :config
|
|
142
52
|
|
|
143
|
-
#
|
|
144
|
-
|
|
53
|
+
# The blackboard used for inter-object communication. Can only be used after #init has been
|
|
54
|
+
# called.
|
|
55
|
+
attr_reader :blackboard
|
|
145
56
|
|
|
146
|
-
#
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
end
|
|
57
|
+
# A cache to store information that should be available between runs. Can only be used after
|
|
58
|
+
# #init has been called.
|
|
59
|
+
attr_reader :cache
|
|
150
60
|
|
|
151
|
-
|
|
61
|
+
# The internal data structure used to store information about individual nodes.
|
|
62
|
+
attr_reader :tree
|
|
152
63
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
class WebSite
|
|
64
|
+
# The logger used for logging. If set to +nil+, logging is disabled.
|
|
65
|
+
attr_accessor :logger
|
|
156
66
|
|
|
157
67
|
# The website directory.
|
|
158
68
|
attr_reader :directory
|
|
159
69
|
|
|
160
|
-
#
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
70
|
+
# Create a new webgen website for the website in the directory +dir+. You can provide a
|
|
71
|
+
# block (has to take the configuration object as parameter) for adjusting the configuration
|
|
72
|
+
# values during the initialization.
|
|
73
|
+
def initialize(dir, logger=Webgen::Logger.new($stdout, false), &block)
|
|
74
|
+
@blackboard = nil
|
|
75
|
+
@cache = nil
|
|
76
|
+
@logger = logger
|
|
77
|
+
@config_block = block
|
|
78
|
+
@directory = dir
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Define a service +service_name+ provided by the instance of +klass+. The parameter +method+
|
|
82
|
+
# needs to define the method which should be invoked when the service is invoked. Can only be
|
|
83
|
+
# used after #init has been called.
|
|
84
|
+
def autoload_service(service_name, klass, method = service_name)
|
|
85
|
+
blackboard.add_service(service_name) {|*args| cache.instance(klass).send(method, *args)}
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Initialize the configuration, blackboard and cache objects and load the default configuration
|
|
89
|
+
# as well as website specific extension files. An already existing configuration/blackboard is
|
|
90
|
+
# deleted!
|
|
91
|
+
def init
|
|
92
|
+
execute_in_env do
|
|
93
|
+
@blackboard = Blackboard.new
|
|
94
|
+
@config = Configuration.new
|
|
95
|
+
|
|
96
|
+
load 'webgen/default_config.rb'
|
|
97
|
+
Dir.glob(File.join(@directory, 'ext', '**/init.rb')) {|f| load(f)}
|
|
98
|
+
read_config_file
|
|
99
|
+
|
|
100
|
+
@config_block.call(@config) if @config_block
|
|
101
|
+
restore_tree_and_cache
|
|
191
102
|
end
|
|
103
|
+
self
|
|
192
104
|
end
|
|
193
105
|
|
|
194
|
-
#
|
|
195
|
-
def render
|
|
196
|
-
|
|
197
|
-
|
|
106
|
+
# Render the website (after calling #init if the website is not already initialized).
|
|
107
|
+
def render
|
|
108
|
+
execute_in_env do
|
|
109
|
+
init unless @config
|
|
198
110
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
@manager['Core/FileHandler'].render_files( files )
|
|
205
|
-
end
|
|
206
|
-
@logger.info( 'WebSite#render' ) { "Rendering of website <#{directory}> finished" }
|
|
207
|
-
end
|
|
111
|
+
puts "Starting webgen..."
|
|
112
|
+
shm = SourceHandler::Main.new
|
|
113
|
+
shm.render(@tree)
|
|
114
|
+
save_tree_and_cache
|
|
115
|
+
puts "Finished"
|
|
208
116
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
rescue ConfigurationFileInvalid => e
|
|
214
|
-
nil
|
|
117
|
+
if @logger && @logger.log_output.length > 0
|
|
118
|
+
puts "\nLog messages:"
|
|
119
|
+
puts @logger.log_output
|
|
120
|
+
end
|
|
215
121
|
end
|
|
216
122
|
end
|
|
217
123
|
|
|
218
|
-
#
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
# overwritting exisiting files.
|
|
232
|
-
def self.use_website_style( directory, style_name )
|
|
233
|
-
style = WebSiteStyle.entries[style_name]
|
|
234
|
-
raise ArgumentError.new( "Invalid website style '#{style_name}'" ) if style.nil?
|
|
235
|
-
src_dir = File.join( directory, Webgen::SRC_DIR )
|
|
236
|
-
raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
|
|
237
|
-
return style.copy_to( src_dir )
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
# Copies the gallery style files for +style+ to the source directory of the website +directory+
|
|
241
|
-
# overwritting exisiting files.
|
|
242
|
-
def self.use_gallery_style( directory, style_name )
|
|
243
|
-
style = GalleryStyle.entries[style_name]
|
|
244
|
-
raise ArgumentError.new( "Invalid gallery style '#{style_name}'" ) if style.nil?
|
|
245
|
-
src_dir = File.join( directory, Webgen::SRC_DIR )
|
|
246
|
-
plugin_dir = File.join( directory, Webgen::PLUGIN_DIR )
|
|
247
|
-
raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
|
|
248
|
-
plugin_files = style.plugin_files
|
|
249
|
-
FileUtils.mkdir( plugin_dir ) unless File.exists?( plugin_dir )
|
|
250
|
-
FileUtils.cp( plugin_files, plugin_dir )
|
|
251
|
-
return style.copy_to( src_dir ) + plugin_files.collect {|f| File.join( plugin_dir, File.basename( f ) )}
|
|
252
|
-
end
|
|
253
|
-
|
|
254
|
-
# Copies the sipttra style files for +style+ to the source directory of the website +directory+
|
|
255
|
-
# overwritting exisiting files.
|
|
256
|
-
def self.use_sipttra_style( directory, style_name )
|
|
257
|
-
style = SipttraStyle.entries[style_name]
|
|
258
|
-
raise ArgumentError.new( "Invalid sipttra style '#{style_name}'" ) if style.nil?
|
|
259
|
-
src_dir = File.join( directory, Webgen::SRC_DIR )
|
|
260
|
-
raise ArgumentError.new( "Directory <#{src_dir}> does not exist!") unless File.exists?( src_dir )
|
|
261
|
-
return style.copy_to( src_dir )
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
#######
|
|
265
|
-
private
|
|
266
|
-
#######
|
|
267
|
-
|
|
268
|
-
def set_plugin_config( plugin_config )
|
|
269
|
-
@manager.plugin_config = ( plugin_config ? plugin_config : self.class.load_config_file( @directory ) )
|
|
270
|
-
@srcDir = File.join( @directory, Webgen::SRC_DIR )
|
|
271
|
-
outDir = @manager.param_for_plugin( 'Core/Configuration', 'outDir' )
|
|
272
|
-
@outDir = (/^(\/|[A-Za-z]:)/ =~ outDir ? outDir : File.join( @directory, outDir ) )
|
|
273
|
-
@plugin_config = @manager.plugin_config
|
|
274
|
-
@manager.plugin_config = self
|
|
275
|
-
end
|
|
276
|
-
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
# Raised when a configuration file has an invalid structure
|
|
281
|
-
class ConfigurationFileInvalid < RuntimeError; end
|
|
282
|
-
|
|
283
|
-
# Represents the configuration file of a website.
|
|
284
|
-
class ConfigurationFile
|
|
124
|
+
# Clean the website directory from all generated output files (including the cache file). If
|
|
125
|
+
# +del_outdir+ is +true+, then the base output directory is also deleted. When a delete
|
|
126
|
+
# operation fails, the error is silently ignored and the clean operation continues.
|
|
127
|
+
#
|
|
128
|
+
# Note: Uses the configured output instance for the operations!
|
|
129
|
+
def clean(del_outdir = false)
|
|
130
|
+
init
|
|
131
|
+
execute_in_env do
|
|
132
|
+
output = @blackboard.invoke(:output_instance)
|
|
133
|
+
@tree.node_access[:alcn].each do |name, node|
|
|
134
|
+
next if node.is_fragment? || node['no_output'] || node.path == '/' || node == @tree.dummy_root
|
|
135
|
+
output.delete(node.path) rescue nil
|
|
136
|
+
end
|
|
285
137
|
|
|
286
|
-
|
|
287
|
-
|
|
138
|
+
if @config['website.cache'].first == :file
|
|
139
|
+
FileUtils.rm(File.join(@directory, @config['website.cache'].last)) rescue nil
|
|
140
|
+
end
|
|
288
141
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
if File.exists?( config_file )
|
|
292
|
-
begin
|
|
293
|
-
@config = YAML::load( File.read( config_file ) )
|
|
294
|
-
rescue ArgumentError => e
|
|
295
|
-
raise ConfigurationFileInvalid, e.message
|
|
142
|
+
if del_outdir
|
|
143
|
+
output.delete('/') rescue nil
|
|
296
144
|
end
|
|
297
|
-
else
|
|
298
|
-
@config = {}
|
|
299
145
|
end
|
|
300
|
-
check_config
|
|
301
146
|
end
|
|
302
147
|
|
|
303
|
-
#
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
148
|
+
# The provided block is executed within a proper environment sothat any object can access the
|
|
149
|
+
# Website object.
|
|
150
|
+
def execute_in_env
|
|
151
|
+
set_back = Thread.current[:webgen_website].nil?
|
|
152
|
+
Thread.current[:webgen_website] = self
|
|
153
|
+
yield
|
|
154
|
+
ensure
|
|
155
|
+
Thread.current[:webgen_website] = nil if set_back
|
|
310
156
|
end
|
|
311
157
|
|
|
312
158
|
#######
|
|
313
159
|
private
|
|
314
160
|
#######
|
|
315
161
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
162
|
+
# Restore the tree and the cache from +website.cache+ and returns the Tree object.
|
|
163
|
+
def restore_tree_and_cache
|
|
164
|
+
@cache = Cache.new
|
|
165
|
+
@tree = Tree.new
|
|
166
|
+
data = if config['website.cache'].first == :file
|
|
167
|
+
cache_file = File.join(@directory, config['website.cache'].last)
|
|
168
|
+
File.read(cache_file) if File.exists?(cache_file)
|
|
169
|
+
else
|
|
170
|
+
config['website.cache'].last
|
|
171
|
+
end
|
|
172
|
+
cache_data, @tree = Marshal.load(data) rescue nil
|
|
173
|
+
@cache.restore(cache_data) if cache_data
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Save the +tree+ and the +cache+ to +website.cache+.
|
|
177
|
+
def save_tree_and_cache
|
|
178
|
+
cache_data = [@cache.dump, @tree]
|
|
179
|
+
if config['website.cache'].first == :file
|
|
180
|
+
cache_file = File.join(@directory, config['website.cache'].last)
|
|
181
|
+
File.open(cache_file, 'wb') {|f| Marshal.dump(cache_data, f)}
|
|
182
|
+
else
|
|
183
|
+
config['website.cache'][1] = Marshal.dump(cache_data)
|
|
319
184
|
end
|
|
185
|
+
end
|
|
320
186
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
187
|
+
# Update the configuration object for the website with infos found in the configuration file.
|
|
188
|
+
def read_config_file
|
|
189
|
+
file = File.join(@directory, 'config.yaml')
|
|
190
|
+
if File.exists?(file)
|
|
191
|
+
begin
|
|
192
|
+
config = YAML::load(File.read(file)) || {}
|
|
193
|
+
raise 'Structure of config file is not valid, has to be a Hash' if !config.kind_of?(Hash)
|
|
194
|
+
config.each do |key, value|
|
|
195
|
+
if key == 'default_meta_info'
|
|
196
|
+
value.each do |klass_name, options|
|
|
197
|
+
@config['sourcehandler.default_meta_info'][klass_name].update(options)
|
|
198
|
+
end
|
|
199
|
+
else
|
|
200
|
+
@config[key] = value
|
|
201
|
+
end
|
|
327
202
|
end
|
|
203
|
+
rescue RuntimeError, ArgumentError => e
|
|
204
|
+
raise ConfigFileInvalid, "Configuration invalid: " + e.message
|
|
328
205
|
end
|
|
206
|
+
elsif File.exists?(File.join(@directory, 'config.yml'))
|
|
207
|
+
log(:warn) { "No configuration file called config.yaml found (there is a config.yml - spelling error?)" }
|
|
329
208
|
end
|
|
330
|
-
|
|
331
209
|
end
|
|
332
210
|
|
|
333
211
|
end
|