webgen 0.5.10 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/ChangeLog +487 -0
  2. data/Rakefile +13 -28
  3. data/VERSION +1 -1
  4. data/bin/webgen +1 -2
  5. data/data/webgen/passive_sources/templates/atom_feed.template +1 -0
  6. data/data/webgen/website_bundles/style/andreas07/src/default.css +2 -2
  7. data/data/webgen/website_skeleton/config.yaml +22 -5
  8. data/doc/contentprocessor.template +2 -2
  9. data/doc/contentprocessor/blocks.page +4 -4
  10. data/doc/contentprocessor/builder.page +2 -3
  11. data/doc/contentprocessor/erb.page +1 -1
  12. data/doc/contentprocessor/erubis.page +5 -5
  13. data/doc/contentprocessor/fragments.page +5 -4
  14. data/doc/contentprocessor/haml.page +2 -3
  15. data/doc/contentprocessor/head.page +16 -6
  16. data/doc/contentprocessor/kramdown.page +49 -0
  17. data/doc/contentprocessor/less.page +34 -0
  18. data/doc/contentprocessor/maruku.page +6 -3
  19. data/doc/contentprocessor/rdiscount.page +3 -3
  20. data/doc/contentprocessor/rdoc.page +1 -1
  21. data/doc/contentprocessor/redcloth.page +1 -1
  22. data/doc/contentprocessor/sass.page +1 -1
  23. data/doc/contentprocessor/tags.page +2 -2
  24. data/doc/contentprocessor/tidy.page +2 -2
  25. data/doc/extensions.page +1 -2
  26. data/doc/extensions.template +5 -5
  27. data/doc/getting_started.page +16 -12
  28. data/doc/index.page +21 -21
  29. data/doc/manual.page +109 -61
  30. data/doc/reference_configuration.page +63 -38
  31. data/doc/reference_metainfo.page +68 -45
  32. data/doc/reference_website_styles.page +5 -1
  33. data/doc/source/filesystem.page +4 -4
  34. data/doc/source/tararchive.page +4 -4
  35. data/doc/sourcehandler.template +2 -2
  36. data/doc/sourcehandler/feed.page +3 -4
  37. data/doc/sourcehandler/metainfo.page +1 -1
  38. data/doc/sourcehandler/page.page +3 -3
  39. data/doc/sourcehandler/sitemap.page +2 -3
  40. data/doc/sourcehandler/template.page +2 -2
  41. data/doc/sourcehandler/virtual.page +5 -5
  42. data/doc/tag.template +1 -1
  43. data/doc/tag/coderay.page +2 -2
  44. data/doc/tag/includefile.page +1 -1
  45. data/doc/tag/langbar.page +4 -1
  46. data/doc/tag/menu.page +3 -3
  47. data/doc/tag/relocatable.page +1 -1
  48. data/doc/upgrading.page +30 -31
  49. data/doc/webgen_page_format.page +6 -6
  50. data/lib/webgen/cache.rb +4 -5
  51. data/lib/webgen/cli/utils.rb +18 -7
  52. data/lib/webgen/cli/webgui_command.rb +4 -2
  53. data/lib/webgen/common.rb +10 -0
  54. data/lib/webgen/configuration.rb +1 -3
  55. data/lib/webgen/contentprocessor.rb +4 -2
  56. data/lib/webgen/contentprocessor/blocks.rb +1 -0
  57. data/lib/webgen/contentprocessor/builder.rb +3 -9
  58. data/lib/webgen/contentprocessor/erb.rb +3 -9
  59. data/lib/webgen/contentprocessor/erubis.rb +3 -9
  60. data/lib/webgen/contentprocessor/haml.rb +10 -11
  61. data/lib/webgen/contentprocessor/head.rb +64 -0
  62. data/lib/webgen/contentprocessor/kramdown.rb +26 -0
  63. data/lib/webgen/contentprocessor/kramdown/html.rb +32 -0
  64. data/lib/webgen/contentprocessor/less.rb +35 -0
  65. data/lib/webgen/contentprocessor/maruku.rb +14 -0
  66. data/lib/webgen/contentprocessor/tags.rb +25 -7
  67. data/lib/webgen/default_config.rb +9 -3
  68. data/lib/webgen/node.rb +92 -0
  69. data/lib/webgen/output.rb +3 -1
  70. data/lib/webgen/source/resource.rb +2 -1
  71. data/lib/webgen/source/tararchive.rb +3 -2
  72. data/lib/webgen/sourcehandler.rb +8 -4
  73. data/lib/webgen/sourcehandler/base.rb +1 -2
  74. data/lib/webgen/sourcehandler/feed.rb +1 -1
  75. data/lib/webgen/sourcehandler/virtual.rb +1 -0
  76. data/lib/webgen/tag/base.rb +1 -1
  77. data/lib/webgen/tag/langbar.rb +5 -2
  78. data/lib/webgen/version.rb +1 -1
  79. data/lib/webgen/website.rb +7 -8
  80. data/misc/default.template +1 -1
  81. data/misc/htmldoc.virtual +13 -1
  82. data/test/test_contentprocessor.rb +1 -1
  83. data/test/test_contentprocessor_blocks.rb +16 -1
  84. data/test/test_contentprocessor_erb.rb +1 -1
  85. data/test/test_contentprocessor_fragments.rb +1 -1
  86. data/test/test_contentprocessor_haml.rb +2 -2
  87. data/test/test_contentprocessor_head.rb +54 -8
  88. data/test/test_contentprocessor_kramdown.rb +50 -0
  89. data/test/test_contentprocessor_less.rb +40 -0
  90. data/test/test_contentprocessor_tags.rb +8 -0
  91. data/test/test_node.rb +102 -41
  92. data/test/test_source_tararchive.rb +5 -1
  93. data/test/test_sourcehandler_feed.rb +5 -2
  94. data/test/test_sourcehandler_virtual.rb +5 -0
  95. data/test/test_tag_langbar.rb +2 -3
  96. metadata +22 -16
  97. data/lib/webgen/deprecated.rb +0 -87
