webgen 0.5.6 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. data/AUTHORS +3 -0
  2. data/ChangeLog +426 -0
  3. data/THANKS +1 -0
  4. data/VERSION +1 -1
  5. data/bin/webgen +2 -0
  6. data/data/webgen/webgui/controller/main.rb +2 -0
  7. data/data/webgen/website_skeleton/ext/init.rb +4 -0
  8. data/doc/contentprocessor/blocks.page +44 -14
  9. data/doc/contentprocessor/builder.page +1 -1
  10. data/doc/contentprocessor/erb.page +1 -1
  11. data/doc/contentprocessor/erubis.page +1 -1
  12. data/doc/contentprocessor/fragments.page +1 -1
  13. data/doc/contentprocessor/haml.page +1 -1
  14. data/doc/contentprocessor/rdiscount.page +1 -1
  15. data/doc/contentprocessor/rdoc.page +1 -1
  16. data/doc/contentprocessor/redcloth.page +1 -1
  17. data/doc/contentprocessor/sass.page +1 -1
  18. data/doc/faq.page +7 -2
  19. data/doc/manual.page +6 -5
  20. data/doc/reference_metainfo.page +1 -1
  21. data/doc/sourcehandler/feed.page +9 -1
  22. data/doc/sourcehandler/sitemap.page +1 -1
  23. data/doc/tag/coderay.page +1 -1
  24. data/doc/tag/langbar.page +15 -0
  25. data/doc/tag/menu.page +1 -1
  26. data/doc/tag/relocatable.page +2 -2
  27. data/lib/webgen/blackboard.rb +9 -4
  28. data/lib/webgen/cache.rb +2 -0
  29. data/lib/webgen/cli.rb +6 -1
  30. data/lib/webgen/cli/create_command.rb +2 -0
  31. data/lib/webgen/cli/run_command.rb +2 -0
  32. data/lib/webgen/cli/utils.rb +2 -0
  33. data/lib/webgen/cli/webgui_command.rb +2 -0
  34. data/lib/webgen/common.rb +12 -1
  35. data/lib/webgen/common/sitemap.rb +12 -4
  36. data/lib/webgen/configuration.rb +2 -0
  37. data/lib/webgen/contentprocessor.rb +2 -0
  38. data/lib/webgen/contentprocessor/blocks.rb +22 -8
  39. data/lib/webgen/contentprocessor/builder.rb +2 -0
  40. data/lib/webgen/contentprocessor/context.rb +2 -0
  41. data/lib/webgen/contentprocessor/erb.rb +2 -0
  42. data/lib/webgen/contentprocessor/erubis.rb +2 -0
  43. data/lib/webgen/contentprocessor/fragments.rb +2 -0
  44. data/lib/webgen/contentprocessor/haml.rb +2 -0
  45. data/lib/webgen/contentprocessor/maruku.rb +2 -0
  46. data/lib/webgen/contentprocessor/rdiscount.rb +2 -0
  47. data/lib/webgen/contentprocessor/rdoc.rb +2 -0
  48. data/lib/webgen/contentprocessor/redcloth.rb +2 -0
  49. data/lib/webgen/contentprocessor/sass.rb +2 -0
  50. data/lib/webgen/contentprocessor/tags.rb +2 -0
  51. data/lib/webgen/coreext.rb +2 -0
  52. data/lib/webgen/default_config.rb +4 -1
  53. data/lib/webgen/languages.rb +2 -0
  54. data/lib/webgen/loggable.rb +2 -0
  55. data/lib/webgen/logger.rb +2 -0
  56. data/lib/webgen/node.rb +22 -8
  57. data/lib/webgen/output.rb +3 -1
  58. data/lib/webgen/output/filesystem.rb +2 -0
  59. data/lib/webgen/page.rb +2 -0
  60. data/lib/webgen/path.rb +3 -1
  61. data/lib/webgen/source.rb +2 -0
  62. data/lib/webgen/source/filesystem.rb +5 -2
  63. data/lib/webgen/source/resource.rb +2 -0
  64. data/lib/webgen/source/stacked.rb +2 -0
  65. data/lib/webgen/sourcehandler.rb +8 -0
  66. data/lib/webgen/sourcehandler/base.rb +2 -0
  67. data/lib/webgen/sourcehandler/copy.rb +2 -0
  68. data/lib/webgen/sourcehandler/directory.rb +2 -0
  69. data/lib/webgen/sourcehandler/feed.rb +3 -1
  70. data/lib/webgen/sourcehandler/fragment.rb +2 -0
  71. data/lib/webgen/sourcehandler/memory.rb +2 -0
  72. data/lib/webgen/sourcehandler/metainfo.rb +3 -1
  73. data/lib/webgen/sourcehandler/page.rb +2 -0
  74. data/lib/webgen/sourcehandler/sitemap.rb +2 -0
  75. data/lib/webgen/sourcehandler/template.rb +2 -0
  76. data/lib/webgen/sourcehandler/virtual.rb +3 -1
  77. data/lib/webgen/tag.rb +2 -0
  78. data/lib/webgen/tag/base.rb +2 -0
  79. data/lib/webgen/tag/breadcrumbtrail.rb +2 -0
  80. data/lib/webgen/tag/coderay.rb +2 -0
  81. data/lib/webgen/tag/date.rb +2 -0
  82. data/lib/webgen/tag/executecommand.rb +2 -0
  83. data/lib/webgen/tag/includefile.rb +2 -0
  84. data/lib/webgen/tag/langbar.rb +4 -1
  85. data/lib/webgen/tag/link.rb +2 -0
  86. data/lib/webgen/tag/menu.rb +2 -0
  87. data/lib/webgen/tag/metainfo.rb +2 -0
  88. data/lib/webgen/tag/relocatable.rb +2 -0
  89. data/lib/webgen/tag/sitemap.rb +2 -0
  90. data/lib/webgen/tag/tikz.rb +3 -1
  91. data/lib/webgen/tree.rb +5 -0
  92. data/lib/webgen/version.rb +3 -1
  93. data/lib/webgen/webgentask.rb +2 -0
  94. data/lib/webgen/website.rb +104 -3
  95. data/lib/webgen/websiteaccess.rb +2 -0
  96. data/lib/webgen/websitemanager.rb +2 -0
  97. data/man/man1/webgen.1 +6 -0
  98. data/misc/default.css +36 -12
  99. data/misc/default.template +1 -1
  100. data/misc/images/error.png +0 -0
  101. data/misc/images/important.png +0 -0
  102. data/misc/images/information.png +0 -0
  103. data/misc/images/warning.png +0 -0
  104. data/test/helper.rb +4 -0
  105. data/test/test_blackboard.rb +2 -0
  106. data/test/test_cache.rb +2 -0
  107. data/test/test_cli.rb +7 -0
  108. data/test/test_common.rb +18 -0
  109. data/test/test_common_sitemap.rb +7 -5
  110. data/test/test_configuration.rb +2 -0
  111. data/test/test_contentprocessor.rb +2 -0
  112. data/test/test_contentprocessor_blocks.rb +22 -1
  113. data/test/test_contentprocessor_builder.rb +2 -0
  114. data/test/test_contentprocessor_context.rb +2 -0
  115. data/test/test_contentprocessor_erb.rb +2 -0
  116. data/test/test_contentprocessor_erubis.rb +2 -0
  117. data/test/test_contentprocessor_fragments.rb +2 -0
  118. data/test/test_contentprocessor_haml.rb +2 -0
  119. data/test/test_contentprocessor_maruku.rb +2 -0
  120. data/test/test_contentprocessor_rdiscount.rb +2 -0
  121. data/test/test_contentprocessor_rdoc.rb +2 -0
  122. data/test/test_contentprocessor_redcloth.rb +2 -0
  123. data/test/test_contentprocessor_sass.rb +2 -0
  124. data/test/test_contentprocessor_tags.rb +2 -0
  125. data/test/test_languages.rb +2 -0
  126. data/test/test_loggable.rb +2 -0
  127. data/test/test_logger.rb +2 -0
  128. data/test/test_node.rb +2 -0
  129. data/test/test_output_filesystem.rb +2 -0
  130. data/test/test_page.rb +2 -0
  131. data/test/test_path.rb +2 -0
  132. data/test/test_source_filesystem.rb +17 -0
  133. data/test/test_source_resource.rb +2 -0
  134. data/test/test_source_stacked.rb +2 -0
  135. data/test/test_sourcehandler_base.rb +2 -0
  136. data/test/test_sourcehandler_copy.rb +2 -0
  137. data/test/test_sourcehandler_directory.rb +2 -0
  138. data/test/test_sourcehandler_feed.rb +2 -0
  139. data/test/test_sourcehandler_fragment.rb +2 -0
  140. data/test/test_sourcehandler_memory.rb +2 -0
  141. data/test/test_sourcehandler_metainfo.rb +2 -0
  142. data/test/test_sourcehandler_page.rb +2 -0
  143. data/test/test_sourcehandler_sitemap.rb +2 -0
  144. data/test/test_sourcehandler_template.rb +2 -0
  145. data/test/test_sourcehandler_virtual.rb +2 -0
  146. data/test/test_tag_base.rb +4 -0
  147. data/test/test_tag_breadcrumbtrail.rb +2 -0
  148. data/test/test_tag_coderay.rb +2 -0
  149. data/test/test_tag_date.rb +2 -0
  150. data/test/test_tag_executecommand.rb +2 -0
  151. data/test/test_tag_includefile.rb +2 -0
  152. data/test/test_tag_langbar.rb +13 -6
  153. data/test/test_tag_link.rb +2 -0
  154. data/test/test_tag_menu.rb +2 -0
  155. data/test/test_tag_metainfo.rb +2 -0
  156. data/test/test_tag_relocatable.rb +2 -0
  157. data/test/test_tag_sitemap.rb +4 -1
  158. data/test/test_tag_tikz.rb +4 -1
  159. data/test/test_tree.rb +2 -0
  160. data/test/test_webgentask.rb +2 -0
  161. data/test/test_website.rb +6 -4
  162. data/test/test_websiteaccess.rb +2 -0
  163. data/test/test_websitemanager.rb +2 -0
  164. metadata +8 -6
  165. data/misc/images/error.gif +0 -0
  166. data/misc/images/exclamation.gif +0 -0
  167. data/misc/images/information.gif +0 -0
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'stringio'
2
4
  require 'webgen/website'
