webgen 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/ChangeLog +3662 -0
  2. data/Rakefile +8 -1
  3. data/VERSION +1 -1
  4. data/data/webgen/website_styles/1024px/src/default.template +1 -1
  5. data/data/webgen/website_styles/andreas00/src/default.template +1 -1
  6. data/data/webgen/website_styles/andreas01/src/default.template +2 -1
  7. data/data/webgen/website_styles/andreas03/src/default.template +1 -1
  8. data/data/webgen/website_styles/andreas04/src/default.template +1 -1
  9. data/data/webgen/website_styles/andreas05/src/default.template +1 -1
  10. data/data/webgen/website_styles/andreas06/src/default.template +1 -1
  11. data/data/webgen/website_styles/andreas07/src/default.template +1 -1
  12. data/data/webgen/website_styles/andreas08/src/default.template +1 -1
  13. data/data/webgen/website_styles/andreas09/src/default.template +1 -1
  14. data/data/webgen/website_styles/simple/src/default.template +1 -1
  15. data/doc/contentprocessor/fragments.page +25 -0
  16. data/doc/extensions.page +1 -1
  17. data/doc/manual.page +33 -15
  18. data/doc/reference_configuration.page +339 -62
  19. data/doc/reference_metainfo.page +11 -2
  20. data/doc/sourcehandler/feed.page +19 -4
  21. data/doc/sourcehandler/page.page +0 -16
  22. data/doc/tag/langbar.page +8 -1
  23. data/doc/tag/link.page +44 -0
  24. data/doc/tag/tikz.page +158 -0
  25. data/lib/webgen/cli.rb +4 -4
  26. data/lib/webgen/common/sitemap.rb +2 -3
  27. data/lib/webgen/configuration.rb +3 -1
  28. data/lib/webgen/contentprocessor.rb +1 -0
  29. data/lib/webgen/contentprocessor/blocks.rb +0 -2
  30. data/lib/webgen/contentprocessor/context.rb +0 -3
  31. data/lib/webgen/contentprocessor/erubis.rb +0 -2
  32. data/lib/webgen/contentprocessor/fragments.rb +23 -0
  33. data/lib/webgen/default_config.rb +15 -2
  34. data/lib/webgen/languages.rb +9 -0
  35. data/lib/webgen/logger.rb +18 -1
  36. data/lib/webgen/node.rb +50 -25
  37. data/lib/webgen/page.rb +26 -16
  38. data/lib/webgen/path.rb +20 -10
  39. data/lib/webgen/sourcehandler.rb +85 -69
  40. data/lib/webgen/sourcehandler/base.rb +38 -15
  41. data/lib/webgen/sourcehandler/copy.rb +2 -2
  42. data/lib/webgen/sourcehandler/directory.rb +16 -13
  43. data/lib/webgen/sourcehandler/feed.rb +6 -12
  44. data/lib/webgen/sourcehandler/fragment.rb +6 -11
  45. data/lib/webgen/sourcehandler/memory.rb +41 -0
  46. data/lib/webgen/sourcehandler/metainfo.rb +21 -21
  47. data/lib/webgen/sourcehandler/page.rb +7 -27
  48. data/lib/webgen/sourcehandler/sitemap.rb +0 -2
  49. data/lib/webgen/sourcehandler/template.rb +0 -4
  50. data/lib/webgen/sourcehandler/virtual.rb +18 -18
  51. data/lib/webgen/tag.rb +2 -0
  52. data/lib/webgen/tag/breadcrumbtrail.rb +1 -4
  53. data/lib/webgen/tag/coderay.rb +0 -3
  54. data/lib/webgen/tag/date.rb +0 -2
  55. data/lib/webgen/tag/executecommand.rb +1 -2
  56. data/lib/webgen/tag/includefile.rb +1 -3
  57. data/lib/webgen/tag/langbar.rb +2 -5
  58. data/lib/webgen/tag/link.rb +23 -0
  59. data/lib/webgen/tag/menu.rb +1 -4
  60. data/lib/webgen/tag/metainfo.rb +0 -2
  61. data/lib/webgen/tag/relocatable.rb +2 -3
  62. data/lib/webgen/tag/sitemap.rb +0 -3
  63. data/lib/webgen/tag/tikz.rb +117 -0
  64. data/lib/webgen/tree.rb +11 -6
  65. data/lib/webgen/version.rb +1 -1
  66. data/lib/webgen/website.rb +2 -1
  67. data/test/test_cli.rb +14 -0
  68. data/test/test_common_sitemap.rb +4 -4
  69. data/test/test_contentprocessor_context.rb +1 -1
  70. data/test/test_contentprocessor_fragments.rb +40 -0
  71. data/test/test_contentprocessor_redcloth.rb +1 -0
  72. data/test/test_contentprocessor_tags.rb +1 -1
  73. data/test/test_languages.rb +12 -0
  74. data/test/test_logger.rb +19 -0
  75. data/test/test_node.rb +35 -15
  76. data/test/test_output_filesystem.rb +1 -1
  77. data/test/test_page.rb +15 -6
  78. data/test/test_path.rb +37 -5
  79. data/test/test_source_filesystem.rb +1 -1
  80. data/test/test_source_stacked.rb +1 -1
  81. data/test/test_sourcehandler_base.rb +30 -1
  82. data/test/test_sourcehandler_copy.rb +1 -1
  83. data/test/test_sourcehandler_directory.rb +16 -1
  84. data/test/test_sourcehandler_feed.rb +9 -8
  85. data/test/test_sourcehandler_fragment.rb +1 -1
  86. data/test/test_sourcehandler_memory.rb +42 -0
  87. data/test/test_sourcehandler_metainfo.rb +23 -21
  88. data/test/test_sourcehandler_page.rb +5 -12
  89. data/test/test_sourcehandler_template.rb +1 -1
  90. data/test/test_sourcehandler_virtual.rb +2 -2
  91. data/test/test_tag_base.rb +0 -1
  92. data/test/test_tag_breadcrumbtrail.rb +4 -4
  93. data/test/test_tag_includefile.rb +3 -3
  94. data/test/test_tag_langbar.rb +12 -7
  95. data/test/test_tag_link.rb +61 -0
  96. data/test/test_tag_menu.rb +7 -7
  97. data/test/test_tag_metainfo.rb +1 -1
  98. data/test/test_tag_relocatable.rb +1 -1
  99. data/test/test_tag_tikz.rb +66 -0
  100. data/test/test_tree.rb +8 -9
  101. metadata +15 -2