data/Rakefile CHANGED
@@ -64,6 +64,7 @@ Webgen::WebgenTask.new('htmldoc') do |site|
64
64
  ["/website_styles/#{name.sub(prefix, '')}/", 'Webgen::Source::Resource', name, '/src/**', '/src/']
65
65
  end
66
66
  config['output'] = ['Webgen::Output::FileSystem', 'htmldoc']
67
+ config.default_processing_pipeline('Page' => 'erb,tags,kramdown,blocks,fragments')
67
68
  end
68
69
  end
69
70
 
@@ -160,20 +161,20 @@ EOF
160
161
 
161
162
  s.files = PKG_FILES.to_a
162
163
  s.add_dependency('cmdparse', '>= 2.0.2')
163
- s.add_dependency('maruku', '0.5.9')
164
- s.add_dependency('facets', '2.4.5')
164
+ s.add_dependency('kramdown', '>= 0.5.0')
165
+ s.add_development_dependency('maruku', '>= 0.6.0')
165
166
  s.add_development_dependency('rake', '>= 0.8.3')
166
167
  s.add_development_dependency('ramaze', '>= 2009.04')
167
168
  s.add_development_dependency('launchy', '>= 0.3.2')
168
169
  s.add_development_dependency('rcov', '>= 0.8.1.2.0')
169
- s.add_development_dependency('rubyforge', '>= 1.0.0')
170
+ s.add_development_dependency('rubyforge', '>= 2.0.2')
170
171
  s.add_development_dependency('RedCloth', '>= 4.1.9')
171
- s.add_development_dependency('haml', '>= 2.0.9')
172
+ s.add_development_dependency('haml', '>= 2.2.7')
172
173
  s.add_development_dependency('builder', '>= 2.1.0')
173
- s.add_development_dependency('rdoc', '>= 2.4.2')
174
+ s.add_development_dependency('rdoc', '>= 2.4.3')
174
175
  s.add_development_dependency('coderay', '>= 0.8.312')
175
- s.add_development_dependency('erubis', '>= 2.6.2')
176
- s.add_development_dependency('rdiscount', '>= 1.2.9')
176
+ s.add_development_dependency('erubis', '>= 2.6.5')
177
+ s.add_development_dependency('rdiscount', '>= 1.3.5')
177
178
  s.add_development_dependency('archive-tar-minitar', '>= 0.5.2')
178
179
 
179
180
  s.require_path = 'lib'
@@ -199,27 +200,6 @@ EOF
199
200
  pkg.need_tar = true