3
5
  require 'webgen/websitemanager'
@@ -4,3 +4,7 @@
4
4
  # allows you to add your own extensions to webgen or to modify webgen's core!
5
5
  #
6
6
  # If you don't need this feature you can savely delete this file and the directory in which it is!
7
+ #
8
+ # The +config+ variable below can be used to access the Webgen::Configuration object for the current
9
+ # website.
10
+ config = Webgen::WebsiteAccess.website.config
@@ -8,20 +8,32 @@ templates to define the place where the actual page content should be.
8
8
 
9
9
  The general syntax is as follows:
10
10
 
11
- <webgen:block name='BLOCK_NAME' chain='(L)CN;(L)CN;...' />
11
+ <webgen:block name='BLOCK_NAME' chain='(L)CN;(L)CN;...' node='first' notfound='ignore' />
12
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.
13
+ So it is basically an XML tag with the mandatory attribute `name` and the optional attributes
14
+ `chain`, `node` and `notfound`:
18
15
 
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.
16
+ * The `name` attribute is the only mandatory attribute and it specifies the name of the block that
17
+ should be rendered in place of the block tag. The next node in the used node chain (if there is
18
+ only one node left in the node chain that node is used) needs to have a block that has such a name
19
+ (this behaviour can be changed with the `node` attribute), otherwise an error is raised. The
20
+ block is rendered according to its render pipeline and then inserted.
23
21
 
