gettalong-webgen 0.5.4.20080929
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 +10 -0
- data/GPL +340 -0
- data/Rakefile +324 -0
- data/THANKS +17 -0
- data/bin/webgen +10 -0
- data/data/webgen/resources.yaml +3 -0
- data/data/webgen/webgui/controller/main.rb +129 -0
- data/data/webgen/webgui/overrides/win32console.rb +0 -0
- data/data/webgen/webgui/public/css/jquery.autocomplete.css +50 -0
- data/data/webgen/webgui/public/css/ramaze_error.css +90 -0
- data/data/webgen/webgui/public/css/style.css +55 -0
- 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 +15 -0
- data/data/webgen/webgui/public/js/jquery.js +32 -0
- data/data/webgen/webgui/view/create_website.xhtml +22 -0
- data/data/webgen/webgui/view/error.xhtml +64 -0
- data/data/webgen/webgui/view/index.xhtml +22 -0
- data/data/webgen/webgui/view/manage_website.xhtml +18 -0
- data/data/webgen/webgui/view/page.xhtml +40 -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_skeleton/ext/init.rb +6 -0
- data/data/webgen/website_styles/1024px/README +13 -0
- data/data/webgen/website_styles/1024px/src/default.css +188 -0
- data/data/webgen/website_styles/1024px/src/default.template +60 -0
- data/data/webgen/website_styles/1024px/src/images/background.gif +0 -0
- data/data/webgen/website_styles/andreas00/README +13 -0
- data/data/webgen/website_styles/andreas00/src/default.css +290 -0
- data/data/webgen/website_styles/andreas00/src/default.template +60 -0
- data/data/webgen/website_styles/andreas00/src/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas00/src/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas00/src/images/menubg.gif +0 -0
- data/data/webgen/website_styles/andreas00/src/images/menubg2.gif +0 -0
- data/data/webgen/website_styles/andreas01/README +14 -0
- data/data/webgen/website_styles/andreas01/src/default.css +310 -0
- data/data/webgen/website_styles/andreas01/src/default.template +61 -0
- data/data/webgen/website_styles/andreas01/src/images/bg.gif +0 -0
- data/data/webgen/website_styles/andreas01/src/images/front.jpg +0 -0
- data/data/webgen/website_styles/andreas01/src/print.css +35 -0
- data/data/webgen/website_styles/andreas03/README +14 -0
- data/data/webgen/website_styles/andreas03/src/default.css +223 -0
- data/data/webgen/website_styles/andreas03/src/default.template +58 -0
- data/data/webgen/website_styles/andreas03/src/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas03/src/images/contbg.png +0 -0
- data/data/webgen/website_styles/andreas03/src/images/footerbg.png +0 -0
- data/data/webgen/website_styles/andreas03/src/images/gradient1.png +0 -0
- data/data/webgen/website_styles/andreas03/src/images/gradient2.png +0 -0
- data/data/webgen/website_styles/andreas04/README +15 -0
- data/data/webgen/website_styles/andreas04/src/default.css +290 -0
- data/data/webgen/website_styles/andreas04/src/default.template +81 -0
- data/data/webgen/website_styles/andreas04/src/images/blinkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/bodybg.png +0 -0
- data/data/webgen/website_styles/andreas04/src/images/contentbg.png +0 -0
- data/data/webgen/website_styles/andreas04/src/images/entrybg.png +0 -0
- data/data/webgen/website_styles/andreas04/src/images/flash.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/flash2.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/globe.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/globebottom.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/linkarrow.gif +0 -0
- data/data/webgen/website_styles/andreas04/src/images/menuhover.png +0 -0
- data/data/webgen/website_styles/andreas05/README +14 -0
- data/data/webgen/website_styles/andreas05/src/default.css +33 -0
- data/data/webgen/website_styles/andreas05/src/default.template +40 -0
- data/data/webgen/website_styles/andreas05/src/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas05/src/images/front.png +0 -0
- data/data/webgen/website_styles/andreas06/README +14 -0
- data/data/webgen/website_styles/andreas06/src/default.css +354 -0
- data/data/webgen/website_styles/andreas06/src/default.template +70 -0
- data/data/webgen/website_styles/andreas06/src/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas06/src/images/boxbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/src/images/greypx.gif +0 -0
- data/data/webgen/website_styles/andreas06/src/images/header.jpg +0 -0
- data/data/webgen/website_styles/andreas06/src/images/innerbg.gif +0 -0
- data/data/webgen/website_styles/andreas06/src/images/leaves.jpg +0 -0
- data/data/webgen/website_styles/andreas06/src/images/tabs.gif +0 -0
- data/data/webgen/website_styles/andreas07/README +15 -0
- data/data/webgen/website_styles/andreas07/src/browserfix.css +7 -0
- data/data/webgen/website_styles/andreas07/src/default.css +92 -0
- data/data/webgen/website_styles/andreas07/src/default.template +42 -0
- data/data/webgen/website_styles/andreas07/src/images/bodybg.gif +0 -0
- data/data/webgen/website_styles/andreas07/src/images/sidebarbg.gif +0 -0
- data/data/webgen/website_styles/andreas08/README +14 -0
- data/data/webgen/website_styles/andreas08/src/default.css +224 -0
- data/data/webgen/website_styles/andreas08/src/default.template +51 -0
- data/data/webgen/website_styles/andreas09/README +14 -0
- data/data/webgen/website_styles/andreas09/src/default.css +308 -0
- data/data/webgen/website_styles/andreas09/src/default.template +68 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/bodybg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/footerbg.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover-black.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover-green.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover-orange.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover-purple.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover-red.jpg +0 -0
- data/data/webgen/website_styles/andreas09/src/images/menuhover.jpg +0 -0
- data/data/webgen/website_styles/simple/README +6 -0
- data/data/webgen/website_styles/simple/src/default.css +84 -0
- data/data/webgen/website_styles/simple/src/default.template +36 -0
- data/data/webgen/website_templates/default/README +6 -0
- data/data/webgen/website_templates/default/src/index.page +8 -0
- data/data/webgen/website_templates/project/README +5 -0
- data/data/webgen/website_templates/project/src/about.page +12 -0
- data/data/webgen/website_templates/project/src/download.page +15 -0
- data/data/webgen/website_templates/project/src/features.page +8 -0
- data/data/webgen/website_templates/project/src/index.page +9 -0
- data/data/webgen/website_templates/project/src/screenshots.page +18 -0
- data/doc/contentprocessor.template +11 -0
- data/doc/contentprocessor/blocks.page +66 -0
- data/doc/contentprocessor/builder.page +80 -0
- data/doc/contentprocessor/erb.page +56 -0
- data/doc/contentprocessor/erubis.page +46 -0
- data/doc/contentprocessor/haml.page +47 -0
- data/doc/contentprocessor/maruku.page +41 -0
- data/doc/contentprocessor/rdiscount.page +37 -0
- data/doc/contentprocessor/rdoc.page +36 -0
- data/doc/contentprocessor/redcloth.page +39 -0
- data/doc/contentprocessor/sass.page +31 -0
- data/doc/contentprocessor/tags.page +73 -0
- data/doc/extensions.metainfo +29 -0
- data/doc/extensions.page +16 -0
- data/doc/extensions.template +17 -0
- data/doc/faq.page +214 -0
- data/doc/getting_started.page +134 -0
- data/doc/index.page +65 -0
- data/doc/manual.page +532 -0
- data/doc/reference_configuration.page +646 -0
- data/doc/reference_metainfo.page +213 -0
- data/doc/sourcehandler.template +21 -0
- data/doc/sourcehandler/copy.page +19 -0
- data/doc/sourcehandler/directory.page +27 -0
- data/doc/sourcehandler/feed.page +82 -0
- data/doc/sourcehandler/metainfo.page +41 -0
- data/doc/sourcehandler/page.page +30 -0
- data/doc/sourcehandler/sitemap.page +46 -0
- data/doc/sourcehandler/template.page +45 -0
- data/doc/sourcehandler/virtual.page +49 -0
- data/doc/tag.template +25 -0
- data/doc/tag/breadcrumbtrail.page +40 -0
- data/doc/tag/coderay.page +49 -0
- data/doc/tag/date.page +31 -0
- data/doc/tag/executecommand.page +26 -0
- data/doc/tag/includefile.page +32 -0
- data/doc/tag/langbar.page +22 -0
- data/doc/tag/menu.page +92 -0
- data/doc/tag/metainfo.page +29 -0
- data/doc/tag/relocatable.page +38 -0
- data/doc/tag/sitemap.page +31 -0
- data/doc/upgrading.page +139 -0
- data/doc/webgen_page_format.page +128 -0
- data/lib/webgen/blackboard.rb +73 -0
- data/lib/webgen/cache.rb +85 -0
- data/lib/webgen/cli.rb +118 -0
- data/lib/webgen/cli/create_command.rb +64 -0
- data/lib/webgen/cli/run_command.rb +20 -0
- data/lib/webgen/cli/utils.rb +86 -0
- data/lib/webgen/cli/webgui_command.rb +49 -0
- data/lib/webgen/common.rb +10 -0
- data/lib/webgen/common/sitemap.rb +76 -0
- data/lib/webgen/configuration.rb +147 -0
- data/lib/webgen/contentprocessor.rb +96 -0
- data/lib/webgen/contentprocessor/blocks.rb +46 -0
- data/lib/webgen/contentprocessor/builder.rb +26 -0
- data/lib/webgen/contentprocessor/context.rb +90 -0
- data/lib/webgen/contentprocessor/erb.rb +24 -0
- data/lib/webgen/contentprocessor/erubis.rb +40 -0
- data/lib/webgen/contentprocessor/haml.rb +25 -0
- data/lib/webgen/contentprocessor/maruku.rb +18 -0
- data/lib/webgen/contentprocessor/rdiscount.rb +15 -0
- data/lib/webgen/contentprocessor/rdoc.rb +17 -0
- data/lib/webgen/contentprocessor/redcloth.rb +15 -0
- data/lib/webgen/contentprocessor/sass.rb +18 -0
- data/lib/webgen/contentprocessor/tags.rb +134 -0
- data/lib/webgen/coreext.rb +10 -0
- data/lib/webgen/default_config.rb +198 -0
- data/lib/webgen/languages.rb +578 -0
- data/lib/webgen/loggable.rb +23 -0
- data/lib/webgen/logger.rb +78 -0
- data/lib/webgen/node.rb +347 -0
- data/lib/webgen/output.rb +37 -0
- data/lib/webgen/output/filesystem.rb +67 -0
- data/lib/webgen/page.rb +133 -0
- data/lib/webgen/path.rb +182 -0
- data/lib/webgen/source.rb +24 -0
- data/lib/webgen/source/filesystem.rb +58 -0
- data/lib/webgen/source/resource.rb +42 -0
- data/lib/webgen/source/stacked.rb +53 -0
- data/lib/webgen/sourcehandler.rb +202 -0
- data/lib/webgen/sourcehandler/base.rb +211 -0
- data/lib/webgen/sourcehandler/copy.rb +41 -0
- data/lib/webgen/sourcehandler/directory.rb +31 -0
- data/lib/webgen/sourcehandler/feed.rb +121 -0
- data/lib/webgen/sourcehandler/fragment.rb +71 -0
- data/lib/webgen/sourcehandler/metainfo.rb +117 -0
- data/lib/webgen/sourcehandler/page.rb +77 -0
- data/lib/webgen/sourcehandler/sitemap.rb +60 -0
- data/lib/webgen/sourcehandler/template.rb +68 -0
- data/lib/webgen/sourcehandler/virtual.rb +75 -0
- data/lib/webgen/tag.rb +23 -0
- data/lib/webgen/tag/base.rb +162 -0
- data/lib/webgen/tag/breadcrumbtrail.rb +71 -0
- data/lib/webgen/tag/coderay.rb +32 -0
- data/lib/webgen/tag/date.rb +18 -0
- data/lib/webgen/tag/executecommand.rb +29 -0
- data/lib/webgen/tag/includefile.rb +42 -0
- data/lib/webgen/tag/langbar.rb +52 -0
- data/lib/webgen/tag/menu.rb +186 -0
- data/lib/webgen/tag/metainfo.rb +25 -0
- data/lib/webgen/tag/relocatable.rb +53 -0
- data/lib/webgen/tag/sitemap.rb +42 -0
- data/lib/webgen/tree.rb +80 -0
- data/lib/webgen/version.rb +6 -0
- data/lib/webgen/webgentask.rb +148 -0
- data/lib/webgen/website.rb +214 -0
- data/lib/webgen/websiteaccess.rb +29 -0
- data/lib/webgen/websitemanager.rb +125 -0
- data/man/man1/webgen.1 +67 -0
- data/misc/default.css +360 -0
- data/misc/default.template +75 -0
- data/misc/htmldoc.metainfo +25 -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/setup.rb +1585 -0
- data/test/helper.rb +41 -0
- data/test/test_blackboard.rb +58 -0
- data/test/test_cache.rb +57 -0
- data/test/test_common_sitemap.rb +56 -0
- data/test/test_configuration.rb +66 -0
- data/test/test_contentprocessor.rb +31 -0
- data/test/test_contentprocessor_blocks.rb +34 -0
- data/test/test_contentprocessor_builder.rb +19 -0
- data/test/test_contentprocessor_context.rb +38 -0
- data/test/test_contentprocessor_erb.rb +20 -0
- data/test/test_contentprocessor_erubis.rb +47 -0
- data/test/test_contentprocessor_haml.rb +20 -0
- data/test/test_contentprocessor_maruku.rb +27 -0
- data/test/test_contentprocessor_rdiscount.rb +15 -0
- data/test/test_contentprocessor_rdoc.rb +16 -0
- data/test/test_contentprocessor_redcloth.rb +12 -0
- data/test/test_contentprocessor_sass.rb +20 -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 +339 -0
- data/test/test_output_filesystem.rb +58 -0
- data/test/test_page.rb +203 -0
- data/test/test_path.rb +131 -0
- data/test/test_source_filesystem.rb +59 -0
- data/test/test_source_resource.rb +26 -0
- data/test/test_source_stacked.rb +34 -0
- data/test/test_sourcehandler_base.rb +92 -0
- data/test/test_sourcehandler_copy.rb +45 -0
- data/test/test_sourcehandler_directory.rb +25 -0
- data/test/test_sourcehandler_feed.rb +74 -0
- data/test/test_sourcehandler_fragment.rb +67 -0
- data/test/test_sourcehandler_metainfo.rb +93 -0
- data/test/test_sourcehandler_page.rb +70 -0
- data/test/test_sourcehandler_sitemap.rb +47 -0
- data/test/test_sourcehandler_template.rb +63 -0
- data/test/test_sourcehandler_virtual.rb +56 -0
- data/test/test_tag_base.rb +82 -0
- data/test/test_tag_breadcrumbtrail.rb +89 -0
- data/test/test_tag_coderay.rb +30 -0
- data/test/test_tag_date.rb +16 -0
- data/test/test_tag_executecommand.rb +39 -0
- data/test/test_tag_includefile.rb +48 -0
- data/test/test_tag_langbar.rb +60 -0
- data/test/test_tag_menu.rb +195 -0
- data/test/test_tag_metainfo.rb +17 -0
- data/test/test_tag_relocatable.rb +57 -0
- data/test/test_tag_sitemap.rb +44 -0
- data/test/test_tree.rb +69 -0
- data/test/test_webgentask.rb +21 -0
- data/test/test_website.rb +96 -0
- data/test/test_websiteaccess.rb +23 -0
- data/test/test_websitemanager.rb +68 -0
- metadata +575 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#all { background-color: #CCCCCC; }
|
2
|
+
|
3
|
+
#header {
|
4
|
+
border-bottom: 1px solid black;
|
5
|
+
padding: 1ex;
|
6
|
+
background-color: #888888;
|
7
|
+
}
|
8
|
+
|
9
|
+
#header h1 {
|
10
|
+
margin: 0ex;
|
11
|
+
font-size: 300%;
|
12
|
+
font-style: italic;
|
13
|
+
font-weight: normal;
|
14
|
+
}
|
15
|
+
|
16
|
+
#headerbar { border-bottom: 1px solid black; }
|
17
|
+
#footer { border-top: 1px solid black; }
|
18
|
+
|
19
|
+
#body {
|
20
|
+
margin-left: 250px;
|
21
|
+
margin-right: 20px;
|
22
|
+
padding: 10px;
|
23
|
+
}
|
24
|
+
|
25
|
+
#menu {
|
26
|
+
float: left;
|
27
|
+
width: 230px;
|
28
|
+
padding: 20px 0px 0px 2px;
|
29
|
+
}
|
30
|
+
|
31
|
+
.bar {
|
32
|
+
clear: both;
|
33
|
+
padding: 3px;
|
34
|
+
text-align: center;
|
35
|
+
font-size: 90%;
|
36
|
+
background-color: #AAAAAA;
|
37
|
+
}
|
38
|
+
|
39
|
+
.left, .right {
|
40
|
+
padding: 0px 1em;
|
41
|
+
}
|
42
|
+
|
43
|
+
.left {
|
44
|
+
float: left;
|
45
|
+
text-align: left;
|
46
|
+
}
|
47
|
+
|
48
|
+
.right {
|
49
|
+
float: right;
|
50
|
+
text-align: right;
|
51
|
+
}
|
52
|
+
|
53
|
+
/* styling the menu */
|
54
|
+
|
55
|
+
#menu a, #menu span {
|
56
|
+
text-decoration: none;
|
57
|
+
font-weight: bold;
|
58
|
+
font-size: 130%;
|
59
|
+
}
|
60
|
+
|
61
|
+
#menu a:hover {
|
62
|
+
text-decoration: underline;
|
63
|
+
}
|
64
|
+
|
65
|
+
#menu .webgen-menu-item-selected {
|
66
|
+
border-left: 3px solid black;
|
67
|
+
}
|
68
|
+
|
69
|
+
#menu ul {
|
70
|
+
list-style-type: none;
|
71
|
+
padding: 0px;
|
72
|
+
margin-left: 10px;
|
73
|
+
}
|
74
|
+
|
75
|
+
#menu li > ul {
|
76
|
+
font-size: 95%;
|
77
|
+
}
|
78
|
+
|
79
|
+
#menu li {
|
80
|
+
margin: 0.0em 0px;
|
81
|
+
padding: 2px 0px;
|
82
|
+
padding-left: 5px;
|
83
|
+
border-left: 3px solid #CCCCCC;
|
84
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{lang:}">
|
4
|
+
<head>
|
5
|
+
<title>{title: }</title>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<meta name="description" content="Your description goes here..." />
|
8
|
+
<meta name="keywords" content="your,keywords,goes,here" />
|
9
|
+
<meta name="author" content="Your Name" />
|
10
|
+
<meta name="generator" content="webgen - http://webgen.rubyforge.com/" />
|
11
|
+
<link href="{relocatable: default.css}" rel="stylesheet" type="text/css" />
|
12
|
+
</head>
|
13
|
+
<body>
|
14
|
+
<div id="header">
|
15
|
+
<h1>{title: }</h1>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div id="headerbar" class="bar">
|
19
|
+
<span class="left">Location: {breadcrumb_trail: }</span>
|
20
|
+
<span class="right">Language: {langbar: }</span>
|
21
|
+
<div style="clear:both"></div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div id="menu">
|
25
|
+
{menu: }
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div id="body">
|
29
|
+
<webgen:block name="content" />
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div id="footer" class="bar">
|
33
|
+
Generated by <a href="http://webgen.rubyforge.org">webgen</a> on <b>{date: }</b>
|
34
|
+
</div>
|
35
|
+
</body>
|
36
|
+
</html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
---
|
2
|
+
template: extensions.template
|
3
|
+
--- name:summary pipeline:erb,tags,maruku,blocks
|
4
|
+
|
5
|
+
As short name for the content processor (used, for example, in the `pipeline` option of a block in a
|
6
|
+
file in [Webgen Page Format]({relocatable: webgen_page_format.html})) one of the following can be
|
7
|
+
used: `<%= context.website.config['contentprocessor.map'].select {|k,v| v ==
|
8
|
+
context.content_node['title']}.map {|k,v| k}.join(', ') %>`.
|
9
|
+
|
10
|
+
--- name:content
|
11
|
+
<webgen:block name='content' />
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
title: Webgen::ContentProcessor::Blocks
|
3
|
+
---
|
4
|
+
## Description
|
5
|
+
|
6
|
+
This processor replaces a special xml tag with rendered blocks. It is used, for example, in
|
7
|
+
templates to define the place where the actual page content should be.
|
8
|
+
|
9
|
+
The general syntax is as follows:
|
10
|
+
|
11
|
+
<webgen:block name='BLOCK_NAME' chain='(L)CN;(L)CN;...' />
|
12
|
+
|
13
|
+
So it is basically an XML tag with two attributes, `name` and `chain`. The `name` attribute
|
14
|
+
specifies the name of the block that should be rendered in place of the block tag. The next node in
|
15
|
+
the used node chain needs to have a block that is named so, otherwise an error is thrown (if there
|
16
|
+
is only one node left in the node chain that node is used). The block is rendered according to its
|
17
|
+
render pipeline and then inserted.
|
18
|
+
|
19
|
+
The optional attribute `chain` specifies the node chain that should be used for rendering the
|
20
|
+
block. Its value needs to be a list of (localized) canonical names of nodes separated by semicolons
|
21
|
+
that should be used as node chain. If this attribute is not specified the default node chain is
|
22
|
+
used.
|
23
|
+
|
24
|
+
This is more easily explained with examples. Assume we have a `default.template` file, a
|
25
|
+
`page.template` file and a `my.page` file with the following contents:
|
26
|
+
|
27
|
+
The `default.template` file:
|
28
|
+
|
29
|
+
--- name:content pipeline:blocks
|
30
|
+
before default
|
31
|
+
<webgen:block name='content' />
|
32
|
+
after default 1
|
33
|
+
<webgen:block name='content' chain='page.template;my.html' />
|
34
|
+
after default 2
|
35
|
+
|
36
|
+
The `page.template` file:
|
37
|
+
|
38
|
+
--- name:content pipeline:blocks
|
39
|
+
before page 1
|
40
|
+
<webgen:block name='content' />
|
41
|
+
after page 1
|
42
|
+
|
43
|
+
And the `my.page` file:
|
44
|
+
|
45
|
+
--- name:content pipeline:
|
46
|
+
The content of the page file.
|
47
|
+
|
48
|
+
When `my.page` gets rendered to `my.html`, the node chain looks like this by default:
|
49
|
+
|
50
|
+
default.template ---> my.page
|
51
|
+
|
52
|
+
The first webgen block tag just inserts the rendered block named `content` of `my.page`. The second
|
53
|
+
block tag uses a custom node chain. Therefore the block named `content` of `page.template` gets
|
54
|
+
rendered using the node chain:
|
55
|
+
|
56
|
+
page.template ---> my.page
|
57
|
+
|
58
|
+
and then inserted. Summing up the above, the rendered file `my.html` will then look like this:
|
59
|
+
|
60
|
+
before default 1
|
61
|
+
The content of the page file.
|
62
|
+
after default 1
|
63
|
+
before page 1
|
64
|
+
The content of the page file.
|
65
|
+
after page 1
|
66
|
+
after default 2
|
@@ -0,0 +1,80 @@
|
|
1
|
+
---
|
2
|
+
title: Webgen::ContentProcessor::Builder
|
3
|
+
---
|
4
|
+
## Description
|
5
|
+
|
6
|
+
This content processor can be used to programatically create XHTML/XML documents
|
7
|
+
([Reference][1]). The top builder object is provided through the `xml` object. There are also other
|
8
|
+
objects provided by webgen available - have a look at the [erb documentation]({relocatable:
|
9
|
+
erb.html}).
|
10
|
+
|
11
|
+
> This extension is only available if you have installed the [builder][1] library. The preferred way
|
12
|
+
> to do this is via Rubygems:
|
13
|
+
>
|
14
|
+
> gem install builder
|
15
|
+
{.exclamation}
|
16
|
+
|
17
|
+
|
18
|
+
## Examples
|
19
|
+
|
20
|
+
Here is a short sample of content that is valid Ruby and uses the special `xml` object:
|
21
|
+
|
22
|
+
xml.h1("This a h1 header", :id => 'myid')
|
23
|
+
|
24
|
+
xml.p do |p|
|
25
|
+
p.text! "You can just write "
|
26
|
+
p.b "your"
|
27
|
+
p.text! "paragraphs here and"
|
28
|
+
p.a("link", :href => "http://someurl.com")
|
29
|
+
p.text! "them below. This is also a"
|
30
|
+
p.i "nice"
|
31
|
+
p.text! "format!"
|
32
|
+
end
|
33
|
+
|
34
|
+
xml.blockquote(:class => 'information') do |bq|
|
35
|
+
bq.text! "Citations are easy too."
|
36
|
+
bq.text! "Really. And you can assign them attributes."
|
37
|
+
end
|
38
|
+
|
39
|
+
xml.ul do |ul|
|
40
|
+
ul.li "Lists"
|
41
|
+
ul.li "aren't"
|
42
|
+
ul.li "difficult"
|
43
|
+
ul.li "either."
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
Following is a complete example which shows how to use this extension in a page file which generates
|
48
|
+
a custom XML document (the `content` block has to be valid Ruby!):
|
49
|
+
|
50
|
+
---
|
51
|
+
output_path_style: [:parent, :cnbase, ['.', :lang], '.xml']
|
52
|
+
title: Person Object
|
53
|
+
template: ~
|
54
|
+
--- pipeline:builder
|
55
|
+
xml.persons(:path => node.absolute_lcn) do |p|
|
56
|
+
p.person do |b|
|
57
|
+
b.firstname('Thomas')
|
58
|
+
b.lastname('Leitner')
|
59
|
+
end
|
60
|
+
p.person do |b|
|
61
|
+
b.firstname('Other first')
|
62
|
+
b.lastname('Other last')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
The above will produce the following output:
|
67
|
+
|
68
|
+
<persons path="/test.xml">
|
69
|
+
<person>
|
70
|
+
<firstname>Thomas</firstname>
|
71
|
+
<lastname>Leitner</lastname>
|
72
|
+
</person>
|
73
|
+
<person>
|
74
|
+
<firstname>Other first</firstname>
|
75
|
+
<lastname>Other last</lastname>
|
76
|
+
</person>
|
77
|
+
</persons>
|
78
|
+
|
79
|
+
|
80
|
+
[1]: http://builder.rubyforge.org "Homepage of builder library"
|
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
title: Webgen::ContentProcessor::Erb
|
3
|
+
---
|
4
|
+
## Description
|
5
|
+
|
6
|
+
This processer uses ERB (embedded Ruby) to process content. For detailed information about ERB have
|
7
|
+
a look at its documentation by executing `ri ERB` or the [ruby documentation
|
8
|
+
site](http://www.ruby-doc.org/)!
|
9
|
+
|
10
|
+
You can use the following special objects in your ERB code:
|
11
|
+
|
12
|
+
* `context`: This object provides the whole rendering context, the following objects are just for
|
13
|
+
backwards compatibility.
|
14
|
+
|
15
|
+
* `ref_node` (or `context.ref_node`): The reference node which is the source of the ERB code that is
|
16
|
+
executed. Should be used, for example, for resolving paths.
|
17
|
+
|
18
|
+
* `node` (or `context.content_node`): The node that gets currently rendered. Should be used for
|
19
|
+
retrieving meta information.
|
20
|
+
|
21
|
+
* `dest_node` (or `context.dest_node`): The node in which the result gets inserted. Should be used
|
22
|
+
for calculating relative paths.
|
23
|
+
|
24
|
+
Here is a small usage example. The following put in a page file
|
25
|
+
|
26
|
+
Counting 5 items dynamically:
|
27
|
+
<%% for i in 1..5 %>
|
28
|
+
* item <%%= i %>
|
29
|
+
<%% end %>
|
30
|
+
|
31
|
+
Outputting all meta information:
|
32
|
+
<%% node.meta_info.each do |k,v| %>
|
33
|
+
* <%%= k %> = <%%= v %>
|
34
|
+
<%% end %>
|
35
|
+
|
36
|
+
... will give the result:
|
37
|
+
|
38
|
+
Counting 5 items dynamically:
|
39
|
+
<% for i in 1..5 %>
|
40
|
+
* item <%= i %>
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
Outputting all meta information:
|
44
|
+
<% node.meta_info.each do |k,v| %>
|
45
|
+
* <%= k %> = <%= v %>
|
46
|
+
<% end %>
|
47
|
+
|
48
|
+
The second line shows the first form of the ERB tags which executes Ruby code but does not output
|
49
|
+
anything: it just starts a `for` loop. On the third line the second form of ERB tags is used to
|
50
|
+
output the result of the Ruby code (note the equation sign!). And the fourth line completes the
|
51
|
+
`for` loop by adding the needed `end` keyword.
|
52
|
+
|
53
|
+
> You may need to ensure that the ERB start and end tags are not processed by the content
|
54
|
+
> processor. For example, when using the RedCloth content processor, you may need to surround the
|
55
|
+
> ERB code with `<textile>` tags!
|
56
|
+
{.exclamation}
|