200
201
  end
201
202
 
202
- desc 'Generate gemspec file for github'
203
- task :gemspec do
204
- spec.version = Webgen::VERSION + '.' + Time.now.strftime('%Y%m%d')
205
- spec.summary = 'webgen beta build, not supported!!!'
206
- spec.files = spec.files.reject {|f| f == 'VERSION' || f == 'ChangeLog'}
207
- spec.post_install_message = "
208
-
209
-
210
- WARNING: This is an unsupported BETA version of webgen which may
211
- still contain bugs!
212
-
213
- The official version is called 'webgen' and can be installed via
214
-
215
- gem install webgen
216
-
217
-
218
-
219
- "
220
- File.open('webgen.gemspec', 'w+') {|f| f.write(spec.to_yaml)}
221
- end
222
-
223
203
  end
224
204
 
225
205
  desc "Upload webgen documentation to Rubyforge homepage"
@@ -250,6 +230,10 @@ The official version is called 'webgen' and can be installed via
250
230
  files = %w[.gem .tgz .zip].collect {|ext| "pkg/webgen-#{Webgen::VERSION}" + ext}
251
231
 
252
232
  rf.add_release('webgen', 'webgen', Webgen::VERSION, *files)
233
+
234
+ print 'Pushing gem to gemcutter'
235
+ sh "gem push pkg/webgen-#{Webgen::VERSION}.gem"
236
+
253
237
  puts 'done'
254
238
  end
255
239
 
@@ -282,6 +266,7 @@ The official version is called 'webgen' and can be installed via
282
266
  config['sources'] <<
283
267
  ["/documentation/website_styles/#{name.sub(prefix, '')}/", 'Webgen::Source::Resource', name, '/src/**', '/src/']
284
268
  end
269
+ config.default_processing_pipeline('Page' => 'erb,tags,kramdown,blocks,fragments')
285
270
  end
286
271
  end
287
272
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.10
1
+ 0.5.11
data/bin/webgen CHANGED
@@ -1,6 +1,5 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
1
  #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
4
3
 
5
4
  require 'webgen/cli'
6
5
  begin
@@ -11,6 +11,7 @@ template: ~
11
11
  </author>
12
12
 
13
13
  <link href="<%= context.node.feed_link %>" rel="alternate" />
14
+ <link href="<%= Webgen::Node.url(File.join(context.node['site_url'], context.node.path), false) %>" rel="self" />
14
15
  <generator uri="http://webgen.rubyforge.org/documentation/sourcehandler/feed.html" version="<%= Webgen::VERSION %>">
15
16
  webgen - Webgen::SourceHandler::Feed
16
17
  </generator>
@@ -71,10 +71,10 @@ body > #sidebar
71
71
  #menu a:hover, #menu span:hover