24
- This is more easily explained with examples. Assume we have a `default.template` file, a
22
+ * The optional attribute `chain` specifies the node chain that should be used for rendering the
23
+ block. Its value needs to be a list of (localized) canonical names of nodes separated by
24
+ semicolons that should be used as node chain. If this attribute is not specified the default node
25
+ chain is used.
26
+
27
+ * The optional attribute `node` specifies which node in the node chain should be used. If this
28
+ attribute is not specified, the next node in the node chain is used. If it is specified with the
29
+ value `first`, then the node chain is traversed till a node is found that has a block with the
30
+ specified name. If no such node is in the node chain, an error is raised.
31
+
32
+ * If the optional attribute `notfound` has a value of `ignore`, all errors that can occur are
33
+ ignored. This is especially useful when used in templates to include blocks that may not be
34
+ defined in all page files.
35
+
36
+ All this is more easily explained with examples. Assume that we have a `default.template` file, a
25
37
  `page.template` file and a `my.page` file with the following contents:
26
38
 
27
39
  The `default.template` file:
@@ -32,6 +44,10 @@ The `default.template` file:
32
44
  after default 1
33
45
  <webgen:block name='content' chain='page.template;my.html' />
34
46
  after default 2
47
+ <webgen:block name='optional' chain='page.template;my.html' node='first' />
48
+ after default 3
49
+ <webgen:block name='invalid' notfound='ignore' />
50
+ after default 4
35
51
 