data/Rakefile CHANGED
@@ -98,6 +98,7 @@ EOF
98
98
  'Rakefile',
99
99
  'setup.rb',
100
100
  'VERSION',
101
+ 'ChangeLog',
101
102
  'AUTHORS',
102
103
  'THANKS',
103
104
  'COPYING',
@@ -120,6 +121,12 @@ EOF
120
121
  File.open('VERSION', 'w+') {|file| file.write(Webgen::VERSION + "\n")}
121
122
  end
122
123
 
124
+ CLOBBER << 'ChangeLog'
125
+ file 'ChangeLog' do
126
+ puts "Generating ChangeLog file"
127
+ `git log --name-only > ChangeLog`
128
+ end
129
+
123
130
  Rake::PackageTask.new('webgen', Webgen::VERSION) do |pkg|
124
131
  pkg.need_tar = true
125
132
  pkg.need_zip = true
@@ -194,7 +201,7 @@ EOF
194
201
  task :gemspec do
195
202
  spec.version = Webgen::VERSION + '.' + Time.now.strftime('%Y%m%d')
196
203
  spec.summary = 'webgen beta build, not supported!!!'
197
- spec.files = spec.files.reject {|f| f == 'VERSION'}
204
+ spec.files = spec.files.reject {|f| f == 'VERSION' || f == 'ChangeLog'}
198
205
  spec.post_install_message = "
199
206
 
200
207
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.5
1
+ 0.5.6
@@ -35,7 +35,7 @@
35
35
  <p>Write a short presentation of yourself or the site right here!</p>
36
36
 
37
37
  <h2>Pages:</h2>
38
- <div id="menu">{menu: {max_levels: 2}}</div>
38
+ <div id="menu">{menu: {max_levels: 2, used_nodes: files}}</div>
39
39
 
40
40
  <h2>Site news:</h2>
41
41
  <p><strong>09.09.2009</strong><br />
@@ -20,7 +20,7 @@
20
20
 
21
21
  <div id="avmenu">
22
22
  <h2 class="hide">Site menu:</h2>
23
- {menu: }
23
+ {menu: {used_nodes: files}}
24
24
 
25
25
  <div class="announce">
26
26
  <h2>Latest news:</h2>
@@ -1,3 +1,4 @@
1
+
1
2
  <?xml version="1.0" encoding="UTF-8"?>
2
3
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{lang:}">
@@ -24,7 +25,7 @@
24
25
 
25
26
  <div id="leftside">
26
27
  <h2 class="hide">Menu:</h2>
27
- <div id="menu">{menu: }</div>
28
+ <div id="menu">{menu: {used_nodes: files}}</div>
28
29
 
29
30
  <div class="announce">
30
31
  <h2>Latest news:</h2>
@@ -37,7 +37,7 @@
37
37
  <div id="sidebar">
38
38
 
39
39
  <h2 class="sidelink menuheader"><a id="sitemenu"></a>Menu:</h2>
40
- <div id="menu">{menu: {max_levels: 1}}</div>
40
+ <div id="menu">{menu: {max_levels: 1, used_nodes: files}}</div>
41
41
  <a class="hide" href="#top" accesskey="1">Top of page</a>
42
42
 
43
43
  <h3>Regular links</h3>
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
 
21
21
  <div id="menu">
22
- {menu: {max_levels: 1}}
22
+ {menu: {max_levels: 1, used_nodes: files}}
23
23
  </div>
24
24
 
25
25
  <div id="content">
@@ -17,7 +17,7 @@
17
17
  <div id="sidebar">
18
18
 
19
19
  <h2>Site menu</h2>
20
- <div id="menu">{menu: {max_levels: 1}}</div>
20
+ <div id="menu">{menu: {max_levels: 1, used_nodes: files}}</div>
21
21
 
22
22
  <p class="sidenote">
23
23
  Links:<br />
@@ -23,7 +23,7 @@
23
23
  </div>
24
24
 
25
25
  <div id="nav">
26
- {menu: {max_levels: 1}}
26
+ {menu: {max_levels: 1, used_nodes: files}}
27
27
  <p class="hide"><a href="#top">Back to top</a></p>
28
28
  </div>
29
29
 
@@ -20,7 +20,7 @@
20
20
  <h2>your website slogan</h2>
21
21
 
22
22
  <div id="menu">
23
- {menu: {max_levels: 1}}
23
+ {menu: {max_levels: 1, used_nodes: files}}
24
24
  </div>
25
25
 
26
26
  <h3>Links:</h3>
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
 
21
21
  <div id="navigation">
22
- {menu: {max_levels: 1}}
22
+ {menu: {max_levels: 1, used_nodes: files}}
23
23
  </div>
24
24
 
25
25
  <div id="content">
@@ -20,7 +20,7 @@
20
20
  </div>
21
21
 
22
22
  <div id="mainmenu">
23
- {menu: {max_levels: 1}}
23
+ {menu: {max_levels: 1, used_nodes: files}}
24
24
  </div>
25
25
 
26
26
  <div id="wrap">
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
 
24
24
  <div id="menu">
25
- {menu: }
25
+ {menu: {used_nodes: files}}
26
26
  </div>
27
27
 