72
72
  {color:#303030; background:#f0f0f0 url(images/sidebarbg.gif) top right repeat-y;}
73
73
 
74
- #menu li.webgen-menu-item-selected a, #menu li.webgen-menu-item-selected span
74
+ #menu li.webgen-menu-item-selected a, #menu li.webgen-menu-item-selected span, #menu li.webgen-menu-submenu-inhierarchy span
75
75
  {padding:5px 18px 5px 0; background:#fafafa; border-top:2px solid #c0c0c0; border-bottom:2px solid #c0c0c0;}
76
76
 
77
- #menu li.webgen-menu-item-selected a:hover, #menu li.webgen-menu-item-selected span:hover
77
+ #menu li.webgen-menu-item-selected a:hover, #menu li.webgen-menu-item-selected span:hover, #menu li.webgen-menu-submenu-inhierarchy span:hover
78
78
  {color:#505050; background:#fafafa;}
79
79
 
80
80
  /**************** Content area styles ****************/
@@ -1,3 +1,4 @@
1
+ #####
1
2
  # This is the YAML configuration file for webgen used to set configuration options.
2
3
  #
3
4
  # The general syntax is:
@@ -8,11 +9,27 @@
8
9
  #
9
10
  # website.lang: de
10
11
  #
11
- # Have a look at the documentation of the individual configuration options to see
12
- # the allowed format of the values. Since this is a YAML file, you can easily set
13
- # configuration options as strings, integers, dates, arrays, hashes and more.
12
+ # Have a look at the documentation of the individual configuration options to see the allowed format
13
+ # of the values. Since this is a YAML file, you can easily set configuration options as strings,
14
+ # integers, dates, arrays, hashes and more.
14
15
  #
15
- # The available configuration options can be found on the homepage in the
16
- # Configuration Option Reference at
16
+ # The available configuration options can be found on the homepage in the Configuration Option
17
+ # Reference at
17
18
  #
18
19
  # http://webgen.rubyforge.org/documentation/reference_configuration.html
20
+ #
21
+ # Some common use cases are shown below.
22
+ #####
23
+
24
+ ## The default processing pipeline for page files. If you use a different markup language you need to
25
+ ## change 'markdown' to the short name of the content processor for the markup language.
26
+ default_processing_pipeline:
27
+ Page: erb,tags,markdown,blocks,fragments
28
+
29
+ ## Setting the default language. The argument must be an ISO-639-1/2 language code.
30
+ # website.lang: de
31
+
32
+ ## Adding some extensions to the copy source handler.
33
+ # patterns:
34
+ # Copy:
35
+ # add: [**/*.pdf, **/*.djvu]
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  template: extensions.template
3
- --- name:summary pipeline:erb,tags,maruku,blocks
3
+ --- name:summary pipeline:erb,tags,kramdown,blocks
4
4
 
5
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
6
+ file in [Webgen Page Format](webgen_page_format.html)) one of the following can be
7
7
  used: `<%= context.website.config['contentprocessor.map'].select {|k,v| v ==
8
8
  context.content_node['title']}.map {|k,v| k}.join(', ') %>`.
9
9
 
@@ -15,9 +15,9 @@ So it is basically an XML tag with the mandatory attribute `name` and the option
15
15
  explanation of how this tag works.
16
16
 
17
17
  webgen uses a node chain when rendering a page file. The default node chain is automatically
18
- determined via the `template` meta information (see [SourceHandler::Template]({relocatable:
19
- ../sourcehandler/template.html})) and the important thing to keep in mind is that the first node in
20
- the node chain is always the currently rendered template/page.
18
+ determined via the `template` meta information (see
19
+ [SourceHandler::Template](../sourcehandler/template.html)) and the important thing to keep in mind
20
+ is that the first node in the node chain is always the currently rendered template/page.
21
21
 
22
22
  For example, consider a `default.template` with a block tag of `<webgen:block name='content' />` and
23
23
  an `index.page` that should be rendered. This would result in a node chain of (note that the CN of a
@@ -60,7 +60,7 @@ Following is the documentation for the available attributes of the tag:
60
60
  node in the node chain).
61
61
 
62
62
  > Note that the attribute `chain` is not used in this situation!
63
- {.important}
63
+ {:.important}
64
64
 
65
65
  * If the optional attribute `notfound` has a value of `ignore`, all errors that can occur are
66
66
  ignored. This is especially useful when used in templates to include blocks that may not be
@@ -5,14 +5,13 @@ title: Webgen::ContentProcessor::Builder
5
5
 
6
6
  This content processor can be used to programatically create XHTML/XML documents
7
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}).
8
+ objects provided by webgen available - have a look at the [erb documentation](erb.html).
10
9
 
11
10
  > This extension is only available if you have installed the [builder][1] library. The preferred way
12
11
  > to do this is via Rubygems:
13
12
  >
14
13
  > gem install builder
15
- {.warning}
14
+ {:.warning}
16
15
 
17
16
 
18
17
  ## Examples
@@ -57,4 +57,4 @@ output the result of the Ruby code (note the equation sign!). And the fourth lin
57
57
  > You may need to ensure that the ERB start and end tags are not processed by the content
58
58
  > processor. For example, when using the RedCloth content processor, you may need to surround the
59
59
  > ERB code with `<notextile>` tags!
60
- {.important}
60
+ {:.important}
@@ -11,17 +11,17 @@ options.
11
11
  > way to do this is via Rubygems:
12
12
  >
13
13
  > gem install erubis
14
- {.warning}
14
+ {:.warning}
15
15
 
16
16
  [1]: http://www.kuwata-lab.com/erubis/ "Erubis Homepage"
17
17
 
18
18
  You can use some special objects provided by webgen in your embedded Ruby code. These are the same