36
52
  The `page.template` file:
37
53
 
@@ -44,18 +60,28 @@ And the `my.page` file:
44
60
 
45
61
  --- name:content pipeline:
46
62
  The content of the page file.
63
+ --- name:optional pipeline:
64
+ Optional content.
47
65
 
48
66
  When `my.page` gets rendered to `my.html`, the node chain looks like this by default:
49
67
 
50
- default.template ---> my.page
68
+ default.template ---> my.html
51
69
 
52
70
  The first webgen block tag just inserts the rendered block named `content` of `my.page`. The second
53
71
  block tag uses a custom node chain. Therefore the block named `content` of `page.template` gets
54
72
  rendered using the node chain:
55
73
 
56
- page.template ---> my.page
74
+ page.template ---> my.html
57
75
 
58
- and then inserted. Summing up the above, the rendered file `my.html` will then look like this:
76
+ and then inserted. The third block tag uses the same custom node chain but for a block named
77
+ `optional`. This block does not exist in `page.template` but it does exist in `my.page`. Since the
78
+ `node` attribute is set to `first`, the first node `page.template` in the node chain is ignored and
79
+ the block is found in `my.page` (if the `node` attribute is not specified, an error will be raised).
80
+
81
+ The fourth block tag specifies a block name that does not occur in `my.page`. However, since the
82
+ optional attribute `notfound` is set to `ignore`, this error is ignored.
83
+
84
+ Summing up the above, the rendered file `my.html` will then look like this:
59
85
 
60
86
  before default 1
61
87
  The content of the page file.
@@ -64,3 +90,7 @@ and then inserted. Summing up the above, the rendered file `my.html` will then l
64
90
  The content of the page file.
65
91
  after page 1
66
92
  after default 2
93
+ Optional content.
94
+ after default 3
95
+
96
+ after default 4
@@ -12,7 +12,7 @@ erb.html}).
12
12
  > to do this is via Rubygems:
13
13
  >
14
14
  > gem install builder
15
- {.exclamation}
15
+ {.warning}
16
16
 
17
17
 
18
18
  ## Examples
@@ -53,4 +53,4 @@ output the result of the Ruby code (note the equation sign!). And the fourth lin
53
53
  > You may need to ensure that the ERB start and end tags are not processed by the content
54
54
  > processor. For example, when using the RedCloth content processor, you may need to surround the
55
55
  > ERB code with `<textile>` tags!
56
- {.exclamation}
56
+ {.important}
@@ -11,7 +11,7 @@ options.
11
11
  > way to do this is via Rubygems:
12
12
  >
13
13
  > gem install erubis
14
- {.exclamation}
14
+ {.warning}
15
15
 
16
16
  [1]: http://www.kuwata-lab.com/erubis/ "Erubis Homepage"
17
17
 
@@ -10,7 +10,7 @@ attribute set.
10
10
  > context! This is to ensure that fragment nodes are not created from multiple block of one page
11
11
  > file. So this content processor has no effect when used in the pipeline of blocks except if the
12
12
  > block is named `content`.
13
- {.exclamation}
13
+ {.warning}
14
14
 
15
15
  The default markup language Maruku automatically generates an `id` attribute for all headers. If you