28
28
  <div id="body">
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: Webgen::ContentProcessor::Fragments
3
+ ---
4
+ ## Description
5
+
6
+ This processor generates nested fragment nodes from all headers `h1` to `h6` which have an `id`
7
+ attribute set.
8
+
9
+ > This is only done for the block named `content` or if no block is associated with the given render
10
+ > context! This is to ensure that fragment nodes are not created from multiple block of one page
11
+ > file. So this content processor has no effect when used in the pipeline of blocks except if the
12
+ > block is named `content`.
13
+ {.exclamation}
14
+
15
+ The default markup language Maruku automatically generates an `id` attribute for all headers. If you
16
+ use another markup language or plain old HTML, you might need to set the `id` attributes by hand.
17
+
18
+ > The reason why only header tags with an `id` attribute are used is that only those can be
19
+ > referenced and linked to later.
20
+ {.information}
21
+
22
+ The generated fragment nodes can be used like any other node. So you can link to them and use them
23
+ in a menu. Concerning the menu, there is a setting for the `tag.menu.used_nodes` option called
24
+ `fragments` which only uses the fragment node of the current page to generate a menu. This allows to
25
+ generate a nice overview of the page.
@@ -6,7 +6,7 @@ title: Extensions
6
6
  Following is a listing of all available extensions:
7
7
 
8
8
  <%
9
- pattern = /#{File.join(node.parent.absolute_lcn, '/')}(contentprocessor|output|source|sourcehandler|tag|)\//
9
+ pattern = /#{File.join(node.parent.absolute_lcn, '/')}(contentprocessor|output|source|sourcehandler|tag|)\/.*html$/
10
10
  context.content_node.tree.node_access[:alcn].select {|alcn, n| alcn =~ pattern}.sort.each do |alcn, n|
11
11
  next if n.is_fragment?
12
12
  %>
@@ -429,21 +429,6 @@ As you might have deduced from the processing list above, it is possible that on
429
429
  multiple source handlers. This can be used, for example, to render an XML file as HTML and copy it
430
430
  verbatim.
431
431
 
432
- Internally a tree structure is created reflecting the source directory hierarchy and each path that
433
- is handled by webgen. Normally a source handler creates one node from one path but it is also
434
- possible that a source handler creates multiple nodes from one path.
435
-
436
- > The name used for describing a directory or file once it is placed in the internal tree structure
437
- > is 'node'.
438
- {.information}
439
-
440
- After this internal tree structure is created, it is traversed and each node is processed. First the
441
- node is checked if has changed (the notion of 'changed' depends on many things but a node is
442
- changed, for example, if its meta information or the associated source path has changed since the
443
- last webgen run). If it has not changed, nothing needs to be written. Otherwise, the information
444
- needed to write out the node is gathered and its content is written to the output path represented
445
- by the node.
446
-
447
432
 
448
433
  ## Path Meta Information {#source-metainfo}
449
434
 
@@ -521,6 +506,39 @@ There are several types of extensions:
521
506
 
522
507
 
523
508
 
509
+ # A webgen Run
510
+
511
+ When webgen is started, it first looks for a cache file and uses it if it exists. The cache file
512
+ provides information on the previous run and allows webgen to render only those paths that have
513
+ changed since the last time.
514
+
515
+ Each webgen run consists of one or more update/write cycles. During the update phase the internal
516
+ tree structure is updated to reflect the current situation:
517
+
518
+ * Nodes are created from newly found source paths.
519
+ * If a source path was deleted since the last webgen run, the nodes created from it will be deleted.
520
+ * All nodes in the tree are checked if they have changed and, if so, are marked for regeneration.
521
+
522
+ > The name used for describing a directory or file once it is placed in the internal tree structure
523
+ > is 'node'.
524
+ {.information}
525
+
526
+ After the update cycle has finished, the internal tree representation is up-to-date and contains all
527
+ necessary information to write its nodes. This is done in the write phase which writes out all
528
+ changed nodes.
529
+
530
+ It is possible that the internal tree structure changes during the write phase. For example, after
531
+ writing a page file fragments node for it may have been generated. After the write phase it is
532
+ checked if something like this has happened. If webgen finds such a condition, a new update/write
533
+ cycle is initiated. This is done as long as needed.
534
+
535
+ Since it is possible that multiple update/write cycles are used in one webgen run, it is shown in
536
+ the log messages when a new cycle started. This is necessary because sometimes some warning or error
537
+ log messages may be generated during an earlier cycle but the error conditions are automatically
538
+ solved in later cycles. By marking where the cycles start a user can compare the log messages of the
539
+ different cycles and see what he needs to solve himself.
540
+
541
+
524
542
  # Extending webgen
525
543
 
526
544
  If you know the programming language Ruby a little bit, you can easily extend webgen and add new
@@ -5,8 +5,14 @@ in_menu: false
5
5
 
6
6
  # Configuration Option Reference
7
7
 