19
19
  objects that are available to the `erb` processor, have a look at its [documentation
20
- page]({relocatable: erb.html}).
20
+ page](erb.html).
21
21
 
22
- The default mode of Erubis works like ERB. So everyting said on the [erb page]({relocatable:
23
- erb.html}) is also true for Erubis. However, you can customize how this processor works by using the
24
- following configuration options:
22
+ The default mode of Erubis works like ERB. So everyting said on the [erb page](erb.html) is also
23
+ true for Erubis. However, you can customize how this processor works by using the following
24
+ configuration options:
25
25
 
26
26
  * `contentprocessor.erubis.use_pi`: Use processing instructions instead of ERB like
27
27
  instructions. Normally you use statements like `<%% result = some_method_call(opts) %>` or `<%%=
@@ -10,14 +10,15 @@ 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
- {.warning}
13
+ {:.warning}
14
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.
15
+ The default markup language kramdown automatically generates an `id` attribute for all headers. If
16
+ you use another markup language or plain old HTML, you might need to set the `id` attributes by
17
+ hand.
17
18
 
18
19
  > The reason why only header tags with an `id` attribute are used is that only those can be
19
20
  > referenced and linked to later.
20
- {.information}
21
+ {:.information}
21
22
 
22
23
  The generated fragment nodes can be used like any other node. So you can link to them and use them
23
24
  in a menu. Concerning the menu, there is a setting for the `tag.menu.used_nodes` option called
@@ -8,14 +8,13 @@ XHTML by using the Haml library. For detailed information about Haml have a look
8
8
  Homepage][1]!
9
9
 
10
10
  You can use some special objects provided by webgen in your Haml markup. These are the same objects
11
- that are available to the `erb` processor, have a look at its [documentation page]({relocatable:
12
- erb.html}).
11
+ that are available to the `erb` processor, have a look at its [documentation page](erb.html).
13
12
 
14
13
  > This extension is only available if you have installed the [haml][1] library. The preferred way to
15
14
  > do this is via Rubygems:
16
15
  >
17
16
  > gem install haml
18
- {.warning}
17
+ {:.warning}
19
18
 
20
19
 
21
20
  ## Example
@@ -3,13 +3,23 @@ title: Webgen::ContentProcessor::Head
3
3
  ---
4
4
  ## Description
5
5
 
6
- This processor inserts before the end of the HTML head section links to used javascript and css
7
- files, inline javascript and css content and general meta tags. This functionality can be used, for
8
- example, by webgen tags to add needed javascript or css fragments on a page-per-page basis.
6
+ This processor is used to insert various HTML tags (`link`, `script` and `meta`) before the end of
7
+ the HTML head section. The tags that tags are inserted can be specified in various ways:
9
8
 
10
- It can also be used to insert arbitrary meta tags on a page-per-page basis. This can be done by
11
- setting the meta information named [`meta`]({relocatable: ../reference_metainfo.html#meta}) on a
12
- page file.
9
+ * Links to used javascript and css files, inline javascript and css content and general meta tags
10
+ can be set by webgen tags (or by any other webgen extension) on a page-per-page basis.
11
+
12
+ * Arbitrary meta tags can be inserted on a page-per-page basis by the user by setting the meta
13
+ information named [`meta`](../reference_metainfo.html#meta) on a page file.
14
+
15
+ * Links to javascript and/or CSS files can be inserted by the user by setting the meta information
16
+ named [`link`](../reference_metainfo.html#link).
17
+
18
+ * Arbitrary link tags can also be inserted by setting the meta information named
19
+ [`link`](../reference_metainfo.html#link). This allows one, for example, to specify which page
20
+ file logically follows or precedes a given page file.
21
+
22
+ The processor also automatically inserts `link` tags to translations of the rendered page file.
13
23
 
14
24
  This content processor should be used on template files since its output is only useful in the head
15
25
  section of an HTML file. And it should be the last content processor in the pipeline because
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Webgen::ContentProcessor::Kramdown
3
+ ---
4
+ ## Description
5
+
6
+ This processor converts the content, which is assumed to be in kramdown format, to HTML by using the
7
+ [kramdown][1] library. The kramdown format is basically Markdown with some extensions like automatic
8
+ header ID generation, using markup inside HTML elements and some more. There are a [quick
9
+ reference][2] and a detailed [syntax documentation][3] available on the kramdown homepage.
10
+
11
+ One can customize how this processor works by using the following configuration options:
12
+
13
+ * `contentprocessor.kramdown.handle_links`: If `true` (the default), then all link URLs created via
14
+ kramdown syntax are automatically run through the [relocatable tag](../tag/relocatable.html). This
15
+ avoids using the `relocatable` tag explicitly but ensures valid links nonetheless.
16
+
17
+ * `contentprocesoor.kramdown.options`: This configuration option can be used to customize the
18
+ kramdown processor. Have a look at the [kramdown homepage][1] for available options.
19
+
20
+ > kramdown is the default markup content processor for webgen as its markup syntax is easy to learn
21
+ > and nice to look at. Give it a try!
22
+ {:.info}
23
+
24
+ Example
25
+ -------
26
+
27
+ Here is a short sample of a text in kramdown markup:
28
+
29
+ # This a h1 header
30
+ {:#myid}
31
+
32
+ You can just write *your* paragraphs here and
33
+ [link][1] them below. This is **nice** format!
34
+
35
+ > Citations are easy too.
36
+ > Really. And you can assign them attributes.
37
+ {:.information}
38
+
39
+ * Lists
40
+ * aren't
41
+ * difficult
42
+ * either.
43
+
44
+ [1]: http://someurl.com
45
+
46
+
47
+ [1]: http://kramdown.rubyforge.org/
48
+ [2]: http://kramdown.rubyforge.org/syntax.html
49
+ [3]: http://kramdown.rubyforge.org/quickref.html
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Webgen::ContentProcessor::Less
3
+ ---
4
+ ## Description
5
+
6
+ This content processor converts content in LESS format to valid CSS using the [LESS library][1].
7
+
8
+ LESS is an extension of CSS which allows the use of variables, mixins, operations and nested rules.
9
+ Since a normal CSS file is a valid LESS file, the transition to LESS is very easy. For detailed
10
+ information about LESS have a look at its [documentation page][2]!
11
+
12
+ > This extension is only available if you have installed the [less][1] library. The preferred way to
13
+ > do this is via Rubygems:
14
+ >
15
+ > gem install less
16
+ {:.warning}
17
+
18
+
19
+ ## Example
20
+
21
+ Here is a short sample of a text in LESS format:
22
+
23
+ @base: #543;
24
+
25
+ #header {
26
+ color: @base;
27
+ a {
28
+ color: @base * 2;
29
+ text-decoration: underline;
30
+ }
31
+ }
32
+
33
+ [1]: http://lesscss.org/
34
+ [2]: http://lesscss.org/docs.html
@@ -12,9 +12,12 @@ For detailed information about Maruku have a look at the [Maruku Homepage][1]. T
12
12
  information about the general Markdown syntax as well as information about the extras added by
13
13
  Maruku.
14
14
 
15
- > Maruku is the default markup content processor for webgen as its markup syntax is easy to learn
16
- > and nice to look at. Give it a try!
17
- {.info}
15
+ > This extension is only available if you have installed the [maruku][1] library. The preferred
16
+ > way to do this is via Rubygems:
17
+ >
18
+ > gem install maruku
19
+ {:.warning}
20
+
18
21
 
19
22
  Example
20
23
  -------
@@ -5,14 +5,14 @@ title: Webgen::ContentProcessor::RDiscount
5
5
 
6
6
  This processor converts the content, which is assumed to be in Markdown markup, to HTML by using the
7
7
  RDiscount library. This library is based on the C based discount library which provides very fast
8
- Markdown processing. However, this processor does not support advanced features like the [Maruku
9
- Markdown processor]({relocatable: maruku.html}) does.
8
+ Markdown processing. However, this processor does not support advanced features like the [kramdown
9
+ processor](kramdown.html) or [Maruku Markdown processor](maruku.html) do.
10
10
 
11
11
  > This extension is only available if you have installed the [rdiscount][1] library. The preferred
12
12
  > way to do this is via Rubygems:
13
13
  >
14
14
  > gem install rdiscount
15
- {.warning}
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
- {.warning}
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
- {.warning}
13
+ {:.warning}
14
14
 
15
15
  You can use the configuration option `contentprocessor.redcloth.hard_breaks` to enable/disable the
16
16
  conversion of single newlines into HTML break tags.