16
16
  use another markup language or plain old HTML, you might need to set the `id` attributes by hand.
@@ -15,7 +15,7 @@ erb.html}).
15
15
  > do this is via Rubygems:
16
16
  >
17
17
  > gem install haml
18
- {.exclamation}
18
+ {.warning}
19
19
 
20
20
 
21
21
  ## Example
@@ -12,7 +12,7 @@ Markdown processor]({relocatable: maruku.html}) does.
12
12
  > way to do this is via Rubygems:
13
13
  >
14
14
  > gem install rdiscount
15
- {.exclamation}
15
+ {.warning}
16
16
 
17
17
  [1]: http://github.com/rtomayko/rdiscount
18
18
 
@@ -11,7 +11,7 @@ for Ruby source files, [reference][1]) to HTML.
11
11
  > implementation is via Rubygems:
12
12
  >
13
13
  > gem install rdoc
14
- {.exclamation}
14
+ {.warning}
15
15
 
16
16
  [1]: http://rdoc.rubyforge.org/rdoc/ "RDoc Reference"
17
17
  [2]: http://rubyforge.org/projects/rdoc/ "New RDoc implementation"
@@ -10,7 +10,7 @@ RedCloth library. For detailed information about Textile have a look at the [Tex
10
10
  > way to do this is via Rubygems:
11
11
  >
12
12
  > gem install RedCloth
13
- {.exclamation}
13
+ {.warning}
14
14
 
15
15
 
16
16
  Example
@@ -10,7 +10,7 @@ using the Haml library. For detailed information about Sass have a look at the [
10
10
  > do this is via Rubygems:
11
11
  >
12
12
  > gem install haml
13
- {.exclamation}
13
+ {.warning}
14
14
 
15
15
 
16
16
  ## Example
data/doc/faq.page CHANGED
@@ -177,7 +177,7 @@ following to the sidebar part in your `default.template` (ensure that you haven'
177
177
  the processing pipeline):
178
178
 
179
179
  <%% if node.node_info[:page].blocks.has_key?('sidebar') %>
180
- \<webgen:block name='sidebar' />
180
+ <webgen:block name='sidebar' />
181
181
  <%% end %>
182
182
 
183
183
  This will include the contents of the block `sidebar` in the sidebar if such a block exists for a
@@ -188,6 +188,11 @@ page file:
188
188
  --- name:sidebar
189
189
  This is the sidebar block and everything in here goes to the sidebar!
190
190
 
191
+ You can avoid using the ERB processor if you use the following syntax (available from version 0.5.7
192
+ upwards):
193
+
194
+ <webgen:block name='sidebar' node='first' notfound='ignore' />
195
+
191
196
  ### ... create XML output?
192
197
 
193
198
  This can be achieved manually (by removing any markup processor in the processing pipeline of the
@@ -211,4 +216,4 @@ in the meta information block of the page file for which you want a short menu t
211
216
 
212
217
  > Be aware that this changes not only how the page appears in a menu but also how it appears in
213
218
  > breadcrumb trails and other links generated by webgen.
214
- {.exclamation}
219
+ {.important}
data/doc/manual.page CHANGED
@@ -19,7 +19,8 @@ The executable for webgen is called... webgen ;-) It uses a command style syntax
19
19
  possible commands run `webgen help`.
20
20
 
21
21
  The main command is the `render` command which does the actual website generation. This command uses
22
- the current working directory as website directory if none was specified via the gloabl `-d` option.
22
+ either the environment variable `WEBGEN_WEBSITE` (if it is set and non-empty) or the current working
23
+ directory as website directory if none was specified via the gloabl `-d` option.
23
24
 
24
25
  You can invoke a command by specifying its name after the executable name. Also counting the
25
26
  executable `webgen` as a command, the options for a command are specified directly after the command
@@ -250,7 +251,7 @@ information can be extracted correctly from the path name:
250
251
  > If two paths have the same `basename` and `extension` part, they should define the same
251
252
  > content but for different languages. This allows webgen to automatically deliver the right
252
253
  > language version of the content
253
- {.information}
254
+ {.important}
254
255
 
255
256
  * `lang`
256
257
 
@@ -297,7 +298,7 @@ language, it is first tried to get the path in the requested language. If this i
297
298
  (ie. no such localization exists), the unlocalized path is returned if it exists.
298
299
 
299
300
  > Directories and fragments are never localized, only files are!
300
- {.exclamation}
301
+ {.important}
301
302
 
302
303
  It is also possible to use the _localized canonical name_ of a path to resolve it. The localized
303
304
  canonical name is the same as the canonical name but with a language code inserted before the
@@ -330,9 +331,9 @@ information key is an array which can have the following values:
330
331
  * `:year`, `:month`, `:day`: The creation year, month and day, respectively, of the source path.
331
332
  An error is raised if the needed meta information `created_at` is not set on the path.
332
333
 
333
- > The contructed output path must always be an absolute one, ie. it has to start at the root of the
334
+ > The constructed output path must always be an absolute one, ie. it has to start at the root of the
334
335
  > output directory. Therefore, the `:parent` part should always be included!
335
- {.information}
336
+ {.important}
336
337
 
337
338
  Following are some examples of output path names for given source path names (assuming that `en` is
338
339
  the default language and that the path is under a directory called `/img/`):
@@ -171,7 +171,7 @@ at the [output path creation section]({relocatable: manual.html#source-output})
171
171
 
172
172
  > This meta information has to be set BEFORE a node gets created. Setting this value is therefore
173
173
  > only useful, for example, in the `paths` block of a meta information backing file.
174
- {.exclamation}
174
+ {.important}
175
175
 
176
176
  ### priority
177
177
 
@@ -7,6 +7,12 @@ This source handler automatically generates an atom or RSS feed for a set of fil
7
7
  [Webgen Page Format]({relocatable: ../webgen_page_format.html}) (the format which is also used for
8
8
  page files).
9
9
 
10
+ > This extension is only available if you have installed the [feedtools][1] library. The preferred
11
+ > way to do this is via Rubygems:
12
+ >
13
+ > gem install feedtools
14
+ {.warning}
15
+
10
16
  The following meta information keys are supported:
11
17
 
12
18
  * `entries` (MANDATORY)
@@ -94,4 +100,6 @@ The following meta information keys of page files are used if they are specified
94
100
 
95
101
  The default implementation supports the generation of atom and RSS feeds. You can override the
96
102
  default generation mechanism by adding an `atom_template` and/or `rss_template` block in the feed
97
- file which are then used to generate the atom or the RSS feed respectively.
103
+ file which are then used to generate the atom or the RSS feed respectively.
104
+
105
+ [1]: http://sporkmonger.com/projects/feedtools
@@ -11,7 +11,7 @@ This source handler automatically generates a sitemap based on the specification
11
11
  > library. The preferred way to do this is via Rubygems:
12
12
  >
13
13
  > gem install builder
14
- {.exclamation}
14
+ {.warning}
15
15
 
16
16
  The following meta information keys are supported:
17
17
 
data/doc/tag/coderay.page CHANGED
@@ -24,7 +24,7 @@ specifies what should be highlighted.
24
24
  > way to do this is via Rubygems:
25
25
  >
26
26
  > gem install coderay
27
- {.exclamation}
27
+ {.warning}
28
28
 
29
29
  [1]: http://coderay.rubychan.de/ "The Coderay homepage"
30
30
 
data/doc/tag/langbar.page CHANGED
@@ -12,6 +12,21 @@ This tag is used to display a list of links to translations of the page. The tex
12
12
  can be set via the configuration option `tag.langbar.lang_names` (if not set, the language code is
13
13
  shown).
14
14
 
15
+ The option `tag.langbar.process_output` is useful in conjunction with `tag.langbar.lang_names` to
16
+ display language flags. For example, you can use the following entries in `config.yaml`:
17
+
18
+ tag.langbar.lang_names:
19
+ en: |
20
+ <img src="\{relocatable: img/flag_english.gif}" alt="English flag"/> English
21
+ de: |
22
+ <img src="\{relocatable: img/flag_german.gif}" alt="German flag"/> Deutsch
23
+
24
+ tag.langbar.process_output: true
25
+
26
+ This assumes that the `langbar` tag is *only* used in `src/default.template` and the flag images are
27
+ under `src/img/` (otherwise the `relocatable` tag can correctly find the paths). To work around
28
+ this, you could specify the `lang_names` directly in the `langbar` tag.
29
+
15
30
  ## Examples
16
31
 
17
32
  <table class="examples">
data/doc/tag/menu.page CHANGED
@@ -27,7 +27,7 @@ generating an in-page content menu of all the header sections.
27
27
 
28
28
  > When using the option value `files` for `tag.menu.used_nodes`, all nodes which are only in the
29
29
  > menu because they have fragment nodes beneath them are not included in the menu.
30
- {.exclamation}
30
+ {.important}
31
31
 
32
32
  The rendered menu consists of `ul` and `li` tags and the links (or `span` elements) to the menu
33
33
  entries . The `li` tags have special CSS classes set for styling. These CSS class names are as
@@ -5,7 +5,7 @@ used_options:
5
5
  ---
6
6
  ## Description
7
7
 
8
- This tag ensures that the relative path to the specified path is always correct.
8
+ This tag ensures that the relative path to the specified path is always correct.
9
9
 
10
10
  When the tag is used, it changes the directory part of the supplied path name to a relative path to
11
11
  the destination and is most often used in template files. A relocatable tag looks like this:
@@ -15,7 +15,7 @@ ensuring that the relative path to file is valid.
15
15
 
16
16
  > You can only use the `relocatable` tag with paths that are handled by webgen. If you want to
17
17
  > handle paths that are not normally handled by webgen, create a virtual path for them.
18
- {.exclamation}
18
+ {.important}
19
19
 
20
20
  If the specified path is an absolute URL (like `http://webgen.rubyforge.org`), it will just return
21
21
  it. And if you specify an URL fragment, this fragment has to exist. If you don't want to resolve a
@@ -1,14 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  module Webgen
2
4
 
3
5
  # A blackboard object provides two features for inter-object communication:
4
6
  #
5
7
  # * services: An object can add a service to the blackboard which can be called by any other
6
- # object by just specifing the service name. Therefore it is easy to change the
7
- # underlying implementation of the service and there are no hard dependencies on
8
- # specific class or method names.
8
+ # object by just specifing the service name. Therefore it is easy to change the underlying
9
+ # implementation of the service and there are no hard dependencies on specific class or method
10
+ # names.
9
11
  #
10
12
  # * listeners: Objects may register themselves for specific messsage names and get notified when
11
- # such a message gets dispatched.
13
+ # such a message gets dispatched.
14
+ #
15
+ # For a list of all available services and messages have a look at the main Webgen documentation
16
+ # page.
12
17
  class Blackboard
13
18
 
14
19
  # Create a new Blackboard object.
data/lib/webgen/cache.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'set'
2
4
  require 'facets/kernel/constant'
3
5
 
data/lib/webgen/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'cmdparse'
2
4
  require 'webgen/website'
3
5
  require 'webgen/version'
@@ -77,9 +79,12 @@ module Webgen
77
79
  # The log level. Default: <tt>Logger::WARN</tt>
78
80
  attr_reader :log_level
79
81
 
82
+ # Create a new CommandParser class. The default webgen website (if not specified via the
83
+ # <tt>-d</tt> option) is taken from the environment variable +WEBGEN_WEBSITE+ or, if it is not
84
+ # set or empty, the current working directory.
80
85
  def initialize # :nodoc:
81
86
  super(true)
82
- @directory = Dir.pwd
87
+ @directory = (ENV['WEBGEN_WEBSITE'].to_s.empty? ? Dir.pwd : ENV['WEBGEN_WEBSITE'])
83
88
  @verbosity = :normal
84
89
  @log_level = ::Logger::WARN
85
90
  @log_filter = nil
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'webgen/cli'
2
4
  require 'webgen/websitemanager'
3
5
 
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'webgen/cli'
2
4
 
3
5
  module Webgen::CLI
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'facets/ansicode'
2
4
  require 'rbconfig'
3
5
 
@@ -1,3 +1,5 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'webgen/cli'
2
4
 
3
5
  module Webgen::CLI