8
- This reference describes all available configurations that can be set via the configuration file
9
- (or, if you want to have more control, via an extension file).
8
+ This reference describes all available configurations that can be set via the [configuration
9
+ file]({relocatable: manual.html#website-configfile}) `config.yaml` (or, if you want to have more
10
+ control, via an extension file).
11
+
12
+ The reference is splitted into sections to provide better navigation. A sub header under a category
13
+ always specifies the name of a configuration option and after that comes a description and example
14
+ code. The example code either shows how to set this option in the configuration file (for most
15
+ configuration options) and/or how to use it in a webgen tag (for tag configuration options).
10
16
 
11
17
  ## General Options
12
18
 
@@ -17,10 +23,9 @@ This reference describes all available configurations that can be set via the co
17
23
 
18
24
  * Syntax: `LANGUAGE` where `LANGUAGE` is a ISO-639-1/2 two or three letter language code
19
25
 
20
- * Examples:
26
+ * Example for setting the option in the configuration file:
21
27
 
22
- website.lang: deu
23
- website.lang: fr
28
+ website.lang: de
24
29
 
25
30
 
26
31
  * ### website.link\_to\_current\_page
@@ -30,7 +35,7 @@ This reference describes all available configurations that can be set via the co
30
35
 
31
36
  * Syntax: `BOOLEAN` where `BOOLEAN` is `true` or `false`
32
37
 
33
- * Examples:
38
+ * Example for setting the option in the configuration file:
34
39
 
35
40
  website.link_to_current_page: false
36
41
 
@@ -44,7 +49,7 @@ This reference describes all available configurations that can be set via the co
44
49
 
45
50
  * Syntax: `[TYPE, LOCATION]` where `TYPE` is one of `:file` or `:string`
46
51
 
47
- * Examples:
52
+ * Example for setting the option in the configuration file:
48
53
 
49
54
  website.cache: [:file, my.cache]
50
55
 
@@ -58,7 +63,11 @@ This reference describes all available configurations that can be set via the co
58
63
 
59
64
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
60
65
 
61
- * Examples:
66
+ * Example for setting the option in the configuration file:
67
+
68
+ common.sitemap.honor_in_menu: true
69
+
70
+ Example for setting the option directly in a tag:
62
71
 
63
72
  Sitemap with in-menu nodes: \{sitemap: {honor_in_menu: true}}
64
73
 
@@ -70,7 +79,11 @@ This reference describes all available configurations that can be set via the co
70
79
 
71
80
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
72
81
 
73
- * Examples:
82
+ * Example for setting the option in the configuration file:
83
+
84
+ common.sitemap.any_lang: true
85
+
86
+ Example for setting the option directly in a tag:
74
87
 
75
88
  Sitemap with nodes in any language: \{sitemap: {any_lang: true}}
76
89
 
@@ -82,7 +95,11 @@ This reference describes all available configurations that can be set via the co
82
95
 
83
96
  * Syntax: `[KIND, ...]` where `KIND` is the kind of node that should be used.
84
97
 
85
- * Examples:
98
+ * Example for setting the option in the configuration file:
99
+
100
+ common.sitemap.used_kinds: [asset]
101
+
102
+ Example for setting the option directly in a tag:
86
103
 
87
104
  Sitemap with only asset nodes: \{sitemap: {used_kinds: [asset]}}
88
105
 
@@ -100,7 +117,7 @@ This reference describes all available configurations that can be set via the co
100
117
  `Webgen::Source::FileSystem`) and `ARG1`, `ARG2` and so on are the parameters for the source
101
118
  class. The supported parameters can be found in the documentation for each source class.
102
119
 
103
- * Examples:
120
+ * Example for setting the option in the configuration file:
104
121
 
