webgen 0.5.17 → 1.0.0.beta1
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/API.rdoc +143 -0
- data/AUTHORS +0 -1
- data/COPYING +17 -8
- data/ChangeLog +4456 -0
- data/GPL +623 -289
- data/README.md +71 -0
- data/Rakefile +87 -99
- data/VERSION +1 -1
- data/bin/webgen +1 -7
- data/data/webgen/basic_website_template/ext/init.rb +15 -0
- data/data/webgen/basic_website_template/webgen.config +18 -0
- data/data/webgen/bundle_template_files/README.md.erb +24 -0
- data/data/webgen/bundle_template_files/Rakefile.erb +36 -0
- data/data/webgen/bundle_template_files/info.yaml.erb +16 -0
- data/data/webgen/bundle_template_files/init.rb.erb +1 -0
- data/data/webgen/passive_sources/default.metainfo +32 -0
- data/data/webgen/passive_sources/stylesheets/coderay-default.css +109 -118
- data/data/webgen/passive_sources/templates/feed.template +62 -0
- data/data/webgen/passive_sources/templates/sitemap.template +3 -6
- data/data/webgen/passive_sources/templates/tag.template +42 -0
- data/data/webgen/website_bundles/default/README +2 -2
- data/lib/webgen/blackboard.rb +15 -51
- data/lib/webgen/bundle/built-in-show-changes/init.rb +54 -0
- data/lib/webgen/bundle/built-in/init.rb +366 -0
- data/lib/webgen/bundle_loader.rb +126 -0
- data/lib/webgen/cache.rb +9 -18
- data/lib/webgen/cli.rb +131 -58
- data/lib/webgen/cli/bundle_command.rb +30 -0
- data/lib/webgen/cli/create_bundle_command.rb +46 -0
- data/lib/webgen/cli/create_command.rb +48 -60
- data/lib/webgen/cli/generate_command.rb +25 -0
- data/lib/webgen/cli/install_bundle_command.rb +34 -0
- data/lib/webgen/cli/list_bundle_command.rb +108 -0
- data/lib/webgen/cli/logger.rb +45 -0
- data/lib/webgen/cli/show_command.rb +30 -0
- data/lib/webgen/cli/show_config_command.rb +63 -0
- data/lib/webgen/cli/show_dependencies_command.rb +103 -0
- data/lib/webgen/cli/show_extensions_command.rb +74 -0
- data/lib/webgen/cli/utils.rb +68 -95
- data/lib/webgen/configuration.rb +143 -105
- data/lib/webgen/content_processor.rb +160 -0
- data/lib/webgen/content_processor/blocks.rb +96 -0
- data/lib/webgen/content_processor/builder.rb +25 -0
- data/lib/webgen/content_processor/erb.rb +25 -0
- data/lib/webgen/content_processor/erubis.rb +31 -0
- data/lib/webgen/content_processor/fragments.rb +82 -0
- data/lib/webgen/content_processor/haml.rb +25 -0
- data/lib/webgen/content_processor/html_head.rb +157 -0
- data/lib/webgen/content_processor/kramdown.rb +49 -0
- data/lib/webgen/content_processor/maruku.rb +39 -0
- data/lib/webgen/content_processor/r_discount.rb +21 -0
- data/lib/webgen/content_processor/rdoc.rb +22 -0
- data/lib/webgen/content_processor/redcloth.rb +23 -0
- data/lib/webgen/content_processor/ruby.rb +20 -0
- data/lib/webgen/content_processor/sass.rb +145 -0
- data/lib/webgen/content_processor/scss.rb +23 -0
- data/lib/webgen/content_processor/tags.rb +30 -0
- data/lib/webgen/content_processor/tidy.rb +32 -0
- data/lib/webgen/content_processor/tikz.rb +116 -0
- data/lib/webgen/content_processor/xmllint.rb +31 -0
- data/lib/webgen/context.rb +57 -29
- data/lib/webgen/context/html_head.rb +60 -0
- data/lib/webgen/context/nodes.rb +32 -27
- data/lib/webgen/context/rendering.rb +39 -0
- data/lib/webgen/context/webgen_tags.rb +25 -0
- data/lib/webgen/core_ext.rb +25 -0
- data/lib/webgen/destination.rb +151 -0
- data/lib/webgen/destination/file_system.rb +62 -0
- data/lib/webgen/error.rb +59 -49
- data/lib/webgen/extension_manager.rb +121 -0
- data/lib/webgen/item_tracker.rb +237 -0
- data/lib/webgen/item_tracker/file.rb +39 -0
- data/lib/webgen/item_tracker/missing_node.rb +61 -0
- data/lib/webgen/item_tracker/node_content.rb +40 -0
- data/lib/webgen/item_tracker/node_meta_info.rb +53 -0
- data/lib/webgen/item_tracker/nodes.rb +92 -0
- data/lib/webgen/logger.rb +26 -82
- data/lib/webgen/node.rb +122 -367
- data/lib/webgen/node_finder.rb +336 -0
- data/lib/webgen/page.rb +48 -85
- data/lib/webgen/path.rb +218 -156
- data/lib/webgen/path_handler.rb +400 -0
- data/lib/webgen/path_handler/base.rb +220 -0
- data/lib/webgen/path_handler/copy.rb +78 -0
- data/lib/webgen/path_handler/directory.rb +21 -0
- data/lib/webgen/path_handler/feed.rb +82 -0
- data/lib/webgen/path_handler/meta_info.rb +84 -0
- data/lib/webgen/path_handler/page.rb +38 -0
- data/lib/webgen/path_handler/page_utils.rb +79 -0
- data/lib/webgen/path_handler/sitemap.rb +52 -0
- data/lib/webgen/path_handler/template.rb +96 -0
- data/lib/webgen/path_handler/virtual.rb +85 -0
- data/lib/webgen/{webgentask.rb → rake_task.rb} +31 -27
- data/lib/webgen/source.rb +106 -24
- data/lib/webgen/source/file_system.rb +41 -0
- data/lib/webgen/source/stacked.rb +49 -53
- data/lib/webgen/source/tar_archive.rb +59 -0
- data/lib/webgen/tag.rb +250 -19
- data/lib/webgen/tag/breadcrumb_trail.rb +65 -0
- data/lib/webgen/tag/coderay.rb +32 -35
- data/lib/webgen/tag/date.rb +9 -9
- data/lib/webgen/tag/execute_command.rb +31 -0
- data/lib/webgen/tag/include_file.rb +32 -0
- data/lib/webgen/tag/langbar.rb +31 -47
- data/lib/webgen/tag/link.rb +17 -18
- data/lib/webgen/tag/menu.rb +27 -189
- data/lib/webgen/tag/meta_info.rb +31 -0
- data/lib/webgen/tag/relocatable.rb +48 -39
- data/lib/webgen/tag/tikz.rb +24 -100
- data/lib/webgen/task.rb +99 -0
- data/lib/webgen/task/create_bundle.rb +73 -0
- data/lib/webgen/task/create_website.rb +94 -0
- data/lib/webgen/task/generate_website.rb +47 -0
- data/lib/webgen/test_helper.rb +183 -0
- data/lib/webgen/tree.rb +95 -46
- data/lib/webgen/utils.rb +39 -0
- data/lib/webgen/utils/external_command.rb +27 -0
- data/lib/webgen/utils/tag_parser.rb +124 -0
- data/lib/webgen/version.rb +1 -1
- data/lib/webgen/website.rb +134 -296
- data/setup.rb +1 -1
- data/test/test_documentation.rb +43 -0
- data/test/webgen/cli/test_logger.rb +41 -0
- data/test/{test_contentprocessor_blocks.rb → webgen/content_processor/test_blocks.rb} +30 -28
- data/test/webgen/content_processor/test_builder.rb +25 -0
- data/test/webgen/content_processor/test_erb.rb +21 -0
- data/test/webgen/content_processor/test_erubis.rb +33 -0
- data/test/webgen/content_processor/test_fragments.rb +96 -0
- data/test/webgen/content_processor/test_haml.rb +24 -0
- data/test/webgen/content_processor/test_html_head.rb +78 -0
- data/test/webgen/content_processor/test_kramdown.rb +49 -0
- data/test/webgen/content_processor/test_maruku.rb +30 -0
- data/test/webgen/content_processor/test_r_discount.rb +18 -0
- data/test/webgen/content_processor/test_rdoc.rb +18 -0
- data/test/webgen/content_processor/test_redcloth.rb +23 -0
- data/test/webgen/content_processor/test_ruby.rb +24 -0
- data/test/webgen/content_processor/test_sass.rb +44 -0
- data/test/webgen/content_processor/test_scss.rb +23 -0
- data/test/webgen/content_processor/test_tags.rb +44 -0
- data/test/webgen/content_processor/test_tidy.rb +31 -0
- data/test/webgen/content_processor/test_tikz.rb +33 -0
- data/test/webgen/content_processor/test_xmllint.rb +32 -0
- data/test/webgen/destination/test_file_system.rb +54 -0
- data/test/webgen/item_tracker/test_file.rb +31 -0
- data/test/webgen/item_tracker/test_missing_node.rb +70 -0
- data/test/webgen/item_tracker/test_node_content.rb +42 -0
- data/test/webgen/item_tracker/test_node_meta_info.rb +44 -0
- data/test/webgen/item_tracker/test_nodes.rb +61 -0
- data/test/webgen/path_handler/test_base.rb +153 -0
- data/test/webgen/path_handler/test_copy.rb +56 -0
- data/test/webgen/path_handler/test_feed.rb +85 -0
- data/test/webgen/path_handler/test_meta_info.rb +98 -0
- data/test/webgen/path_handler/test_page.rb +25 -0
- data/test/webgen/path_handler/test_page_utils.rb +59 -0
- data/test/webgen/path_handler/test_sitemap.rb +95 -0
- data/test/webgen/path_handler/test_template.rb +64 -0
- data/test/webgen/path_handler/test_virtual.rb +87 -0
- data/test/webgen/source/test_file_system.rb +51 -0
- data/test/webgen/source/test_stacked.rb +35 -0
- data/test/{test_source_tararchive.rb → webgen/source/test_tar_archive.rb} +10 -25
- data/test/webgen/tag/test_breadcrumb_trail.rb +66 -0
- data/test/webgen/tag/test_coderay.rb +34 -0
- data/test/webgen/tag/test_date.rb +18 -0
- data/test/webgen/tag/test_execute_command.rb +36 -0
- data/test/webgen/tag/test_include_file.rb +35 -0
- data/test/webgen/tag/test_langbar.rb +50 -0
- data/test/webgen/tag/test_link.rb +40 -0
- data/test/webgen/tag/test_menu.rb +61 -0
- data/test/webgen/tag/test_meta_info.rb +25 -0
- data/test/webgen/tag/test_relocatable.rb +50 -0
- data/test/webgen/tag/test_tikz.rb +41 -0
- data/test/webgen/task/test_create_website.rb +46 -0
- data/test/webgen/test_blackboard.rb +31 -0
- data/test/webgen/test_bundle_loader.rb +55 -0
- data/test/{test_cache.rb → webgen/test_cache.rb} +3 -15
- data/test/webgen/test_cli.rb +41 -0
- data/test/webgen/test_configuration.rb +131 -0
- data/test/webgen/test_content_processor.rb +86 -0
- data/test/webgen/test_context.rb +73 -0
- data/test/webgen/test_core_ext.rb +20 -0
- data/test/webgen/test_destination.rb +48 -0
- data/test/webgen/test_error.rb +121 -0
- data/test/webgen/test_extension_manager.rb +70 -0
- data/test/webgen/test_item_tracker.rb +106 -0
- data/test/{test_languages.rb → webgen/test_languages.rb} +4 -4
- data/test/webgen/test_logger.rb +46 -0
- data/test/webgen/test_node.rb +178 -0
- data/test/webgen/test_node_finder.rb +127 -0
- data/test/{test_page.rb → webgen/test_page.rb} +44 -48
- data/test/webgen/test_path.rb +271 -0
- data/test/{test_webgentask.rb → webgen/test_rake_task.rb} +4 -4
- data/test/webgen/test_source.rb +59 -0
- data/test/webgen/test_tag.rb +137 -0
- data/test/webgen/test_task.rb +40 -0
- data/test/webgen/test_tree.rb +147 -0
- data/test/webgen/test_utils.rb +16 -0
- data/test/webgen/test_website.rb +45 -0
- data/test/webgen/utils/test_tag_parser.rb +99 -0
- metadata +292 -344
- data/data/webgen/passive_sources/templates/atom_feed.template +0 -39
- data/data/webgen/passive_sources/templates/rss_feed.template +0 -28
- data/data/webgen/resources.yaml +0 -4
- data/data/webgen/webgui/app.rb +0 -11
- data/data/webgen/webgui/controller/main.rb +0 -135
- data/data/webgen/webgui/layout/default.xhtml +0 -40
- data/data/webgen/webgui/overrides/win32console.rb +0 -0
- data/data/webgen/webgui/public/css/jquery.autocomplete.css +0 -50
- data/data/webgen/webgui/public/css/ramaze_error.css +0 -90
- data/data/webgen/webgui/public/css/style.css +0 -55
- data/data/webgen/webgui/public/img/headerbg.jpg +0 -0
- data/data/webgen/webgui/public/img/webgen_logo.png +0 -0
- data/data/webgen/webgui/public/js/jquery.autocomplete.js +0 -15
- data/data/webgen/webgui/public/js/jquery.js +0 -32
- data/data/webgen/webgui/start.rb +0 -9
- data/data/webgen/webgui/view/create_website.xhtml +0 -14
- data/data/webgen/webgui/view/error.xhtml +0 -64
- data/data/webgen/webgui/view/index.xhtml +0 -22
- data/data/webgen/webgui/view/manage_website.xhtml +0 -18
- data/data/webgen/website_skeleton/README +0 -10
- data/data/webgen/website_skeleton/Rakefile +0 -69
- data/data/webgen/website_skeleton/config.yaml +0 -35
- data/data/webgen/website_skeleton/ext/init.rb +0 -10
- data/doc/contentprocessor.template +0 -11
- data/doc/contentprocessor/blocks.page +0 -129
- data/doc/contentprocessor/builder.page +0 -79
- data/doc/contentprocessor/erb.page +0 -60
- data/doc/contentprocessor/erubis.page +0 -46
- data/doc/contentprocessor/fragments.page +0 -26
- data/doc/contentprocessor/haml.page +0 -46
- data/doc/contentprocessor/head.page +0 -31
- data/doc/contentprocessor/kramdown.page +0 -49
- data/doc/contentprocessor/less.page +0 -34
- data/doc/contentprocessor/maruku.page +0 -44
- data/doc/contentprocessor/rdiscount.page +0 -37
- data/doc/contentprocessor/rdoc.page +0 -36
- data/doc/contentprocessor/redcloth.page +0 -41
- data/doc/contentprocessor/sass.page +0 -31
- data/doc/contentprocessor/scss.page +0 -39
- data/doc/contentprocessor/tags.page +0 -73
- data/doc/contentprocessor/tidy.page +0 -14
- data/doc/contentprocessor/xmllint.page +0 -14
- data/doc/extensions.metainfo +0 -29
- data/doc/extensions.page +0 -15
- data/doc/extensions.template +0 -17
- data/doc/faq.page +0 -222
- data/doc/getting_started.page +0 -135
- data/doc/index.page +0 -71
- data/doc/manual.page +0 -727
- data/doc/reference_configuration.page +0 -1254
- data/doc/reference_metainfo.page +0 -265
- data/doc/reference_website_styles.page +0 -32
- data/doc/source/filesystem.page +0 -41
- data/doc/source/tararchive.page +0 -40
- data/doc/sourcehandler.template +0 -23
- data/doc/sourcehandler/copy.page +0 -19
- data/doc/sourcehandler/directory.page +0 -27
- data/doc/sourcehandler/feed.page +0 -102
- data/doc/sourcehandler/metainfo.page +0 -48
- data/doc/sourcehandler/page.page +0 -14
- data/doc/sourcehandler/sitemap.page +0 -46
- data/doc/sourcehandler/template.page +0 -45
- data/doc/sourcehandler/virtual.page +0 -49
- data/doc/tag.template +0 -25
- data/doc/tag/breadcrumbtrail.page +0 -40
- data/doc/tag/coderay.page +0 -53
- data/doc/tag/date.page +0 -31
- data/doc/tag/executecommand.page +0 -26
- data/doc/tag/includefile.page +0 -32
- data/doc/tag/langbar.page +0 -47
- data/doc/tag/link.page +0 -44
- data/doc/tag/menu.page +0 -109
- data/doc/tag/metainfo.page +0 -29
- data/doc/tag/relocatable.page +0 -38
- data/doc/tag/sitemap.page +0 -31
- data/doc/tag/tikz.page +0 -159
- data/doc/upgrading.page +0 -138
- data/doc/webgen_page_format.page +0 -129
- data/doc/website_styles.metainfo +0 -8
- data/lib/webgen/cli/apply_command.rb +0 -66
- data/lib/webgen/cli/run_command.rb +0 -22
- data/lib/webgen/cli/webgui_command.rb +0 -68
- data/lib/webgen/common.rb +0 -27
- data/lib/webgen/common/sitemap.rb +0 -83
- data/lib/webgen/contentprocessor.rb +0 -117
- data/lib/webgen/contentprocessor/blocks.rb +0 -92
- data/lib/webgen/contentprocessor/builder.rb +0 -29
- data/lib/webgen/contentprocessor/erb.rb +0 -26
- data/lib/webgen/contentprocessor/erubis.rb +0 -39
- data/lib/webgen/contentprocessor/fragments.rb +0 -25
- data/lib/webgen/contentprocessor/haml.rb +0 -34
- data/lib/webgen/contentprocessor/head.rb +0 -128
- data/lib/webgen/contentprocessor/kramdown.rb +0 -27
- data/lib/webgen/contentprocessor/kramdown/html.rb +0 -36
- data/lib/webgen/contentprocessor/less.rb +0 -35
- data/lib/webgen/contentprocessor/maruku.rb +0 -36
- data/lib/webgen/contentprocessor/rdiscount.rb +0 -19
- data/lib/webgen/contentprocessor/rdoc.rb +0 -20
- data/lib/webgen/contentprocessor/redcloth.rb +0 -21
- data/lib/webgen/contentprocessor/sass.rb +0 -22
- data/lib/webgen/contentprocessor/scss.rb +0 -22
- data/lib/webgen/contentprocessor/tags.rb +0 -170
- data/lib/webgen/contentprocessor/tidy.rb +0 -38
- data/lib/webgen/contentprocessor/xmllint.rb +0 -37
- data/lib/webgen/context/render.rb +0 -32
- data/lib/webgen/context/tags.rb +0 -20
- data/lib/webgen/coreext.rb +0 -13
- data/lib/webgen/default_config.rb +0 -240
- data/lib/webgen/loggable.rb +0 -25
- data/lib/webgen/output.rb +0 -86
- data/lib/webgen/output/filesystem.rb +0 -69
- data/lib/webgen/source/filesystem.rb +0 -61
- data/lib/webgen/source/resource.rb +0 -45
- data/lib/webgen/source/tararchive.rb +0 -78
- data/lib/webgen/sourcehandler.rb +0 -275
- data/lib/webgen/sourcehandler/base.rb +0 -281
- data/lib/webgen/sourcehandler/copy.rb +0 -44
- data/lib/webgen/sourcehandler/directory.rb +0 -30
- data/lib/webgen/sourcehandler/feed.rb +0 -92
- data/lib/webgen/sourcehandler/fragment.rb +0 -70
- data/lib/webgen/sourcehandler/memory.rb +0 -42
- data/lib/webgen/sourcehandler/metainfo.rb +0 -128
- data/lib/webgen/sourcehandler/page.rb +0 -64
- data/lib/webgen/sourcehandler/sitemap.rb +0 -60
- data/lib/webgen/sourcehandler/template.rb +0 -66
- data/lib/webgen/sourcehandler/virtual.rb +0 -117
- data/lib/webgen/tag/base.rb +0 -170
- data/lib/webgen/tag/breadcrumbtrail.rb +0 -70
- data/lib/webgen/tag/executecommand.rb +0 -31
- data/lib/webgen/tag/includefile.rb +0 -42
- data/lib/webgen/tag/metainfo.rb +0 -27
- data/lib/webgen/tag/sitemap.rb +0 -41
- data/lib/webgen/websiteaccess.rb +0 -31
- data/lib/webgen/websitemanager.rb +0 -125
- data/misc/default.css +0 -403
- data/misc/default.template +0 -76
- data/misc/htmldoc.metainfo +0 -26
- data/misc/htmldoc.virtual +0 -17
- data/misc/images/arrow.gif +0 -0
- data/misc/images/error.png +0 -0
- data/misc/images/headerbg.jpg +0 -0
- data/misc/images/important.png +0 -0
- data/misc/images/information.png +0 -0
- data/misc/images/quote.gif +0 -0
- data/misc/images/warning.png +0 -0
- data/misc/logo.svg +0 -313
- data/misc/style.page +0 -33
- data/test/helper.rb +0 -61
- data/test/test_blackboard.rb +0 -60
- data/test/test_cli.rb +0 -119
- data/test/test_common_sitemap.rb +0 -58
- data/test/test_configuration.rb +0 -68
- data/test/test_contentprocessor.rb +0 -39
- data/test/test_contentprocessor_builder.rb +0 -41
- data/test/test_contentprocessor_erb.rb +0 -33
- data/test/test_contentprocessor_erubis.rb +0 -62
- data/test/test_contentprocessor_fragments.rb +0 -43
- data/test/test_contentprocessor_haml.rb +0 -39
- data/test/test_contentprocessor_head.rb +0 -96
- data/test/test_contentprocessor_kramdown.rb +0 -56
- data/test/test_contentprocessor_less.rb +0 -40
- data/test/test_contentprocessor_maruku.rb +0 -33
- data/test/test_contentprocessor_rdiscount.rb +0 -21
- data/test/test_contentprocessor_rdoc.rb +0 -22
- data/test/test_contentprocessor_redcloth.rb +0 -26
- data/test/test_contentprocessor_sass.rb +0 -28
- data/test/test_contentprocessor_scss.rb +0 -28
- data/test/test_contentprocessor_tags.rb +0 -122
- data/test/test_contentprocessor_tidy.rb +0 -34
- data/test/test_contentprocessor_xmllint.rb +0 -38
- data/test/test_context.rb +0 -81
- data/test/test_error.rb +0 -93
- data/test/test_loggable.rb +0 -32
- data/test/test_logger.rb +0 -94
- data/test/test_node.rb +0 -469
- data/test/test_output_filesystem.rb +0 -60
- data/test/test_path.rb +0 -241
- data/test/test_source_filesystem.rb +0 -76
- data/test/test_source_resource.rb +0 -28
- data/test/test_source_stacked.rb +0 -49
- data/test/test_sourcehandler_base.rb +0 -136
- data/test/test_sourcehandler_copy.rb +0 -47
- data/test/test_sourcehandler_directory.rb +0 -38
- data/test/test_sourcehandler_feed.rb +0 -88
- data/test/test_sourcehandler_fragment.rb +0 -70
- data/test/test_sourcehandler_main.rb +0 -39
- data/test/test_sourcehandler_memory.rb +0 -44
- data/test/test_sourcehandler_metainfo.rb +0 -127
- data/test/test_sourcehandler_page.rb +0 -73
- data/test/test_sourcehandler_sitemap.rb +0 -68
- data/test/test_sourcehandler_template.rb +0 -68
- data/test/test_sourcehandler_virtual.rb +0 -106
- data/test/test_tag_base.rb +0 -62
- data/test/test_tag_breadcrumbtrail.rb +0 -91
- data/test/test_tag_coderay.rb +0 -45
- data/test/test_tag_date.rb +0 -18
- data/test/test_tag_executecommand.rb +0 -41
- data/test/test_tag_includefile.rb +0 -50
- data/test/test_tag_langbar.rb +0 -71
- data/test/test_tag_link.rb +0 -70
- data/test/test_tag_menu.rb +0 -207
- data/test/test_tag_metainfo.rb +0 -26
- data/test/test_tag_relocatable.rb +0 -60
- data/test/test_tag_sitemap.rb +0 -47
- data/test/test_tag_tikz.rb +0 -69
- data/test/test_tree.rb +0 -70
- data/test/test_website.rb +0 -130
- data/test/test_websiteaccess.rb +0 -25
- data/test/test_websitemanager.rb +0 -65
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
require 'tempfile'
|
|
3
|
-
|
|
4
|
-
module Webgen::ContentProcessor
|
|
5
|
-
|
|
6
|
-
# Uses the external +tidy+ program to format the content as valid (X)HTML.
|
|
7
|
-
class Tidy
|
|
8
|
-
|
|
9
|
-
include Webgen::Loggable
|
|
10
|
-
|
|
11
|
-
# Process the content of +context+ with the +tidy+ program.
|
|
12
|
-
def call(context)
|
|
13
|
-
error_file = Tempfile.new('webgen-tidy')
|
|
14
|
-
error_file.close
|
|
15
|
-
|
|
16
|
-
`tidy -v 2>&1`
|
|
17
|
-
if $?.exitstatus != 0
|
|
18
|
-
raise Webgen::CommandNotFoundError.new('tidy', self.class.name, context.dest_node)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
cmd = "tidy -q -f #{error_file.path} #{context.website.config['contentprocessor.tidy.options']}"
|
|
22
|
-
result = IO.popen(cmd, 'r+') do |io|
|
|
23
|
-
io.write(context.content)
|
|
24
|
-
io.close_write
|
|
25
|
-
io.read
|
|
26
|
-
end
|
|
27
|
-
if $?.exitstatus != 0
|
|
28
|
-
File.readlines(error_file.path).each do |line|
|
|
29
|
-
log($?.exitstatus == 1 ? :warn : :error) { "Tidy reported problems for <#{context.dest_node}>: #{line}" }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
context.content = result
|
|
33
|
-
context
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
require 'tempfile'
|
|
3
|
-
|
|
4
|
-
module Webgen::ContentProcessor
|
|
5
|
-
|
|
6
|
-
# Uses the external +xmllint+ program to check if the content is valid (X)HTML.
|
|
7
|
-
class Xmllint
|
|
8
|
-
|
|
9
|
-
include Webgen::Loggable
|
|
10
|
-
|
|
11
|
-
# Checks the content of +context+ with the +xmllint+ program for validness.
|
|
12
|
-
def call(context)
|
|
13
|
-
error_file = Tempfile.new('webgen-xmllint')
|
|
14
|
-
error_file.close
|
|
15
|
-
|
|
16
|
-
`xmllint --version 2>&1`
|
|
17
|
-
if $?.exitstatus != 0
|
|
18
|
-
raise Webgen::CommandNotFoundError.new('xmllint', self.class.name, context.dest_node)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
cmd = "xmllint #{context.website.config['contentprocessor.xmllint.options']} - 2>'#{error_file.path}'"
|
|
22
|
-
result = IO.popen(cmd, 'r+') do |io|
|
|
23
|
-
io.write(context.content)
|
|
24
|
-
io.close_write
|
|
25
|
-
io.read
|
|
26
|
-
end
|
|
27
|
-
if $?.exitstatus != 0
|
|
28
|
-
File.read(error_file.path).scan(/^-:(\d+):(.*?\n)(.*?\n)/).each do |line, error_msg, line_context|
|
|
29
|
-
log(:warn) { "xmllint reported problems for <#{context.dest_node}:~#{line}>: #{error_msg.strip} (context: #{line_context.strip})" }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
context
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module Webgen
|
|
2
|
-
|
|
3
|
-
class Context
|
|
4
|
-
|
|
5
|
-
# Render the named block and return the result.
|
|
6
|
-
#
|
|
7
|
-
# call-seq:
|
|
8
|
-
# context.render_block(block_name)<br />
|
|
9
|
-
# context.render_block(:name => block_name, :option => value, ...)
|
|
10
|
-
#
|
|
11
|
-
# This method uses the functionality of the content processor +blocks+ for doing the actual
|
|
12
|
-
# work, so you may also want to look at Webgen::ContentProcessor::Blocks#render_block. You can
|
|
13
|
-
# call this method in two ways:
|
|
14
|
-
#
|
|
15
|
-
# [<tt>#render_block(block_name)</tt>]
|
|
16
|
-
# Renders the block named +block_name+ of the next node in the current node chain. This is the
|
|
17
|
-
# version that most want to use since it is equivalent to the use of <tt><webgen:block
|
|
18
|
-
# name="block_name" /></tt>. It is equivalent to <tt>#render_block(:name =>
|
|
19
|
-
# block_name)</tt>.
|
|
20
|
-
#
|
|
21
|
-
# [<tt>#render_block(opts_hash)</tt>]
|
|
22
|
-
# This version allows the same level of control over the output as the blocks content
|
|
23
|
-
# processor. For a list of valid options have a look at the documentation of the
|
|
24
|
-
# Webgen::ContentProcessor::Blocks#render_block method!
|
|
25
|
-
def render_block(name_or_hash)
|
|
26
|
-
name_or_hash = {:name => name_or_hash} if name_or_hash.kind_of?(String)
|
|
27
|
-
website.cache.instance('Webgen::ContentProcessor::Blocks').render_block(self, name_or_hash)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
data/lib/webgen/context/tags.rb
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Webgen
|
|
2
|
-
|
|
3
|
-
class Context
|
|
4
|
-
|
|
5
|
-
# Returns the result of evaluating the webgen tag +name+ with the tag parameters +params+ and
|
|
6
|
-
# the +body+ in the current context.
|
|
7
|
-
#
|
|
8
|
-
# Have a look at Webgen::Tag::Base for more information about webgen tags!
|
|
9
|
-
#
|
|
10
|
-
# This method is useful when you want to have the functionality of webgen tags available but you
|
|
11
|
-
# don't want to use the content processor for them. Or, for example, if the used markup language
|
|
12
|
-
# uses a similar markup as webgen tags do and therefore you can't use the normal webgen tags
|
|
13
|
-
# content processor.
|
|
14
|
-
def tag(name, params = {}, body = '')
|
|
15
|
-
website.cache.instance('Webgen::ContentProcessor::Tags').process_tag(name, params, body, self)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
end
|
data/lib/webgen/coreext.rb
DELETED
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
website = Webgen::WebsiteAccess.website
|
|
4
|
-
config = website.config
|
|
5
|
-
|
|
6
|
-
# General configuration parameters
|
|
7
|
-
config.website.cache([:file, 'webgen.cache'], :doc => 'The file name (or String) from/to which the cache is read/written')
|
|
8
|
-
config.website.lang('en', :doc => 'The default language used for the website')
|
|
9
|
-
config.website.link_to_current_page(false, :doc => 'Specifies whether links to the current page should be used')
|
|
10
|
-
|
|
11
|
-
# All things regarding logging
|
|
12
|
-
config.logger.mask(nil, :doc => 'Only show logging events which match the regexp mask')
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# All things regarding resources
|
|
16
|
-
config.resources({}, :doc => 'A mapping from resource names to source identifiers')
|
|
17
|
-
|
|
18
|
-
resources = YAML::load(File.read(File.join(Webgen.data_dir, 'resources.yaml')))
|
|
19
|
-
resources.each do |res_path_template, res_name|
|
|
20
|
-
Dir.glob(File.join(Webgen.data_dir, res_path_template), File::FNM_CASEFOLD).each do |res_path|
|
|
21
|
-
substs = Hash.new {|h,k| h[k] = "$" + k }
|
|
22
|
-
substs.merge!({
|
|
23
|
-
'basename' => File.basename(res_path),
|
|
24
|
-
'basename_no_ext' => File.basename(res_path, '.*'),
|
|
25
|
-
'extname' => File.extname(res_path)[1..-1],
|
|
26
|
-
:dirnames => File.dirname(res_path).split(File::SEPARATOR),
|
|
27
|
-
})
|
|
28
|
-
name = res_name.to_s.gsub(/\$\w+/) do |m|
|
|
29
|
-
if m =~ /^\$dir(\d+)$/
|
|
30
|
-
substs[:dirnames][-($1.to_i)]
|
|
31
|
-
else
|
|
32
|
-
substs[m[1..-1]]
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
config['resources'][name] = if File.directory?(res_path)
|
|
36
|
-
["Webgen::Source::FileSystem", res_path]
|
|
37
|
-
else
|
|
38
|
-
["Webgen::Source::FileSystem", File.dirname(res_path), File.basename(res_path)]
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# All things regarding sources
|
|
45
|
-
config.sources [['/', "Webgen::Source::FileSystem", 'src']], :doc => 'One or more sources from which files are read, relative to website directory'
|
|
46
|
-
config.passive_sources([['/', "Webgen::Source::Resource", "webgen-passive-sources"]], :doc => 'One or more sources for delayed node creation on node resolution')
|
|
47
|
-
|
|
48
|
-
# All things regarding source handler
|
|
49
|
-
config.sourcehandler.patterns({
|
|
50
|
-
'Webgen::SourceHandler::Copy' => ['**/*.css', '**/*.js', '**/*.html', '**/*.gif', '**/*.jpg', '**/*.png', '**/*.ico'],
|
|
51
|
-
'Webgen::SourceHandler::Directory' => ['**/'],
|
|
52
|
-
'Webgen::SourceHandler::Metainfo' => ['**/metainfo', '**/*.metainfo'],
|
|
53
|
-
'Webgen::SourceHandler::Template' => ['**/*.template'],
|
|
54
|
-
'Webgen::SourceHandler::Page' => ['**/*.page'],
|
|
55
|
-
'Webgen::SourceHandler::Virtual' => ['**/virtual', '**/*.virtual'],
|
|
56
|
-
'Webgen::SourceHandler::Feed' => ['**/*.feed'],
|
|
57
|
-
'Webgen::SourceHandler::Sitemap' => ['**/*.sitemap']
|
|
58
|
-
}, :doc => 'Source handler to path pattern map')
|
|
59
|
-
config.sourcehandler.invoke({
|
|
60
|
-
1 => ['Webgen::SourceHandler::Directory', 'Webgen::SourceHandler::Metainfo'],
|
|
61
|
-
5 => ['Webgen::SourceHandler::Copy', 'Webgen::SourceHandler::Template',
|
|
62
|
-
'Webgen::SourceHandler::Page', 'Webgen::SourceHandler::Feed',
|
|
63
|
-
'Webgen::SourceHandler::Sitemap'],
|
|
64
|
-
9 => ['Webgen::SourceHandler::Virtual']
|
|
65
|
-
}, :doc => 'All source handlers listed here are used by webgen and invoked according to their priority setting')
|
|
66
|
-
config.sourcehandler.casefold(true, :doc => 'Specifies whether path are considered to be case-sensitive')
|
|
67
|
-
config.sourcehandler.use_hidden_files(false, :doc => 'Specifies whether hidden files (those starting with a dot) are used')
|
|
68
|
-
config.sourcehandler.ignore(['**/*~', '**/.svn/**'], :doc => 'Path patterns that should be ignored')
|
|
69
|
-
config.sourcehandler.default_lang_in_output_path(false, :doc => 'Specifies whether output paths in the default language should have the language in the name')
|
|
70
|
-
|
|
71
|
-
config.sourcehandler.default_meta_info({
|
|
72
|
-
:all => {
|
|
73
|
-
'output_path' => 'standard',
|
|
74
|
-
'output_path_style' => [:parent, :basename, ['.', :lang], :ext]
|
|
75
|
-
},
|
|
76
|
-
'Webgen::SourceHandler::Copy' => {
|
|
77
|
-
'kind' => 'asset'
|
|
78
|
-
},
|
|
79
|
-
'Webgen::SourceHandler::Directory' => {
|
|
80
|
-
'index_path' => 'index.html',
|
|
81
|
-
'kind' => 'directory'
|
|
82
|
-
},
|
|
83
|
-
'Webgen::SourceHandler::Page' => {
|
|
84
|
-
'kind' => 'page',
|
|
85
|
-
'fragments_in_menu' => true,
|
|
86
|
-
'blocks' => {'default' => {'pipeline' => 'erb,tags,markdown,blocks,fragments'}}
|
|
87
|
-
},
|
|
88
|
-
'Webgen::SourceHandler::Fragment' => {
|
|
89
|
-
'kind' => 'fragment'
|
|
90
|
-
},
|
|
91
|
-
'Webgen::SourceHandler::Template' => {
|
|
92
|
-
'blocks' => {'default' => {'pipeline' => 'erb,tags,blocks,head'}}
|
|
93
|
-
},
|
|
94
|
-
'Webgen::SourceHandler::Metainfo' => {
|
|
95
|
-
'blocks' => {1 => {'name' => 'paths'}, 2 => {'name' => 'alcn'}}
|
|
96
|
-
},
|
|
97
|
-
'Webgen::SourceHandler::Feed' => {
|
|
98
|
-
'rss' => true,
|
|
99
|
-
'atom' => true,
|
|
100
|
-
'blocks' => {'default' => {'pipeline' => 'erb'}}
|
|
101
|
-
},
|
|
102
|
-
'Webgen::SourceHandler::Sitemap' => {
|
|
103
|
-
'default_priority' => 0.5,
|
|
104
|
-
'default_change_freq' => 'weekly',
|
|
105
|
-
'common.sitemap.any_lang' => true,
|
|
106
|
-
'blocks' => {'default' => {'pipeline' => 'erb'}}
|
|
107
|
-
}
|
|
108
|
-
}, :doc => "Default meta information for all nodes and for nodes belonging to a specific source handler")
|
|
109
|
-
|
|
110
|
-
config.sourcehandler.template.default_template('default.template', :doc => 'The name of the default template file of a directory')
|
|
111
|
-
|
|
112
|
-
website.autoload_service(:templates_for_node, 'Webgen::SourceHandler::Template')
|
|
113
|
-
|
|
114
|
-
website.autoload_service(:create_fragment_nodes, 'Webgen::SourceHandler::Fragment')
|
|
115
|
-
website.autoload_service(:parse_html_headers, 'Webgen::SourceHandler::Fragment')
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
# All things regarding output
|
|
119
|
-
config.output ["Webgen::Output::FileSystem", 'out'], :doc => 'The class which is used to output the generated paths.'
|
|
120
|
-
config.output.do_deletion(false, :doc => 'Specifies whether the generated output paths should be deleted once the sources are deleted')
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
Webgen::WebsiteAccess.website.blackboard.add_service(:output_instance, Webgen::Output.method(:instance))
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
# All things regarding content processors
|
|
127
|
-
config.contentprocessor.map({
|
|
128
|
-
'markdown' => 'Webgen::ContentProcessor::Kramdown',
|
|
129
|
-
'maruku' => 'Webgen::ContentProcessor::Maruku',
|
|
130
|
-
'textile' => 'Webgen::ContentProcessor::RedCloth',
|
|
131
|
-
'redcloth' => 'Webgen::ContentProcessor::RedCloth',
|
|
132
|
-
'tags' => 'Webgen::ContentProcessor::Tags',
|
|
133
|
-
'blocks' => 'Webgen::ContentProcessor::Blocks',
|
|
134
|
-
'erb' => 'Webgen::ContentProcessor::Erb',
|
|
135
|
-
'haml' => 'Webgen::ContentProcessor::Haml',
|
|
136
|
-
'sass' => 'Webgen::ContentProcessor::Sass',
|
|
137
|
-
'scss' => 'Webgen::ContentProcessor::Scss',
|
|
138
|
-
'rdoc' => 'Webgen::ContentProcessor::RDoc',
|
|
139
|
-
'builder' => 'Webgen::ContentProcessor::Builder',
|
|
140
|
-
'erubis' => 'Webgen::ContentProcessor::Erubis',
|
|
141
|
-
'rdiscount' => 'Webgen::ContentProcessor::RDiscount',
|
|
142
|
-
'fragments' => 'Webgen::ContentProcessor::Fragments',
|
|
143
|
-
'head' => 'Webgen::ContentProcessor::Head',
|
|
144
|
-
'tidy' => 'Webgen::ContentProcessor::Tidy',
|
|
145
|
-
'xmllint' => 'Webgen::ContentProcessor::Xmllint',
|
|
146
|
-
'kramdown' => 'Webgen::ContentProcessor::Kramdown',
|
|
147
|
-
'less' => 'Webgen::ContentProcessor::Less'
|
|
148
|
-
}, :doc => 'Content processor name to class map')
|
|
149
|
-
|
|
150
|
-
Webgen::WebsiteAccess.website.blackboard.add_service(:content_processor_names, Webgen::ContentProcessor.method(:list))
|
|
151
|
-
Webgen::WebsiteAccess.website.blackboard.add_service(:content_processor, Webgen::ContentProcessor.method(:for_name))
|
|
152
|
-
Webgen::WebsiteAccess.website.blackboard.add_service(:content_processor_binary?, Webgen::ContentProcessor.method(:is_binary?))
|
|
153
|
-
|
|
154
|
-
# All things regarding tags
|
|
155
|
-
config.contentprocessor.tags.prefix('', :doc => 'The prefix used for tag names to avoid name clashes when another content processor uses similar markup.')
|
|
156
|
-
config.contentprocessor.tags.map({
|
|
157
|
-
'relocatable' => 'Webgen::Tag::Relocatable',
|
|
158
|
-
'menu' => 'Webgen::Tag::Menu',
|
|
159
|
-
'breadcrumb_trail' => 'Webgen::Tag::BreadcrumbTrail',
|
|
160
|
-
'langbar' => 'Webgen::Tag::Langbar',
|
|
161
|
-
'include_file' => 'Webgen::Tag::IncludeFile',
|
|
162
|
-
'execute_cmd' => 'Webgen::Tag::ExecuteCommand',
|
|
163
|
-
'coderay' => 'Webgen::Tag::Coderay',
|
|
164
|
-
'date' => 'Webgen::Tag::Date',
|
|
165
|
-
'sitemap' => 'Webgen::Tag::Sitemap',
|
|
166
|
-
'tikz' => 'Webgen::Tag::TikZ',
|
|
167
|
-
'link' => 'Webgen::Tag::Link',
|
|
168
|
-
:default => 'Webgen::Tag::Metainfo'
|
|
169
|
-
}, :doc => 'Tag processor name to class map')
|
|
170
|
-
|
|
171
|
-
config.contentprocessor.erubis.use_pi(false, :doc => 'Specifies whether processing instructions should be used')
|
|
172
|
-
config.contentprocessor.erubis.options({}, :doc => 'A hash of additional options')
|
|
173
|
-
|
|
174
|
-
config.contentprocessor.redcloth.hard_breaks(false, :doc => 'Specifies whether new lines are turned into hard breaks')
|
|
175
|
-
|
|
176
|
-
config.contentprocessor.tidy.options("-raw", :doc => "The options passed to the tidy command")
|
|
177
|
-
|
|
178
|
-
config.contentprocessor.xmllint.options("--catalogs --noout --valid", :doc => 'Options passed to the xmllint command')
|
|
179
|
-
|
|
180
|
-
config.contentprocessor.kramdown.options({:auto_ids => true}, :doc => 'The options hash for the kramdown processor')
|
|
181
|
-
config.contentprocessor.kramdown.handle_links(true, :doc => 'Whether all links in a kramdown document should be handled by webgen')
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
config.tag.metainfo.escape_html(true, :doc => 'Special HTML characters in the output will be escaped if true')
|
|
185
|
-
|
|
186
|
-
config.tag.relocatable.path(nil, :doc => 'The path which should be made relocatable', :mandatory => 'default')
|
|
187
|
-
|
|
188
|
-
config.tag.menu.start_level(1, :doc => 'The level at which the menu starts.')
|
|
189
|
-
config.tag.menu.min_levels(1, :doc => 'The minimum number of menu levels that should always be shown.')
|
|
190
|
-
config.tag.menu.max_levels(3, :doc => 'The maximum number of menu levels that should be shown.')
|
|
191
|
-
config.tag.menu.show_current_subtree_only(true, :doc => 'Specifies whether only the current subtree should be shown.')
|
|
192
|
-
config.tag.menu.used_nodes('all', :doc => 'Specifies the kind of nodes that should be used: all, files, or fragments')
|
|
193
|
-
config.tag.menu.nested(true, :doc => 'Specifies whether a nested menu list should be generated.')
|
|
194
|
-
|
|
195
|
-
config.tag.breadcrumbtrail.separator(' / ', :doc => 'Separates the hierachy entries from each other.')
|
|
196
|
-
config.tag.breadcrumbtrail.omit_index_path(false, :doc => 'Omits the last path component if it is an index path.')
|
|
197
|
-
config.tag.breadcrumbtrail.start_level(0, :doc => 'The level at which the breadcrumb trail starts.')
|
|
198
|
-
config.tag.breadcrumbtrail.end_level(-1, :doc => 'The level at which the breadcrumb trail ends.')
|
|
199
|
-
|
|
200
|
-
config.tag.langbar.separator(' | ', :doc => 'Separates the languages from each other.')
|
|
201
|
-
config.tag.langbar.show_single_lang(true, :doc => 'Should the link be shown although the page is only available in one language?')
|
|
202
|
-
config.tag.langbar.show_own_lang(true, :doc => 'Should the link to the currently displayed language page be shown?')
|
|
203
|
-
config.tag.langbar.lang_names({}, :doc => 'A map from language code to language names')
|
|
204
|
-
config.tag.langbar.process_output(false, :doc => 'The content of the language bar will be scanned for tags if true.')
|
|
205
|
-
|
|
206
|
-
config.tag.includefile.filename(nil, :doc => 'The name of the file which should be included (relative to the website).', :mandatory => 'default')
|
|
207
|
-
config.tag.includefile.process_output(true, :doc => 'The file content will be scanned for tags if true.')
|
|
208
|
-
config.tag.includefile.escape_html(true, :doc => 'Special HTML characters in the file content will be escaped if true.')
|
|
209
|
-
|
|
210
|
-
config.tag.executecommand.command(nil, :doc => 'The command which should be executed', :mandatory => 'default')
|
|
211
|
-
config.tag.executecommand.process_output(true, :doc => 'The output of the command will be scanned for tags if true')
|
|
212
|
-
config.tag.executecommand.escape_html(true, :doc => 'Special HTML characters in the output will be escaped if true')
|
|
213
|
-
|
|
214
|
-
config.tag.coderay.lang('ruby', :doc => 'The highlighting language', :mandatory => 'default')
|
|
215
|
-
config.tag.coderay.process_body(true, :doc => 'The tag body will be scanned for tags first if true')
|
|
216
|
-
config.tag.coderay.wrap(:div, :doc => 'Specifies how the code should be wrapped, either :div or :span')
|
|
217
|
-
config.tag.coderay.line_numbers(true, :doc => 'Show line numbers')
|
|
218
|
-
config.tag.coderay.line_number_start(1, :doc => 'Line number of first line')
|
|
219
|
-
config.tag.coderay.bold_every(10, :doc => 'The interval at which the line number appears bold')
|
|
220
|
-
config.tag.coderay.tab_width(8, :doc => 'Number of spaces used for a tabulator')
|
|
221
|
-
config.tag.coderay.css(:style, :doc => 'Specifies how the highlighted code should be styled')
|
|
222
|
-
|
|
223
|
-
config.tag.date.format('%Y-%m-%d %H:%M:%S', :doc => 'The format of the date (same options as Ruby\'s Time#strftime)')
|
|
224
|
-
|
|
225
|
-
config.tag.tikz.path(nil, :doc => 'The source path of the created image', :mandatory => 'default')
|
|
226
|
-
config.tag.tikz.libraries(nil, :doc => 'An array of additional TikZ library names')
|
|
227
|
-
config.tag.tikz.opts(nil, :doc => 'A string with global options for the tikzpicture environment')
|
|
228
|
-
config.tag.tikz.resolution('72 72', :doc => 'A string specifying the render and output resolutions')
|
|
229
|
-
config.tag.tikz.transparent(false, :doc => 'Specifies whether the generated image should be transparent (only png)')
|
|
230
|
-
config.tag.tikz.img_attr({}, :doc => 'A hash of additional HTML attributes for the created img tag')
|
|
231
|
-
|
|
232
|
-
config.tag.link.path(nil, :doc => 'The (A)LCN path to which a link should be generated', :mandatory => 'default')
|
|
233
|
-
config.tag.link.attr({}, :doc => 'A hash of additional HTML attributes that should be set on the link')
|
|
234
|
-
|
|
235
|
-
# All things regarding common functionality
|
|
236
|
-
website.autoload_service(:create_sitemap, 'Webgen::Common::Sitemap')
|
|
237
|
-
|
|
238
|
-
config.common.sitemap.honor_in_menu(false, :doc => 'Only include pages that are also in the menu if true')
|
|
239
|
-
config.common.sitemap.any_lang(false, :doc => 'Use nodes in any language if true')
|
|
240
|
-
config.common.sitemap.used_kinds(['page'], :doc => 'Array of node kinds that is used for the sitemap')
|
data/lib/webgen/loggable.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/websiteaccess'
|
|
4
|
-
|
|
5
|
-
module Webgen
|
|
6
|
-
|
|
7
|
-
# This module should be included in all classes that need a logging facility.
|
|
8
|
-
module Loggable
|
|
9
|
-
|
|
10
|
-
# Log the result of the +block+ using the log level +log_level+.
|
|
11
|
-
def log(sev_level, &block)
|
|
12
|
-
source = (self.kind_of?(Class) ? self.name : self.class.name) + '#' + caller[0][%r"`.*"][1..-2]
|
|
13
|
-
if WebsiteAccess.website && WebsiteAccess.website.logger && (!WebsiteAccess.website.config['logger.mask'] || source =~ WebsiteAccess.website.config['logger.mask'])
|
|
14
|
-
WebsiteAccess.website.logger.send(sev_level, source, &block)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Shortcut for writing a line to the normal log output.
|
|
19
|
-
def puts(*args)
|
|
20
|
-
(args.last == :verbose ? log(:verbose) { args[0..-2].join } : log(:stdout) { args.join })
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
data/lib/webgen/output.rb
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/common'
|
|
4
|
-
|
|
5
|
-
module Webgen
|
|
6
|
-
|
|
7
|
-
# Namespace for all classes that know how to write out node content.
|
|
8
|
-
#
|
|
9
|
-
# == Implementing an output class
|
|
10
|
-
#
|
|
11
|
-
# Output classes know how to write rendered node data to an output location.
|
|
12
|
-
#
|
|
13
|
-
# An output class must respond to three methods
|
|
14
|
-
#
|
|
15
|
-
# [<tt>exists?(path)</tt>]
|
|
16
|
-
# Return +true+ if the output path exists.
|
|
17
|
-
# [<tt>delete(path)</tt>]
|
|
18
|
-
# Delete the given output path.
|
|
19
|
-
# [<tt>write(path, data, type)</tt>]
|
|
20
|
-
# Write the +data+ to the given output +path+. The parameter +data+ is either a String with the
|
|
21
|
-
# content or a Webgen::Path::SourceIO object. The parameter +type+ specifies the type of the to
|
|
22
|
-
# be written path: <tt>:file</tt> or <tt>:directory</tt>.
|
|
23
|
-
# [<tt>read(path, mode = 'rb')</tt>]
|
|
24
|
-
# Return the content of the given path if it exists or raise an error otherwise. The parameter
|
|
25
|
-
# +mode+ specifies the mode in which the path should be opened and defaults to reading in binary
|
|
26
|
-
# mode.
|
|
27
|
-
#
|
|
28
|
-
# It seems a bit odd that an output instance has to implement reading functionality. However,
|
|
29
|
-
# consider the case where you want webgen to render a website programmatically and *use* the
|
|
30
|
-
# output. In this case you need a way to get to content of the written files! This functionality
|
|
31
|
-
# is used, for example, in the webgui.
|
|
32
|
-
#
|
|
33
|
-
# == Sample Output Class
|
|
34
|
-
#
|
|
35
|
-
# Following is a simple but actually used (by the webgui) output class which stores the written
|
|
36
|
-
# nodes in a hash in memory:
|
|
37
|
-
#
|
|
38
|
-
# class MemoryOutput
|
|
39
|
-
# include Webgen::WebsiteAccess
|
|
40
|
-
#
|
|
41
|
-
# attr_reader :data
|
|
42
|
-
#
|
|
43
|
-
# def initialize
|
|
44
|
-
# @data = {}
|
|
45
|
-
# end
|
|
46
|
-
#
|
|
47
|
-
# def exists?(path)
|
|
48
|
-
# @data.has_key?(path)
|
|
49
|
-
# end
|
|
50
|
-
#
|
|
51
|
-
# def delete(path)
|
|
52
|
-
# @data.delete(path)
|
|
53
|
-
# end
|
|
54
|
-
#
|
|
55
|
-
# def write(path, io, type = :file)
|
|
56
|
-
# @data[path] = [(io.kind_of?(String) ? io : io.data), type]
|
|
57
|
-
# end
|
|
58
|
-
#
|
|
59
|
-
# def read(path, mode = 'rb')
|
|
60
|
-
# path = File.join('/', path)
|
|
61
|
-
# raise "No such file #{path}" unless @data[path] && @data[path].last == :file
|
|
62
|
-
# @data[path].first
|
|
63
|
-
# end
|
|
64
|
-
# end
|
|
65
|
-
#
|
|
66
|
-
# WebsiteAccess.website.config.output(['MemoryOutput'])
|
|
67
|
-
#
|
|
68
|
-
# The last line is used to tell webgen to use this new output class instead of the default one.
|
|
69
|
-
#
|
|
70
|
-
module Output
|
|
71
|
-
|
|
72
|
-
autoload :FileSystem, 'webgen/output/filesystem'
|
|
73
|
-
|
|
74
|
-
# Returns an instance of the configured output class.
|
|
75
|
-
def self.instance
|
|
76
|
-
classes = (WebsiteAccess.website.cache.volatile[:classes] ||= {})
|
|
77
|
-
unless classes.has_key?(:output_instance)
|
|
78
|
-
klass, *args = WebsiteAccess.website.config['output']
|
|
79
|
-
classes[:output_instance] = Common.const_for_name(klass).new(*args)
|
|
80
|
-
end
|
|
81
|
-
classes[:output_instance]
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
end
|