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,83 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/tag'
|
|
4
|
-
require 'webgen/websiteaccess'
|
|
5
|
-
|
|
6
|
-
module Webgen::Common
|
|
7
|
-
|
|
8
|
-
# This class provides functionality for creating sitemaps and checking if a sitemap has changed.
|
|
9
|
-
class Sitemap
|
|
10
|
-
|
|
11
|
-
include Webgen::WebsiteAccess
|
|
12
|
-
|
|
13
|
-
def initialize #:nodoc:
|
|
14
|
-
website.blackboard.add_listener(:node_changed?, method(:node_changed?))
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Return the sitemap tree as Webgen::Tag::Menu::MenuNode created for the +node+ in the language
|
|
18
|
-
# +lang+ using the provided +options+ which can be any configuration option starting with
|
|
19
|
-
# <tt>common.sitemap</tt>.
|
|
20
|
-
def create_sitemap(node, lang, options)
|
|
21
|
-
@options = options
|
|
22
|
-
tree = recursive_create(nil, node.tree.root, lang).sort!
|
|
23
|
-
@options = nil
|
|
24
|
-
(node.node_info[:common_sitemap] ||= {})[[options.to_a.sort, lang]] = tree.to_lcn_list
|
|
25
|
-
tree
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
#######
|
|
29
|
-
private
|
|
30
|
-
#######
|
|
31
|
-
|
|
32
|
-
# Recursively create the sitemap.
|
|
33
|
-
def recursive_create(parent, node, lang, in_sitemap = true)
|
|
34
|
-
mnode = Webgen::Tag::Menu::MenuNode.new(parent, node)
|
|
35
|
-
node.children.map do |n|
|
|
36
|
-
sub_in_sitemap = in_sitemap?(n, lang)
|
|
37
|
-
[(!n.children.empty? || sub_in_sitemap ? n : nil), sub_in_sitemap]
|
|
38
|
-
end.each do |n, sub_in_sitemap|
|
|
39
|
-
next if n.nil?
|
|
40
|
-
sub_node = recursive_create(mnode, n, lang, sub_in_sitemap)
|
|
41
|
-
mnode.children << sub_node unless sub_node.nil?
|
|
42
|
-
end
|
|
43
|
-
(mnode.children.empty? && !in_sitemap ? nil : mnode)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# Return +true+ if the +child+ of the +node+ is in the sitemap for the language +lang+.
|
|
47
|
-
def in_sitemap?(child, lang, allow_index_file = false)
|
|
48
|
-
((option('common.sitemap.used_kinds').empty? || option('common.sitemap.used_kinds').include?(child['kind']) ||
|
|
49
|
-
(child.routing_node(lang, false) != child && in_sitemap?(child.routing_node(lang), lang, true))) &&
|
|
50
|
-
(option('common.sitemap.any_lang') || child.lang.nil? || child.lang == lang) &&
|
|
51
|
-
(!option('common.sitemap.honor_in_menu') || child['in_menu']) &&
|
|
52
|
-
(allow_index_file || child.parent == child.tree.root || child.parent.routing_node(lang) != child))
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Retrieve the configuration option value for +name+. The value is taken from the current
|
|
56
|
-
# configuration options hash if +name+ is specified there or from the website configuration
|
|
57
|
-
# otherwise.
|
|
58
|
-
def option(name)
|
|
59
|
-
(@options && @options.has_key?(name) ? @options[name] : website.config[name])
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# Check if the sitemaps for +node+ have changed.
|
|
63
|
-
def node_changed?(node)
|
|
64
|
-
return if !node.node_info[:common_sitemap]
|
|
65
|
-
|
|
66
|
-
node.node_info[:common_sitemap].each do |(options, lang), cached_tree|
|
|
67
|
-
@options = options.to_hash
|
|
68
|
-
tree = recursive_create(nil, node.tree.root, lang).sort!.to_lcn_list
|
|
69
|
-
@options = nil
|
|
70
|
-
|
|
71
|
-
if (tree != cached_tree) ||
|
|
72
|
-
(tree.flatten.any? do |alcn|
|
|
73
|
-
(n = node.tree[alcn]) && (r = n.routing_node(lang)) && r.meta_info_changed?
|
|
74
|
-
end)
|
|
75
|
-
node.flag(:dirty)
|
|
76
|
-
break
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
end
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
module Webgen
|
|
4
|
-
|
|
5
|
-
# Namespace for all content processors.
|
|
6
|
-
#
|
|
7
|
-
# == Implementing a content processor
|
|
8
|
-
#
|
|
9
|
-
# Content processors are used to process the content of files, normally of files in Webgen Page
|
|
10
|
-
# Format. A content processor only needs to respond to one method called +call+ and must not take
|
|
11
|
-
# any parameters in the +initialize+ method. This method is invoked with a
|
|
12
|
-
# Webgen::Context object that provides the whole context (especially the content
|
|
13
|
-
# and the node chain) and the method needs to return this object. During processing a content
|
|
14
|
-
# processor normally changes the content of the context but it does not need to.
|
|
15
|
-
#
|
|
16
|
-
# A self-written content processor does not need to be in the Webgen::ContentProcessor namespace
|
|
17
|
-
# but all shipped ones do.
|
|
18
|
-
#
|
|
19
|
-
# After writing the content processor class, one needs to add it to the
|
|
20
|
-
# <tt>contentprocessor.map</tt> hash so that it is used by webgen. The key for the entry needs to
|
|
21
|
-
# be a short name without special characters or spaces and the value can be:
|
|
22
|
-
#
|
|
23
|
-
# * the class name, not as constant but as a string - then this content processor is assumed to
|
|
24
|
-
# work with textual data -, or
|
|
25
|
-
#
|
|
26
|
-
# * an array with the class name like before and the type, which needs to be <tt>:binary</tt> or
|
|
27
|
-
# <tt>:text</tt>.
|
|
28
|
-
#
|
|
29
|
-
# == Sample Content Processor
|
|
30
|
-
#
|
|
31
|
-
# The following sample content processor checks for a meta information +replace_key+ and replaces
|
|
32
|
-
# strings of the form <tt>replace_key:path/to/node</tt> with a link to the specified node if it is
|
|
33
|
-
# found.
|
|
34
|
-
#
|
|
35
|
-
# Note how the content node, the reference node and the destination node are used sothat the
|
|
36
|
-
# correct meta information is used, the node is correctly resolved and the correct relative link
|
|
37
|
-
# is calculated respectively!
|
|
38
|
-
#
|
|
39
|
-
# class SampleProcessor
|
|
40
|
-
#
|
|
41
|
-
# def call(context)
|
|
42
|
-
# if !context.content_node['replace_key'].to_s.empty?
|
|
43
|
-
# context.content.gsub!(/#{context.content_node['replace_key']}:([\w\/.]+)/ ) do |match|
|
|
44
|
-
# link_node = context.ref_node.resolve($1, context.content_node.lang)
|
|
45
|
-
# if link_node
|
|
46
|
-
# context.dest_node.link_to(link_node, :lang => context.content_node.lang)
|
|
47
|
-
# else
|
|
48
|
-
# match
|
|
49
|
-
# end
|
|
50
|
-
# end
|
|
51
|
-
# end
|
|
52
|
-
# context
|
|
53
|
-
# rescue Exception => e
|
|
54
|
-
# raise "Error while replacing special key: #{e.message}"
|
|
55
|
-
# end
|
|
56
|
-
#
|
|
57
|
-
# end
|
|
58
|
-
#
|
|
59
|
-
# Webgen::WebsiteAccess.website.config['contentprocessor.map']['replacer'] = 'SampleProcessor'
|
|
60
|
-
# # Or one could equally write
|
|
61
|
-
# # Webgen::WebsiteAccess.website.config['contentprocessor.map']['replacer'] = ['SampleProcessor', :text]
|
|
62
|
-
#
|
|
63
|
-
module ContentProcessor
|
|
64
|
-
|
|
65
|
-
autoload :Tags, 'webgen/contentprocessor/tags'
|
|
66
|
-
autoload :Blocks, 'webgen/contentprocessor/blocks'
|
|
67
|
-
autoload :Maruku, 'webgen/contentprocessor/maruku'
|
|
68
|
-
autoload :RedCloth, 'webgen/contentprocessor/redcloth'
|
|
69
|
-
autoload :Erb, 'webgen/contentprocessor/erb'
|
|
70
|
-
autoload :Haml, 'webgen/contentprocessor/haml'
|
|
71
|
-
autoload :Sass, 'webgen/contentprocessor/sass'
|
|
72
|
-
autoload :Scss, 'webgen/contentprocessor/scss'
|
|
73
|
-
autoload :RDoc, 'webgen/contentprocessor/rdoc'
|
|
74
|
-
autoload :Builder, 'webgen/contentprocessor/builder'
|
|
75
|
-
autoload :Erubis, 'webgen/contentprocessor/erubis'
|
|
76
|
-
autoload :RDiscount, 'webgen/contentprocessor/rdiscount'
|
|
77
|
-
autoload :Fragments, 'webgen/contentprocessor/fragments'
|
|
78
|
-
autoload :Head, 'webgen/contentprocessor/head'
|
|
79
|
-
autoload :Tidy, 'webgen/contentprocessor/tidy'
|
|
80
|
-
autoload :Xmllint, 'webgen/contentprocessor/xmllint'
|
|
81
|
-
autoload :Kramdown, 'webgen/contentprocessor/kramdown'
|
|
82
|
-
autoload :Less, 'webgen/contentprocessor/less'
|
|
83
|
-
|
|
84
|
-
# Return the list of all available content processors.
|
|
85
|
-
def self.list
|
|
86
|
-
WebsiteAccess.website.config['contentprocessor.map'].keys
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# Return the content processor object identified by +name+.
|
|
90
|
-
def self.for_name(name)
|
|
91
|
-
klass, cp_type = WebsiteAccess.website.config['contentprocessor.map'][name]
|
|
92
|
-
klass.nil? ? nil : WebsiteAccess.website.cache.instance(klass)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Return whether the content processor identified by +name+ is processing binary data.
|
|
96
|
-
def self.is_binary?(name)
|
|
97
|
-
WebsiteAccess.website.config['contentprocessor.map'][name].kind_of?(Array) &&
|
|
98
|
-
WebsiteAccess.website.config['contentprocessor.map'][name].last == :binary
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
# Helper class for accessing content processors in a Webgen::Context object.
|
|
102
|
-
class AccessHash
|
|
103
|
-
|
|
104
|
-
# Check if a content processor called +name+ exists.
|
|
105
|
-
def has_key?(name)
|
|
106
|
-
Webgen::ContentProcessor.list.include?(name)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
# Return (and proboably initialize) the content processor called +name+.
|
|
110
|
-
def [](name)
|
|
111
|
-
Webgen::ContentProcessor.for_name(name)
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
end
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
module Webgen::ContentProcessor
|
|
4
|
-
|
|
5
|
-
# Replaces special xml tags with the rendered content of a node.
|
|
6
|
-
class Blocks
|
|
7
|
-
|
|
8
|
-
include Webgen::Loggable
|
|
9
|
-
|
|
10
|
-
BLOCK_RE = /<webgen:block\s*?((?:\s\w+=('|")[^'"]+\2)+)\s*\/>/
|
|
11
|
-
BLOCK_ATTR_RE = /(\w+)=('|")([^'"]+)\2/
|
|
12
|
-
|
|
13
|
-
# Replace the webgen:block xml tags with the rendered content of the specified node.
|
|
14
|
-
def call(context)
|
|
15
|
-
context.content.gsub!(BLOCK_RE) do |match|
|
|
16
|
-
attr = {}
|
|
17
|
-
match_object = $~
|
|
18
|
-
attr[:line_nr_proc] = lambda { match_object.pre_match.scan("\n").size + 1 }
|
|
19
|
-
match.scan(BLOCK_ATTR_RE) {|name, sep, content| attr[name.to_sym] = content}
|
|
20
|
-
render_block(context, attr)
|
|
21
|
-
end
|
|
22
|
-
context
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Render a block of a page node and return the result.
|
|
26
|
-
#
|
|
27
|
-
# The Webgen::Context object +context+ is used as the render context and the +options+ hash
|
|
28
|
-
# needs to hold all relevant information, that is:
|
|
29
|
-
#
|
|
30
|
-
# [<tt>:name</tt> (mandatory)]
|
|
31
|
-
# The name of the block that should be used.
|
|
32
|
-
# [<tt>:chain</tt>]
|
|
33
|
-
# The node chain used for rendering. If this is not specified, the node chain from the context
|
|
34
|
-
# is used. It needs to be a String in the format <tt>(A)LCN;(A)LCN;...</tt> or an array of
|
|
35
|
-
# nodes.
|
|
36
|
-
# [<tt>:node</tt>]
|
|
37
|
-
# Defines which node in the node chain should be used. Valid values are +next+ (= default
|
|
38
|
-
# value; the next node in the node chain), +first+ (the first node in the node chain with a
|
|
39
|
-
# block called +name+) or +current+ (the currently rendered node, ignores the +chain+ option).
|
|
40
|
-
# [<tt>:notfound</tt>]
|
|
41
|
-
# If this property is set to +ignore+, a missing block will not raise an error. It is unset by
|
|
42
|
-
# default, so missing blocks will raise errors.
|
|
43
|
-
def render_block(context, options)
|
|
44
|
-
if options[:chain].nil?
|
|
45
|
-
used_chain = (context[:chain].length > 1 ? context[:chain][1..-1] : context[:chain]).dup
|
|
46
|
-
elsif options[:chain].kind_of?(Array)
|
|
47
|
-
used_chain = options[:chain]
|
|
48
|
-
dest_node = context.content_node
|
|
49
|
-
else
|
|
50
|
-
paths = options[:chain].split(';')
|
|
51
|
-
used_chain = paths.collect do |path|
|
|
52
|
-
temp_node = context.ref_node.resolve(path.strip, context.dest_node.lang)
|
|
53
|
-
if temp_node.nil?
|
|
54
|
-
raise Webgen::RenderError.new("Could not resolve <#{path.strip}>",
|
|
55
|
-
self.class.name, context.dest_node,
|
|
56
|
-
context.ref_node, (options[:line_nr_proc].call if options[:line_nr_proc]))
|
|
57
|
-
end
|
|
58
|
-
temp_node
|
|
59
|
-
end.compact
|
|
60
|
-
return '' if used_chain.length != paths.length
|
|
61
|
-
dest_node = context.content_node
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
if options[:node] == 'first'
|
|
65
|
-
used_chain.shift while used_chain.length > 0 && !used_chain.first.node_info[:page].blocks.has_key?(options[:name])
|
|
66
|
-
elsif options[:node] == 'current'
|
|
67
|
-
used_chain = context[:chain].dup
|
|
68
|
-
end
|
|
69
|
-
block_node = used_chain.first
|
|
70
|
-
|
|
71
|
-
if !block_node || !block_node.node_info[:page].blocks.has_key?(options[:name])
|
|
72
|
-
if options[:notfound] == 'ignore'
|
|
73
|
-
return ''
|
|
74
|
-
elsif block_node
|
|
75
|
-
raise Webgen::RenderError.new("No block named '#{options[:name]}' found in <#{block_node}>",
|
|
76
|
-
self.class.name, context.dest_node,
|
|
77
|
-
context.ref_node, (options[:line_nr_proc].call if options[:line_nr_proc]))
|
|
78
|
-
else
|
|
79
|
-
raise Webgen::RenderError.new("No node in the render chain has a block named '#{options[:name]}'",
|
|
80
|
-
self.class.name, context.dest_node,
|
|
81
|
-
context.ref_node, (options[:line_nr_proc].call if options[:line_nr_proc]))
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
context.dest_node.node_info[:used_nodes] << block_node.alcn
|
|
86
|
-
tmp_context = block_node.node_info[:page].blocks[options[:name]].render(context.clone(:chain => used_chain, :dest_node => dest_node))
|
|
87
|
-
tmp_context.content
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/common'
|
|
4
|
-
|
|
5
|
-
module Webgen::ContentProcessor
|
|
6
|
-
|
|
7
|
-
# Processes content that is valid Ruby to build an XML tree. This is done by using the +builder+
|
|
8
|
-
# library.
|
|
9
|
-
class Builder
|
|
10
|
-
|
|
11
|
-
# Process the content of +context+ which needs to be valid Ruby code. The special variable +xml+
|
|
12
|
-
# should be used to construct the XML content.
|
|
13
|
-
def call(context)
|
|
14
|
-
require 'builder'
|
|
15
|
-
|
|
16
|
-
xml = ::Builder::XmlMarkup.new(:indent => 2)
|
|
17
|
-
eval(context.content, binding, context.ref_node.alcn)
|
|
18
|
-
context.content = xml.target!
|
|
19
|
-
context
|
|
20
|
-
rescue LoadError
|
|
21
|
-
raise Webgen::LoadError.new('builder', self.class.name, context.dest_node, 'builder')
|
|
22
|
-
rescue Exception => e
|
|
23
|
-
raise Webgen::RenderError.new(e, self.class.name, context.dest_node,
|
|
24
|
-
Webgen::Common.error_file(e), Webgen::Common.error_line(e))
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/common'
|
|
4
|
-
|
|
5
|
-
module Webgen::ContentProcessor
|
|
6
|
-
|
|
7
|
-
# Processes embedded Ruby statements.
|
|
8
|
-
class Erb
|
|
9
|
-
|
|
10
|
-
# Process the Ruby statements embedded in the content of +context+.
|
|
11
|
-
def call(context)
|
|
12
|
-
require 'erb'
|
|
13
|
-
extend(ERB::Util)
|
|
14
|
-
|
|
15
|
-
erb = ERB.new(context.content)
|
|
16
|
-
erb.filename = context.ref_node.alcn
|
|
17
|
-
context.content = erb.result(binding)
|
|
18
|
-
context
|
|
19
|
-
rescue Exception => e
|
|
20
|
-
raise Webgen::RenderError.new(e, self.class.name, context.dest_node,
|
|
21
|
-
Webgen::Common.error_file(e), Webgen::Common.error_line(e))
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/common'
|
|
4
|
-
|
|
5
|
-
module Webgen::ContentProcessor
|
|
6
|
-
|
|
7
|
-
# Processes embedded Ruby statements with the +erubis+ library.
|
|
8
|
-
class Erubis
|
|
9
|
-
|
|
10
|
-
# Process the Ruby statements embedded in the content of +context+.
|
|
11
|
-
def call(context)
|
|
12
|
-
require 'erubis'
|
|
13
|
-
# including Erubis because of problem with resolving Erubis::XmlHelper et al
|
|
14
|
-
self.class.class_eval "include ::Erubis"
|
|
15
|
-
|
|
16
|
-
options = context.website.config['contentprocessor.erubis.options']
|
|
17
|
-
if context[:block]
|
|
18
|
-
use_pi = context[:block].options['erubis_use_pi']
|
|
19
|
-
context[:block].options.select {|k,v| k =~ /^erubis_/}.
|
|
20
|
-
each {|k,v| options[k.sub(/^erubis_/, '').to_sym] = v }
|
|
21
|
-
end
|
|
22
|
-
erubis = if (!use_pi.nil? && use_pi) || (use_pi.nil? && context.website.config['contentprocessor.erubis.use_pi'])
|
|
23
|
-
::Erubis::PI::Eruby.new(context.content, options)
|
|
24
|
-
else
|
|
25
|
-
::Erubis::Eruby.new(context.content, options)
|
|
26
|
-
end
|
|
27
|
-
erubis.filename = context.ref_node.alcn
|
|
28
|
-
context.content = erubis.result(binding)
|
|
29
|
-
context
|
|
30
|
-
rescue LoadError
|
|
31
|
-
raise Webgen::LoadError.new('erubis', self.class.name, context.dest_node, 'erubis')
|
|
32
|
-
rescue Exception => e
|
|
33
|
-
raise Webgen::RenderError.new(e, self.class.name, context.dest_node,
|
|
34
|
-
Webgen::Common.error_file(e), Webgen::Common.error_line(e))
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
module Webgen::ContentProcessor
|
|
4
|
-
|
|
5
|
-
# Uses the HTML headers h1, h2, ..., h6 to generate nested fragment nodes.
|
|
6
|
-
class Fragments
|
|
7
|
-
|
|
8
|
-
include Webgen::WebsiteAccess
|
|
9
|
-
|
|
10
|
-
# Generate the nested fragment nodes from <tt>context.content</tt> under
|
|
11
|
-
# <tt>content.content_node</tt> but only if there is no associated <tt>:block</tt> data in
|
|
12
|
-
# +context+ or the block is named +content+.
|
|
13
|
-
def call(context)
|
|
14
|
-
if !context[:block] || context[:block].name == 'content'
|
|
15
|
-
sections = website.blackboard.invoke(:parse_html_headers, context.content)
|
|
16
|
-
website.blackboard.invoke(:create_fragment_nodes, sections, context.content_node,
|
|
17
|
-
website.blackboard.invoke(:source_paths)[context.content_node.node_info[:src]],
|
|
18
|
-
context.content_node.meta_info['fragments_in_menu'])
|
|
19
|
-
end
|
|
20
|
-
context
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require 'webgen/common'
|
|
4
|
-
|
|
5
|
-
module Webgen::ContentProcessor
|
|
6
|
-
|
|
7
|
-
# Processes content in Haml markup using the +haml+ library.
|
|
8
|
-
class Haml
|
|
9
|
-
|
|
10
|
-
# Convert the content in +haml+ markup to HTML.
|
|
11
|
-
def call(context)
|
|
12
|
-
require 'haml'
|
|
13
|
-
|
|
14
|
-
locals = {:context => context}
|
|
15
|
-
context.content = ::Haml::Engine.new(context.content, :filename => context.ref_node.alcn).
|
|
16
|
-
render(Object.new, locals)
|
|
17
|
-
context
|
|
18
|
-
rescue LoadError
|
|
19
|
-
raise Webgen::LoadError.new('haml', self.class.name, context.dest_node, 'haml')
|
|
20
|
-
rescue ::Haml::Error => e
|
|
21
|
-
line = if e.line
|
|
22
|
-
e.line + 1
|
|
23
|
-
else
|
|
24
|
-
Webgen::Common.error_line(e)
|
|
25
|
-
end
|
|
26
|
-
raise Webgen::RenderError.new(e, self.class.name, context.dest_node, context.ref_node, line)
|
|
27
|
-
rescue Exception => e
|
|
28
|
-
raise Webgen::RenderError.new(e, self.class.name, context.dest_node,
|
|
29
|
-
Webgen::Common.error_file(e), Webgen::Common.error_line(e))
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|