105
122
  sources: [[/, Webgen::Source::FileSystem, src], [/, Webgen::Source::FileSystem, /mnt/pictures, **/*.jpg]
106
123
 
@@ -113,7 +130,7 @@ This reference describes all available configurations that can be set via the co
113
130
  `Webgen::Output::FileSystem`) and `ARG1`, `ARG2` and so on are the parameters for the output
114
131
  class. The supported parameters can be found in the documentation for each output class.
115
132
 
116
- * Examples:
133
+ * Example for setting the option in the configuration file:
117
134
 
118
135
  output: [Webgen::Output::FileSystem, custom_out]
119
136
 
@@ -121,15 +138,23 @@ This reference describes all available configurations that can be set via the co
121
138
  * ### sourcehandler.patterns
122
139
 
123
140
  Specifies the path patterns that are used by the individual source handlers. This configuration
124
- option is not normally set in the configuration file but in an extension file
125
- (e.g. `ext/init.rb`) because otherwise the default entries would be overwritten.
141
+ option is not normally set directly in the configuration file but either in an extension file
142
+ (e.g. `ext/init.rb`) or using a [configuration file helper]({relocatable:
143
+ manual.html#website-configfile}) because otherwise the default entries would be overwritten.
126
144
 
127
145
  * Syntax: `\{NAME: [PATTERN, PATTERN, ...], ...}` where `NAME` is the
128
146
  name the name of a source handler and `PATTERN` are one or more path patterns.
129
147
 
130
- * Examples (for `ext/init.rb`):
148
+ * Example for setting the option in `ext/init.rb`:
149
+
150
+ config = Webgen::WebsiteAccess.website.config
151
+ config['sourcehandler.patterns']['Webgen::SourceHandler::Copy'] << '**/*.swf'
131
152
 
132
- config.sourcehandler.patterns['Webgen::SourceHandler::Copy'] << '**/*.swf'
153
+ Example for setting the option via the configuration file helper in the configuration file:
154
+
155
+ patterns:
156
+ Copy:
157
+ add: [**/*.swf]
133
158
 
134
159
 
135
160
  * ### sourcehandler.invoke
@@ -141,9 +166,10 @@ This reference describes all available configurations that can be set via the co
141
166
  invocation (source handlers with a lower `ORDER` setting are executed earlier than ones with a
142
167
  higher `ORDER` setting) and `NAME` is the name of a source handler.
143
168
 
144
- * Examples (for `ext/init.rb`):
169
+ * Example for setting the option in `ext/init.rb`:
145
170
 
146
- config.sourcehandler.invoke[5] << 'Extension::MyNewSourceHandler'
171
+ config = Webgen::WebsiteAccess.website.config
172
+ config['sourcehandler.invoke'][5] << 'Extension::MyNewSourceHandler'
147
173
 
148
174
 
149
175
  * ### sourcehandler.casefold
@@ -153,7 +179,7 @@ This reference describes all available configurations that can be set via the co
153
179
 
154
180
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
155
181
 
156
- * Examples:
182
+ * Example for setting the option in the configuration file:
157
183
 
158
184
  sourcehandler.casefold: true
159
185
 
@@ -164,7 +190,7 @@ This reference describes all available configurations that can be set via the co
164
190
 
165
191
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
166
192
 
167
- * Examples:
193
+ * Example for setting the option in the configuration file:
168
194
 
169
195
  sourcehandler.use_hidden_files: true
170
196
 
@@ -176,7 +202,7 @@ This reference describes all available configurations that can be set via the co
176
202
 
177
203
  * Syntax: `[PATTERN, ...]` where `PATTERN` is a valid path pattern.
178
204
 
179
- * Examples:
205
+ * Example for setting the option in the configuration file:
180
206
 
181
207
  sourcehandler.ignore: [**/*~, **/CVS/**]
182
208
 
@@ -188,7 +214,7 @@ This reference describes all available configurations that can be set via the co
188
214
 
189
215
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
190
216
 
191
- * Examples:
217
+ * Example for setting the option in the configuration file:
192
218
 
193
219
  sourcehandler.default_lang_in_output_path: true
194
220
 
@@ -202,7 +228,7 @@ This reference describes all available configurations that can be set via the co
202
228
  * Syntax: `\{NAME: {MI_KEY: MI_VALUE, ...}, ...}` where `NAME` is either the name of a source
203
229
  handler or the special key `:all` which sets default meta info for all source handlers.
204
230
 
205
- * Examples:
231
+ * Example for setting the option in the configuration file:
206
232
 
207
233
  default_meta_info:
208
234
  :all:
@@ -218,7 +244,7 @@ This reference describes all available configurations that can be set via the co
218
244
 
219
245
  * Syntax: `PATH` where `PATH` is the absolute localized canonical name of the default template.
220
246
 
221
- * Examples:
247
+ * Example for setting the option in the configuration file:
222
248
 
223
249
  sourcehandler.template.default_template: other.template
224
250
 
@@ -235,8 +261,9 @@ This reference describes all available configurations that can be set via the co
235
261
  * Syntax: `\{SHORT: NAME, ...}` where `SHORT` is the short name of the content processor class
236
262
  `NAME`.
237
263
 
238
- * Examples (for `ext/init.rb`):
264
+ * Examples for setting the option in `ext/init.rb`:
239
265
 
266
+ config = Webgen::WebsiteAccess.website.config
240
267
  config['contentprocessor.map']['newcp'] = 'Extension::MyNewContentProcessor'
241
268
 
242
269
 
@@ -247,7 +274,7 @@ This reference describes all available configurations that can be set via the co
247
274
 
248
275
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
249
276
 
250
- * Examples:
277
+ * Example for setting the option in the configuration file:
251
278
 
252
279
  contentprocessor.erubis.use_pi: true
253
280
 
@@ -260,7 +287,7 @@ This reference describes all available configurations that can be set via the co
260
287
  * Syntax: `\{KEY: VALUE, ...}` where `KEY` and `VALUE` are key-value pairs of options where
261
288
  `KEY` needs to be a Symbol and not a String.
262
289
 
263
- * Examples:
290
+ * Example for setting the option in the configuration file:
264
291
 
265
292
  contentprocessor.erubis.options: {:trim: true}
266
293
 
@@ -272,10 +299,9 @@ This reference describes all available configurations that can be set via the co
272
299
 
273
300
  * Syntax: `PREFIX` where `PREFIX` is the prefix name.
274
301
 
275
- * Examples:
302
+ * Example for setting the option in the configuration file:
276
303
 
277
304
  contentprocessor.tags.prefix: webgen
278
- contentprocessor.tags.prefix: tag
279
305
 
280
306
 
281
307
  * ### contentprocessor.tags.map
@@ -286,16 +312,18 @@ This reference describes all available configurations that can be set via the co
286
312
 
287
313
  * Syntax: `\{SHORT: NAME, ...}` where `SHORT` is the short name of the tag class `NAME`.
288
314
 
289
- * Examples (for `ext/init.rb`):
315
+ * Example for setting the option in `ext/init.rb`:
290
316
 
317
+ config = Webgen::WebsiteAccess.website.config
291
318
  config['contentprocessor.tags.map']['highlight'] = 'Extension::MyHighlightingTag'
292
319
 
293
320
 
294
321
  ## Tag Specific Options
295
322
 
296
323
  These options are not normally set in the configuration file but given directly as options to the
297
- respective tag classes. Therefore, all examples in this section show the use of these options in
298
- files in Webgen Page Format.
324
+ respective tag classes. Therefore, all options described in this section have an example which shows
325
+ how to use the option in files in Webgen Page Format and most options also have an example which
326
+ shows how to set the option in the configuration file.
299
327
 
300
328
  * ### tag.breadcrumbtrail.separator
301
329
 
@@ -305,7 +333,11 @@ files in Webgen Page Format.
305
333
  * Syntax: `SEPARATOR` where `SEPARATOR` is a string (special HTML characters need to be properly
306
334
  escaped)
307
335
 
308
- * Examples:
336
+ * Example for setting the option in the configuration file:
337
+
338
+ tag.breadcrumbtrail.separator: '---'
339
+
340
+ Example for setting the option directly in a tag:
309
341
 
310
342
  Breadcrumb trail with different separator: \{breadcrumb_trail: {separator: ' --- '}}
311
343
 
@@ -316,7 +348,11 @@ files in Webgen Page Format.
316
348
 
317
349
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
318
350
 
319
- * Examples:
351
+ * Example for setting the option in the configuration file:
352
+
353
+ tag.breadcrumbtrail.omit_index_path: true
354
+
355
+ Example for setting the option directly in a tag:
320
356
 
321
357
  Breadcrumb trail with index path omitted: \{breadcrumb_trail: {omit_index_path: true}}
322
358
 
@@ -337,7 +373,11 @@ files in Webgen Page Format.
337
373
 
338
374
  * Syntax: `INTEGER` where `INTEGER` is any integer number
339
375
 
340
- * Examples:
376
+ * Example for setting the option in the configuration file:
377
+
378
+ tag.breadcrumbtrail.start_level: 2
379
+
380
+ Example for setting the option directly in a tag:
341
381
 
342
382
  Breadcrumb trail starting at level 2: \{breadcrumb_trail: {start_level: 2}}
343
383
 
@@ -349,7 +389,11 @@ files in Webgen Page Format.
349
389
 
350
390
  * Syntax: `INTEGER` where `INTEGER` is any integer number
351
391
 
352
- * Examples:
392
+ * Example for setting the option in the configuration file:
393
+
394
+ tag.breadcrumbtrail.end_level: 2
395
+
396
+ Example for setting the option directly in a tag:
353
397
 
354
398
  Breadcrumb trail ending at level 2: \{breadcrumb_trail: {end_level: 2}}
355
399
 
@@ -360,7 +404,11 @@ files in Webgen Page Format.
360
404
 
361
405
  * Syntax: `LANG` where `LANG` is one of <%= (require 'coderay'; CodeRay::Scanners.list.map {|n| '`' + n + '`'}.join(', ')) %>.
362
406
 
363
- * Examples:
407
+ * Example for setting the option in the configuration file:
408
+
409
+ tag.coderay.lang: ruby
410
+
411
+ Example for setting the option directly in a tag:
364
412
 
365
413
  highlighting some ruby code \{coderay:: ruby}puts 5 + 5{coderay}
366
414
 
@@ -371,7 +419,11 @@ files in Webgen Page Format.
371
419
 
372
420
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
373
421
 
374
- * Examples:
422
+ * Example for setting the option in the configuration file:
423
+
424
+ tag.coderay.process_body: false
425
+
426
+ Example for setting the option directly in a tag:
375
427
 
376
428
  wrapping in a span: \{coderay:: {lang: ruby, process_body: false}}puts 5 + 5{coderay}
377
429
 
@@ -382,7 +434,11 @@ files in Webgen Page Format.
382
434
 
383
435
  * Syntax: `WRAP` where `WRAP` is either `div` or `span`
384
436
 
385
- * Examples:
437
+ * Example for setting the option in the configuration file:
438
+
439
+ tag.coderay.wrap: span
440
+
441
+ Example for setting the option directly in a tag:
386
442
 
387
443
  wrapping in a span: \{coderay:: {lang: ruby, wrap: span}}puts 5 + 5{coderay}
388
444
 
@@ -393,7 +449,11 @@ files in Webgen Page Format.
393
449
 
394
450
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
395
451
 
396
- * Examples:
452
+ * Example for setting the option in the configuration file:
453
+
454
+ tag.coderay.line_numbers: false
455
+
456
+ Example for setting the option directly in a tag:
397
457
 
398
458
  not showing line numbers: \{coderay:: {lang: ruby, line_numbers: false}}puts 5 + 5{coderay}
399
459
 
@@ -404,7 +464,11 @@ files in Webgen Page Format.
404
464
 
405
465
  * Syntax: `NUMBER` where `NUMBER` is an integer value.
406
466
 
407
- * Examples:
467
+ * Example for setting the option in the configuration file:
468
+
469
+ tag.coderay.line_number_start: 4
470
+
471
+ Example for setting the option directly in a tag:
408
472
 
409
473
  starting with line 4: \{coderay:: {lang: ruby, line_number_start: 4}}puts 5 + 5{coderay}
410
474
 
@@ -415,7 +479,11 @@ files in Webgen Page Format.
415
479
 
416
480
  * Syntax: `NUMBER` where `NUMBER` is an integer value.
417
481
 
418
- * Examples:
482
+ * Example for setting the option in the configuration file:
483
+
484
+ tag.coderay.bold_every: 2
485
+
486
+ Example for setting the option directly in a tag:
419
487
 
420
488
  every other line bold: \{coderay:: {lang: ruby, bold_every: 2}}puts 5 + 5{coderay}
421
489
 
@@ -426,7 +494,11 @@ files in Webgen Page Format.
426
494
 
427
495
  * Syntax: `NUMBER` where `NUMBER` is an integer value.
428
496
 
429
- * Examples:
497
+ * Example for setting the option in the configuration file:
498
+
499
+ tag.coderay.tab_width: 4
500
+
501
+ Example for setting the option directly in a tag:
430
502
 
431
503
  tabulator == 4 spaces: \{coderay:: {lang: ruby, tab_width: 4}}puts 5 + 5{coderay}
432
504
 
@@ -439,7 +511,11 @@ files in Webgen Page Format.
439
511
 
440
512
  * Syntax: `FORMAT` where `FORMAT` is a string.
441
513
 
442
- * Examples:
514
+ * Example for setting the option in the configuration file:
515
+
516
+ tag.date.format: '%Y-%m-%d'
517
+
518
+ Example for setting the option directly in a tag:
443
519
 
444
520
  very short date format: \{date: {format: '%Y-%m-%d'}}
445
521
 
@@ -451,7 +527,7 @@ files in Webgen Page Format.
451
527
 
452
528
  * Syntax: `COMMAND` where `COMMAND` is the to-be-executed command.
453
529
 
454
- * Examples:
530
+ * Example for setting the option directly in a tag:
455
531
 
456
532
  executing a simple command \{exeucte_cmd: echo hallo}
457
533
 
@@ -463,7 +539,11 @@ files in Webgen Page Format.
463
539
 
464
540
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
465
541
 
466
- * Examples:
542
+ * Example for setting the option in the configuration file:
543
+
544
+ tag.executecommand.process_output: false
545
+
546
+ Example for setting the option directly in a tag:
467
547
 
468
548
  executing command without further processing \{execute_cmd: {command: 'echo hallo', process_output: false}}
469
549
 
@@ -474,7 +554,11 @@ files in Webgen Page Format.
474
554
 
475
555
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
476
556
 
477
- * Examples:
557
+ * Example for setting the option in the configuration file:
558
+
559
+ tag.executecommand.escape_html: false
560
+
561
+ Example for setting the option directly in a tag:
478
562
 
479
563
  executing command, output not escaped \{execute_cmd: {command: 'echo hallo', escape_html: false}}
480
564
 
@@ -487,7 +571,7 @@ files in Webgen Page Format.
487
571
 
488
572
  * Syntax: `FILENAME` where `FILENAME` is the name of a file
489
573
 
490
- * Examples:
574
+ * Example for setting the option directly in a tag:
491
575
 
492
576
  including a file \{include_file: my_file.txt}
493
577
 
@@ -499,7 +583,11 @@ files in Webgen Page Format.
499
583
 
500
584
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
501
585
 
502
- * Examples:
586
+ * Example for setting the option in the configuration file:
587
+
588
+ tag.includefile.process_output: false
589
+
590
+ Example for setting the option directly in a tag:
503
591
 
504
592
  including a file without further processing \{include_file: {filename: my_file.txt, process_output: false}}
505
593
 
@@ -510,7 +598,11 @@ files in Webgen Page Format.
510
598
 
511
599
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
512
600
 
513
- * Examples:
601
+ * Example for setting the option in the configuration file:
602
+
603
+ tag.includefile.escape_html: false
604
+
605
+ Example for setting the option directly in a tag:
514
606
 
515
607
  including a file without escaping \{include_file: {filename: my_file.txt, escape_html: false}}
516
608
 
@@ -522,7 +614,11 @@ files in Webgen Page Format.
522
614
  * Syntax: `SEPARATOR` where `SEPARATOR` is a string (special HTML characters need to be properly
523
615
  escaped)
524
616
 
525
- * Examples:
617
+ * Example for setting the option in the configuration file:
618
+
619
+ tag.langbar.separator: ' --- '
620
+
621
+ Example for setting the option directly in a tag:
526
622
 
527
623
  Langbar with another separator: \{langbar: {separator: ' --- '}}
528
624
 
@@ -533,7 +629,11 @@ files in Webgen Page Format.
533
629
 
534
630
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
535
631
 
536
- * Examples:
632
+ * Example for setting the option in the configuration file:
633
+
634
+ tag.langbar.show_own_lang: false
635
+
636
+ Example for setting the option directly in a tag:
537
637
 
538
638
  Langbar with current page's lang not shown: \{langbar: {show_own_lang: false}}
539
639
 
@@ -545,11 +645,60 @@ files in Webgen Page Format.
545
645
 
546
646
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
547
647
 
548
- * Examples:
648
+ * Example for setting the option in the configuration file:
649
+
650
+ tag.langbar.show_single_lang: false
651
+
652
+ Example for setting the option directly in a tag:
549
653
 
550
654
  Langbar with single language not shown: \{langbar: {show_single_lang: false}}
551
655
 
552
656
 
657
+ * ### tag.langbar.lang\_names
658
+
659
+ This configuration option can be used to specify the language names that should be displayed
660
+ instead of the language codes.
661
+
662
+ * Syntax: `\{CODE: NAME, ...}` where `CODE` is a language code and `NAME` the associated language
663
+ name of the code.
664
+
665
+ * Example for setting the option in the configuration file:
666
+
667
+ tag.langbar.lang_names: \{de: Deutsch, en: English}
668
+
669
+ Example for setting the option directly in a tag:
670
+
671
+ Langbar with custom language names: \{langbar: {lang_names: {de: Deutsch, en: English}}}
672
+
673
+
674
+ * ### tag.link.path
675
+
676
+ The default mandatory configuration option for Tag::Link that specifies the (AL)CN path to which
677
+ should be linked.
678
+
679
+ * Syntax: `PATH` where `PATH` is an (absolute) (localized) canonical name.
680
+
681
+ * Example for setting the option directly in a tag:
682
+
683
+ You will find more information on the \{link: docu.html} page!
684
+
685
+
686
+ * ### tag.link.attr
687
+
688
+ Specifies additional HTML attributes that should be set on the link generated by Tag::Link.
689
+
690
+ * Syntax: `\{NAME: VALUE, ...}` where `NAME` is a valid HTML attribute name and `VALUE` its
691
+ value.
692
+
693
+ * Example for setting the option in the configuration file:
694
+
695
+ tag.link.attr: \{title: DocuPage}
696
+
697
+ Example for setting the option directly in a tag:
698
+
699
+ You will find more info on the \{link: {path: docu.html, attr: {title: DocuPage}}} page!
700
+
701
+
553
702
  * ### tag.menu.used\_nodes
554
703
 
555
704
  Specifies the type of nodes that should be used for menu generation. If `all` is specified then
@@ -559,7 +708,11 @@ files in Webgen Page Format.
559
708
 
560
709
  * Syntax: `TYPE` where `TYPE` is one of `all`, `files` or `fragments`
561
710
 
562
- * Examples:
711
+ * Example for setting the option in the configuration file:
712
+
713
+ tag.menu.used_nodes: fragments
714
+
715
+ Example for setting the option directly in a tag:
563
716
 
564
717
  Show the fragment node menu: \{menu: {used_nodes: fragments}}
565
718
 
@@ -571,7 +724,11 @@ files in Webgen Page Format.
571
724
 
572
725
  * Syntax: `LEVEL` where `LEVEL` is a number that is greater or equal to one.
573
726
 
574
- * Examples:
727
+ * Example for setting the option in the configuration file:
728
+
729
+ tag.menu.start_level: 2
730
+
731
+ Example for setting the option directly in a tag:
575
732
 
576
733
  Menu starting at level 2: \{menu: {start_level: 2}}
577
734
 
@@ -583,7 +740,11 @@ files in Webgen Page Format.
583
740
 
584
741
  * Syntax: `LEVEL` where `LEVEL` is a number that is greater or equal to one.
585
742
 
586
- * Examples:
743
+ * Example for setting the option in the configuration file:
744
+
745
+ tag.menu.min_levels: 2
746
+
747
+ Example for setting the option directly in a tag:
587
748
 
588
749
  Menu that always shows at least 2 levels : \{menu: {min_levels: 2}}
589
750
 
@@ -595,7 +756,11 @@ files in Webgen Page Format.
595
756
 
596
757
  * Syntax: `LEVEL` where `LEVEL` is a number that is greater or equal to one.
597
758
 
598
- * Examples:
759
+ * Example for setting the option in the configuration file:
760
+
761
+ tag.menu.max_levels: 2
762
+
763
+ Example for setting the option directly in a tag:
599
764
 
600
765
  Menu that always shows at most 2 levels : \{menu: {max_levels: 2}}
601
766
 
@@ -608,7 +773,11 @@ files in Webgen Page Format.
608
773
 
609
774
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
610
775
 
611
- * Examples:
776
+ * Example for setting the option in the configuration file:
777
+
778
+ tag.menu.show_current_subtree_only: false
779
+
780
+ Example for setting the option directly in a tag:
612
781
 
613
782
  Showing all subtrees: \{menu: {show_current_subtree_only: false}}
614
783
 
@@ -641,7 +810,11 @@ files in Webgen Page Format.
641
810
 
642
811
  * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
643
812
 
644
- * Examples:
813
+ * Example for setting the option in the configuration file:
814
+
815
+ tag.menu.nested: false
816
+
817
+ Example for setting the option directly in a tag:
645
818
 
646
819
  Don't use nested lists: \{menu: {nested: false}}
647
820
 
@@ -649,16 +822,120 @@ files in Webgen Page Format.
649
822
  * ### tag.relocatable.path
650
823
 
651
824
  The default mandatory configuration option for Tag::Relocatable that specifies the path that
652
- should be made relocatable. This option is the default mandatory option for
653
- Webgen::Tag::Relocatable.
825
+ should be made relocatable.
654
826
 
655
827
  * Syntax: `PATH` where `PATH` is a (localized) canonical name.
656
828
 
657
- * Examples:
829
+ * Example for setting the option directly in a tag:
658
830
 
659
831
  <a href="\{relocatable: ../features.html}">Some Path</a>
660
832
 
661
833
 
834
+ * ### tag.tikz.path
835
+
836
+ The default mandatory configuration option for Tag::TikZ that specifies the (naturally
837
+ non-existing) source path that should be used for creating the TikZ image. The output path is
838
+ derived from this path the usual way. You shouldn't use a path that does already exist!
839
+
840
+ * Syntax: `PATH` where `PATH` is a relative or absolute source path.
841
+
842
+ * Example for setting the option directly in a tag:
843
+
844
+ \{tikz:: images/tikz.png}\tikz \draw (0,0) -- (0,2);{tikz}
845
+
846
+
847
+ * ### tag.tikz.libraries
848
+
849
+ Specifies the names of additional TikZ library names that should be used when creating the
850
+ image.
851
+
852
+ * Syntax: `[NAME, ...]` where `NAME` is the name of a TikZ library.
853
+
854
+ * Example for setting the option in the configuration file:
855
+
856
+ tag.tikz.libraries: [mindmap, arrows]
857
+
858
+ Example for setting the option directly in a tag:
859
+
860
+ \{tikz:: {path: images/tikz.png, libraries: [mindmap, arrows]}}
861
+ \tikz \draw (0,0) -- (0,2) -- (2,2);
862
+ {tikz}
863
+
864
+
865
+ * ### tag.tikz.opts
866
+
867
+ Specifies additional global options for the `tikzpicture` environment.
868
+
869
+ * Syntax: `OPTS` where `OPTS` is the string with the global options.
870
+
871
+ * Example for setting the option in the configuration file:
872
+
873
+ tag.tikz.opts: 'scale=3, line cap=round'
874
+
875
+ Example for setting the option directly in a tag:
876
+
877
+ \{tikz:: {path: images/tikz.png, opts: 'scale=3, line cap=round'}}
878
+ \tikz \draw (0,0) -- (0,2) -- (2,2);
879
+ {tikz}
880
+
881
+
882
+ * ### tag.tikz.resolution
883
+
884
+ Specifies the render and output resolutions that should be used to convert the TikZ image in PDF
885
+ format to the chosen image format. The first number specifies the render resolution and the
886
+ second one the output resolution. If the render resolution is higher than the output resolution,
887
+ the final image quality is better but the image needs to scaled down to the output resolution.
888
+
889
+ * Syntax: `RENDER_RES OUTPUT_RES` where `RENDER_RES` is the integer specifying the render
890
+ resolution and `OUTPUT_RES` is the integer specifying the output resolution.
891
+
892
+ * Example for setting the option in the configuration file:
893
+
894
+ tag.tikz.resolution: 300 72
895
+
896
+ Example for setting the option directly in a tag:
897
+
898
+ \{tikz:: {path: images/tikz.png, resolution: 300 72}}
899
+ \tikz \draw (0,0) -- (0,2) -- (2,2);
900
+ {tikz}
901
+
902
+
903
+ * ### tag.tikz.transparent
904
+
905
+ Specifies whether the generated image should be transparent. This only works when the path
906
+ specified by `tag.tikz.path` option has the extension `.png`! You should probably also set the
907
+ background of the generated image tag to transparent.
908
+
909
+ * Syntax: `BOOLEAN` where `BOOLEAN` is either `true` or `false`.
910
+
911
+ * Example for setting the option in the configuration file:
912
+
913
+ tag.tikz.transparent: true
914
+
915
+ Example for setting the option directly in a tag:
916
+
917
+ \{tikz:: {path: images/tikz.png, transparent: true}}
918
+ \tikz \draw (0,0) -- (0,2) -- (2,2);
919
+ {tikz}
920
+
921
+
922
+ * ### tag.tikz.img\_attr
923
+
924
+ Specifies additional HTML attributes that should be set on the generated `img` tag.
925
+
926
+ * Syntax: `\{KEY:VALUE, ...}` where `KEY` is a valid HTML `img` tag attribute name and `VALUE`
927
+ the to-be-set value.
928
+
929
+ * Example for setting the option in the configuration file:
930
+
931
+ tag.tikz.img_attr: \{alt: Some TikZ picture}
932
+
933
+ Example for setting the option directly in a tag:
934
+
935
+ \{tikz:: {path: images/tikz.png, img_attr: {alt: Some TikZ picture}}}
936
+ \tikz \draw (0,0) -- (0,2) -- (2,2);
937
+ {tikz}
938
+
662
939
  ---
663
940
 
664
941
  ## Miscelleanous Configuration Options