webgen 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/bin/webgen +1 -0
- data/doc/contentprocessor.template +4 -3
- data/doc/contentprocessor/blocks.page +5 -6
- data/doc/contentprocessor/builder.page +1 -1
- data/doc/contentprocessor/erb.page +1 -1
- data/doc/contentprocessor/erubis.page +46 -0
- data/doc/contentprocessor/haml.page +1 -1
- data/doc/contentprocessor/maruku.page +1 -1
- data/doc/contentprocessor/rdiscount.page +37 -0
- data/doc/contentprocessor/rdoc.page +1 -1
- data/doc/contentprocessor/redcloth.page +0 -1
- data/doc/contentprocessor/sass.page +0 -1
- data/doc/contentprocessor/tags.page +1 -1
- data/doc/extensions.page +2 -7
- data/doc/faq.page +49 -12
- data/doc/index.page +9 -9
- data/doc/manual.page +110 -22
- data/doc/reference_configuration.page +28 -3
- data/doc/reference_metainfo.page +2 -1
- data/doc/sourcehandler/page.page +16 -0
- data/doc/upgrading.page +109 -37
- data/doc/webgen_page_format.page +3 -1
- data/lib/webgen/configuration.rb +14 -1
- data/lib/webgen/contentprocessor.rb +2 -0
- data/lib/webgen/contentprocessor/erubis.rb +40 -0
- data/lib/webgen/contentprocessor/rdiscount.rb +15 -0
- data/lib/webgen/default_config.rb +8 -0
- data/lib/webgen/node.rb +22 -7
- data/lib/webgen/page.rb +9 -5
- data/lib/webgen/sourcehandler/base.rb +51 -31
- data/lib/webgen/tag/menu.rb +1 -3
- data/lib/webgen/version.rb +1 -1
- data/test/test_configuration.rb +7 -0
- data/test/test_contentprocessor_erubis.rb +47 -0
- data/test/test_contentprocessor_rdiscount.rb +15 -0
- data/test/test_node.rb +8 -0
- data/test/test_page.rb +6 -1
- data/test/test_sourcehandler_base.rb +35 -21
- metadata +28 -2
data/lib/webgen/page.rb
CHANGED
@@ -55,7 +55,9 @@ module Webgen
|
|
55
55
|
# the information. The +meta_info+ parameter can be used to provide default meta information.
|
56
56
|
def from_data(data, meta_info = {})
|
57
57
|
md = /(#{RE_META_INFO})?(.*)/m.match(normalize_eol(data))
|
58
|
-
|
58
|
+
if md[1].nil? && data =~ RE_META_INFO_START
|
59
|
+
raise WebgenPageFormatError, 'Found start line for meta information block but no valid meta information block'
|
60
|
+
end
|
59
61
|
meta_info = meta_info.merge(md[1].nil? ? {} : parse_meta_info(md[1]))
|
60
62
|
blocks = parse_blocks(md[2] || '', meta_info)
|
61
63
|
new(meta_info, blocks)
|
@@ -74,7 +76,9 @@ module Webgen
|
|
74
76
|
def parse_meta_info(data)
|
75
77
|
begin
|
76
78
|
meta_info = YAML::load(data)
|
77
|
-
|
79
|
+
unless meta_info.kind_of?(Hash)
|
80
|
+
raise WebgenPageFormatError, "Invalid structure of meta information block: expected YAML hash but found #{meta_info.class}"
|
81
|
+
end
|
78
82
|
rescue ArgumentError => e
|
79
83
|
raise WebgenPageFormatError, e.message
|
80
84
|
end
|
@@ -91,14 +95,14 @@ module Webgen
|
|
91
95
|
scanned.each_with_index do |block_data, index|
|
92
96
|
options, content = *block_data
|
93
97
|
md = RE_BLOCKS_OPTIONS.match(options.to_s)
|
94
|
-
raise(WebgenPageFormatError, "Found invalid blocks starting line") if content =~ /\A---/ || md.nil?
|
95
|
-
options = Hash[*md[1].to_s.scan(/(\w+):([^\s]*)/).flatten]
|
98
|
+
raise(WebgenPageFormatError, "Found invalid blocks starting line for block #{index+1}: #{options}") if content =~ /\A---/ || md.nil?
|
99
|
+
options = Hash[*md[1].to_s.scan(/(\w+):([^\s]*)/).map {|k,v| [k, YAML::load(v)]}.flatten]
|
96
100
|
options = (meta_info['blocks']['default'] || {} rescue {}).
|
97
101
|
merge((meta_info['blocks'][index+1] || {} rescue {})).
|
98
102
|
merge(options)
|
99
103
|
|
100
104
|
name = options.delete('name') || (index == 0 ? 'content' : 'block' + (index + 1).to_s)
|
101
|
-
raise(WebgenPageFormatError, "
|
105
|
+
raise(WebgenPageFormatError, "Previously used name '#{name}' also used for block #{index+1}") if blocks.has_key?(name)
|
102
106
|
content ||= ''
|
103
107
|
content.gsub!(/^(\\+)(---.*?)$/) {|m| "\\" * ($1.length / 2) + $2}
|
104
108
|
content.strip!
|
@@ -102,49 +102,69 @@ module Webgen::SourceHandler
|
|
102
102
|
#
|
103
103
|
module Base
|
104
104
|
|
105
|
-
|
106
|
-
|
107
|
-
# Construct the output name for the given +path+. First it is checked if a node with the
|
108
|
-
# constructed output name already exists. If it exists, the language part is forced to be in the
|
109
|
-
# output name and the resulting output name is returned.
|
105
|
+
# This module is used for defining all methods that can be used for creating output paths.
|
110
106
|
#
|
111
|
-
#
|
112
|
-
#
|
113
|
-
#
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
107
|
+
# All public methods of this module are considered to be output path creation methods and must
|
108
|
+
# have the following parameters:
|
109
|
+
# +parent+:: the parent node
|
110
|
+
# +path+:: the path for which the output name should be created
|
111
|
+
# +use_lang_part+:: controls whether the output path name has to include the language part
|
112
|
+
module OutputPathHelpers
|
113
|
+
|
114
|
+
# Default method for creating an output path for +parent+ and source +path+.
|
115
|
+
#
|
116
|
+
# The automatically set parameter +style+ (which uses the meta information +output_path_style+
|
117
|
+
# from the path's meta information hash) defines how the output name should be built (more
|
118
|
+
# information about this in the user documentation).
|
119
|
+
def standard_output_path(parent, path, use_lang_part, style = path.meta_info['output_path_style'])
|
120
|
+
result = style.collect do |part|
|
121
|
+
case part
|
122
|
+
when String then part
|
123
|
+
when :lang then use_lang_part ? path.meta_info['lang'] : ''
|
124
|
+
when :ext then path.ext.empty? ? '' : '.' + path.ext
|
125
|
+
when :parent then temp = parent; temp = temp.parent while temp.is_fragment?; temp.path
|
126
|
+
when :year, :month, :day
|
127
|
+
ctime = path.meta_info['created_at']
|
128
|
+
if !ctime.kind_of?(Time)
|
129
|
+
raise "Invalid meta info 'created_at' for #{path}, needed because of used output path style"
|
130
|
+
end
|
131
|
+
ctime.send(part).to_s.rjust(2, '0')
|
132
|
+
when Symbol then path.send(part)
|
133
|
+
when Array then part.include?(:lang) && !use_lang_part ? '' : standard_output_path(parent, path, use_lang_part, part)
|
134
|
+
else ''
|
135
|
+
end
|
136
|
+
end
|
137
|
+
result.join('')
|
120
138
|
end
|
121
|
-
|
139
|
+
|
122
140
|
end
|
123
141
|
|
124
|
-
|
125
|
-
|
142
|
+
include Webgen::Loggable
|
143
|
+
include OutputPathHelpers
|
144
|
+
|
145
|
+
# Construct the output name for the given +path+ and +parent+. First it is checked if a node
|
146
|
+
# with the constructed output name already exists. If it exists, the language part is forced to
|
147
|
+
# be in the output name and the resulting output name is returned.
|
148
|
+
def output_path(parent, path)
|
149
|
+
method = path.meta_info['output_path'] + '_output_path'
|
126
150
|
use_lang_part = if path.meta_info['lang'].nil? # unlocalized files never get a lang in the filename!
|
127
151
|
false
|
128
|
-
|
152
|
+
else
|
129
153
|
Webgen::WebsiteAccess.website.config['sourcehandler.default_lang_in_output_path'] ||
|
130
154
|
Webgen::WebsiteAccess.website.config['website.lang'] != path.meta_info['lang']
|
131
|
-
else
|
132
|
-
use_lang_part
|
133
155
|
end
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
when Symbol then path.send(part)
|
141
|
-
when Array then part.include?(:lang) && !use_lang_part ? '' : construct_output_path(parent, path, part, use_lang_part)
|
142
|
-
else ''
|
156
|
+
if OutputPathHelpers.public_instance_methods(false).include?(method)
|
157
|
+
name = send(method, parent, path, use_lang_part)
|
158
|
+
name += '/' if path.path =~ /\/$/ && name !~ /\/$/
|
159
|
+
if node_exists?(parent, path, name)
|
160
|
+
name = send(method, parent, path, (path.meta_info['lang'].nil? ? false : true))
|
161
|
+
name += '/' if path.path =~ /\/$/ && name !~ /\/$/
|
143
162
|
end
|
163
|
+
name
|
164
|
+
else
|
165
|
+
raise "Unknown method for creating output path: #{method}"
|
144
166
|
end
|
145
|
-
result.join('')
|
146
167
|
end
|
147
|
-
private :construct_output_path
|
148
168
|
|
149
169
|
# Check if the node alcn and output path which would be created by #create_node exists. The
|
150
170
|
# +output_path+ to check for can individually be set.
|
data/lib/webgen/tag/menu.rb
CHANGED
@@ -68,9 +68,8 @@ module Webgen::Tag
|
|
68
68
|
|
69
69
|
# Check if the menus for +node+ have changed.
|
70
70
|
def node_changed?(node)
|
71
|
-
return if !node.node_info[:tag_menu_menus]
|
71
|
+
return if !node.node_info[:tag_menu_menus]
|
72
72
|
|
73
|
-
@inside_node_changed = true #TODO: better solution for this race condition?
|
74
73
|
node.node_info[:tag_menu_menus].each do |(params, cn_alcn), cached_tree|
|
75
74
|
cn = node.tree[cn_alcn]
|
76
75
|
menu_tree = menu_tree_for_lang(cn.lang, cn.tree.root)
|
@@ -88,7 +87,6 @@ module Webgen::Tag
|
|
88
87
|
break
|
89
88
|
end
|
90
89
|
end
|
91
|
-
@inside_node_changed = false
|
92
90
|
end
|
93
91
|
|
94
92
|
# Wrapper method for returning the specific menu tree for +content_node+.
|
data/lib/webgen/version.rb
CHANGED
data/test/test_configuration.rb
CHANGED
@@ -54,6 +54,13 @@ class TestConfiguration < Test::Unit::TestCase
|
|
54
54
|
assert_equal(['**/*.page'], @config['sourcehandler.patterns']['Other'])
|
55
55
|
assert_raise(ArgumentError) { @config.patterns([5,6]) }
|
56
56
|
assert_raise(ArgumentError) { @config.patterns('Page' => 5) }
|
57
|
+
|
58
|
+
@config.default_processing_pipeline('Page' => 'tags,maruku')
|
59
|
+
assert_equal('tags,maruku', @config['sourcehandler.default_meta_info']['Webgen::SourceHandler::Page']['blocks']['default']['pipeline'])
|
60
|
+
@config.default_processing_pipeline('Other' => 'tags,maruku')
|
61
|
+
assert_equal('tags,maruku', @config['sourcehandler.default_meta_info']['Other']['blocks']['default']['pipeline'])
|
62
|
+
assert_raise(ArgumentError) { @config.default_processing_pipeline([5,6]) }
|
63
|
+
assert_raise(ArgumentError) { @config.default_processing_pipeline('Page' => [5,6]) }
|
57
64
|
end
|
58
65
|
|
59
66
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'helper'
|
3
|
+
require 'test/unit'
|
4
|
+
require 'webgen/tree'
|
5
|
+
require 'webgen/page'
|
6
|
+
require 'webgen/contentprocessor'
|
7
|
+
|
8
|
+
class TestContentProcessorErubis < Test::Unit::TestCase
|
9
|
+
|
10
|
+
include Test::WebsiteHelper
|
11
|
+
|
12
|
+
def test_call
|
13
|
+
obj = Webgen::ContentProcessor::Erubis.new
|
14
|
+
root = Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/')
|
15
|
+
node = Webgen::Node.new(root, 'test', 'test')
|
16
|
+
context = Webgen::ContentProcessor::Context.new(:doit => 'hallo', :chain => [node])
|
17
|
+
|
18
|
+
context.content = '<%= context[:doit] %>6'
|
19
|
+
assert_equal('hallo6', obj.call(context).content)
|
20
|
+
|
21
|
+
context.content = '<%= 5* %>'
|
22
|
+
assert_raise(RuntimeError) { obj.call(context) }
|
23
|
+
|
24
|
+
context.content = "<% for i in [1] %>\n<%= i %>\n<% end %>"
|
25
|
+
assert_equal("1\n", obj.call(context).content)
|
26
|
+
@website.config['contentprocessor.erubis.options'][:trim] = false
|
27
|
+
context.content = "<% for i in [1] %>\n<%== i %>\n<% end %>"
|
28
|
+
assert_equal("\n1\n", obj.call(context).content)
|
29
|
+
|
30
|
+
context[:block] = OpenStruct.new
|
31
|
+
context[:block].options = {'erubis_trim' => true}
|
32
|
+
context.content = "<% for i in [1] %>\n<%== i %>\n<% end %>"
|
33
|
+
assert_equal("1\n", obj.call(context).content)
|
34
|
+
context[:block].options['erubis_use_pi'] = true
|
35
|
+
context.content = "<?rb for i in [1] ?>\n@{i}@\n<?rb end ?>"
|
36
|
+
assert_equal("1\n", obj.call(context).content)
|
37
|
+
context[:block] = nil
|
38
|
+
|
39
|
+
@website.config['contentprocessor.erubis.use_pi'] = true
|
40
|
+
context.content = "<?rb for i in [1] ?>\n@{i}@\n<?rb end ?>"
|
41
|
+
assert_equal("1\n", obj.call(context).content)
|
42
|
+
|
43
|
+
page = Webgen::Page.from_data("--- pipeline:erubis erubis_trim:false erubis_use_pi:false\n<% for i in [1] %>\n<%== i %>\n<% end %>")
|
44
|
+
assert_equal("\n1\n", page.blocks['content'].render(context).content)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'webgen/node'
|
3
|
+
require 'webgen/tree'
|
4
|
+
require 'webgen/contentprocessor'
|
5
|
+
|
6
|
+
class TestContentProcessorRDiscount < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def test_call
|
9
|
+
@obj = Webgen::ContentProcessor::RDiscount.new
|
10
|
+
node = Webgen::Node.new(Webgen::Node.new(Webgen::Tree.new.dummy_root, '/', '/'), 'test', 'test')
|
11
|
+
context = Webgen::ContentProcessor::Context.new(:content => '# header', :chain => [node])
|
12
|
+
assert_equal("<h1>header</h1>\n", @obj.call(context).content)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
data/test/test_node.rb
CHANGED
@@ -158,6 +158,14 @@ class TestNode < Test::Unit::TestCase
|
|
158
158
|
node.node_info[:used_nodes] << @tree.dummy_root.absolute_lcn
|
159
159
|
node.changed?
|
160
160
|
assert_equal(1, calls)
|
161
|
+
|
162
|
+
# Test circular depdendence
|
163
|
+
other_node = Webgen::Node.new(@tree.dummy_root, '/other', 'test.l', {'lang' => 'de', :test => :value})
|
164
|
+
other_node.dirty = node.created = false
|
165
|
+
node.dirty = false
|
166
|
+
other_node.node_info[:used_nodes] = [node.absolute_lcn]
|
167
|
+
node.node_info[:used_nodes] = [other_node.absolute_lcn]
|
168
|
+
node.changed?
|
161
169
|
end
|
162
170
|
|
163
171
|
def test_meta_info_changed
|
data/test/test_page.rb
CHANGED
@@ -97,13 +97,14 @@ class TestPage < Test::Unit::TestCase
|
|
97
97
|
--- name:block
|
98
98
|
content doing -
|
99
99
|
with?: with some things
|
100
|
-
--- other:
|
100
|
+
--- other:options test1:true test2:false test3:542
|
101
101
|
meta_info: {}
|
102
102
|
blocks:
|
103
103
|
- name: block
|
104
104
|
content: "content doing -\\nwith?: with some things"
|
105
105
|
- name: block2
|
106
106
|
content: ''
|
107
|
+
options: {other: options, test1: true, test2: false, test3: 542}
|
107
108
|
|
108
109
|
# block with seemingly block start line it
|
109
110
|
- in: |
|
@@ -118,6 +119,9 @@ class TestPage < Test::Unit::TestCase
|
|
118
119
|
EOF
|
119
120
|
|
120
121
|
INVALID=<<EOF
|
122
|
+
# invalid meta info: none specified
|
123
|
+
- "---\\n---"
|
124
|
+
|
121
125
|
# invalid meta info: no hash
|
122
126
|
- |
|
123
127
|
---
|
@@ -166,6 +170,7 @@ EOF
|
|
166
170
|
index += 1
|
167
171
|
assert_equal(b['name'], d.blocks[index].name, "test item #{oindex} - name")
|
168
172
|
assert_equal(b['content'], d.blocks[index].content, "test item #{oindex} - content")
|
173
|
+
assert_equal(b['options'] || {}, d.blocks[index].options, "test item #{oindex} - options")
|
169
174
|
assert_same(d.blocks[index], d.blocks[b['name']])
|
170
175
|
end
|
171
176
|
end
|
@@ -4,6 +4,7 @@ require 'webgen/tree'
|
|
4
4
|
require 'webgen/node'
|
5
5
|
require 'webgen/path'
|
6
6
|
require 'webgen/sourcehandler/base'
|
7
|
+
require 'time'
|
7
8
|
|
8
9
|
class TestSourceHandlerBase < Test::Unit::TestCase
|
9
10
|
|
@@ -30,35 +31,48 @@ class TestSourceHandlerBase < Test::Unit::TestCase
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def test_output_path
|
34
|
+
node = Webgen::Node.new(Webgen::Tree.new.dummy_root, 'test/', 'test')
|
35
|
+
assert_raise(RuntimeError) { @obj.output_path(node, path_with_meta_info('test.page', 'output_path' => 'non'))}
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_standard_output_path
|
33
39
|
@tree = Webgen::Tree.new
|
34
40
|
node = Webgen::Node.new(@tree.dummy_root, 'test/', 'test', {'lang' => 'de', :test => :value})
|
35
41
|
|
36
|
-
|
37
|
-
|
38
|
-
path =
|
39
|
-
assert_equal('test/path.html', @obj.output_path(node, path
|
40
|
-
path =
|
41
|
-
assert_equal('test/path.html', @obj.output_path(node, path
|
42
|
-
path =
|
43
|
-
assert_equal('test/
|
44
|
-
path = Webgen::Path.new('dir/')
|
45
|
-
assert_equal('test/dir/', @obj.output_path(node, path, output_path_style))
|
42
|
+
path = path_with_meta_info('path.html')
|
43
|
+
assert_equal('test/path.html', @obj.output_path(node, path))
|
44
|
+
path = path_with_meta_info('path.en.html')
|
45
|
+
assert_equal('test/path.html', @obj.output_path(node, path))
|
46
|
+
path = path_with_meta_info('path.eo.html')
|
47
|
+
assert_equal('test/path.eo.html', @obj.output_path(node, path))
|
48
|
+
path = path_with_meta_info('dir/')
|
49
|
+
assert_equal('test/dir/', @obj.output_path(node, path))
|
46
50
|
|
47
51
|
other = Webgen::Node.new(node, 'test/path.html', 'other.page')
|
48
|
-
path =
|
49
|
-
assert_equal('test/path.html', @obj.output_path(node, path
|
50
|
-
path =
|
51
|
-
assert_equal('test/path.en.html', @obj.output_path(node, path
|
52
|
+
path = path_with_meta_info('path.html')
|
53
|
+
assert_equal('test/path.html', @obj.output_path(node, path))
|
54
|
+
path = path_with_meta_info('path.en.html')
|
55
|
+
assert_equal('test/path.en.html', @obj.output_path(node, path))
|
52
56
|
|
53
|
-
path =
|
54
|
-
assert_equal('test/path.html#frag', @obj.output_path(other, path
|
57
|
+
path = path_with_meta_info('#frag')
|
58
|
+
assert_equal('test/path.html#frag', @obj.output_path(other, path))
|
55
59
|
frag = Webgen::Node.new(other, 'test/path.html#frag', '#frag')
|
56
|
-
path =
|
57
|
-
assert_equal('test/path.html#frag1', @obj.output_path(frag, path
|
60
|
+
path = path_with_meta_info('#frag1')
|
61
|
+
assert_equal('test/path.html#frag1', @obj.output_path(frag, path))
|
62
|
+
|
63
|
+
path = path_with_meta_info('/')
|
64
|
+
assert_equal('/', @obj.output_path(@tree.dummy_root, path))
|
65
|
+
path = path_with_meta_info('/', 'output_path_style' => [:parent, 'hallo', 56])
|
66
|
+
assert_equal('hallo/', @obj.output_path(@tree.dummy_root, path))
|
58
67
|
|
59
|
-
|
60
|
-
|
61
|
-
|
68
|
+
assert_raise(RuntimeError) do
|
69
|
+
path = path_with_meta_info('path.html', 'output_path_style' => [:parent, :year, '/', :month, '/', :cnbase, :ext])
|
70
|
+
@obj.output_path(node, path)
|
71
|
+
end
|
72
|
+
time = Time.parse('2008-09-04 08:15')
|
73
|
+
path = path_with_meta_info('path.html', 'output_path_style' => [:parent, :year, '/', :month, '/', :day, '-', :cnbase, :ext],
|
74
|
+
'created_at' => time)
|
75
|
+
assert_equal('test/2008/09/04-path.html', @obj.output_path(node, path))
|
62
76
|
end
|
63
77
|
|
64
78
|
def test_content
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webgen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Leitner
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-08
|
12
|
+
date: 2008-09-08 00:00:00 +02:00
|
13
13
|
default_executable: webgen
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -162,6 +162,26 @@ dependencies:
|
|
162
162
|
- !ruby/object:Gem::Version
|
163
163
|
version: 0.2.29
|
164
164
|
version:
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: erubis
|
167
|
+
type: :development
|
168
|
+
version_requirement:
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 2.6.2
|
174
|
+
version:
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: rdiscount
|
177
|
+
type: :development
|
178
|
+
version_requirement:
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: 1.2.9
|
184
|
+
version:
|
165
185
|
description: webgen is used to generate static websites from templates and content files (which can be written in a markup language). It can generate dynamic content like menus on the fly and comes with many powerful extensions.
|
166
186
|
email: t_leitner@gmx.at
|
167
187
|
executables:
|
@@ -340,8 +360,10 @@ files:
|
|
340
360
|
- doc/contentprocessor/blocks.page
|
341
361
|
- doc/contentprocessor/builder.page
|
342
362
|
- doc/contentprocessor/erb.page
|
363
|
+
- doc/contentprocessor/erubis.page
|
343
364
|
- doc/contentprocessor/haml.page
|
344
365
|
- doc/contentprocessor/maruku.page
|
366
|
+
- doc/contentprocessor/rdiscount.page
|
345
367
|
- doc/contentprocessor/rdoc.page
|
346
368
|
- doc/contentprocessor/redcloth.page
|
347
369
|
- doc/contentprocessor/sass.page
|
@@ -394,8 +416,10 @@ files:
|
|
394
416
|
- lib/webgen/contentprocessor/builder.rb
|
395
417
|
- lib/webgen/contentprocessor/context.rb
|
396
418
|
- lib/webgen/contentprocessor/erb.rb
|
419
|
+
- lib/webgen/contentprocessor/erubis.rb
|
397
420
|
- lib/webgen/contentprocessor/haml.rb
|
398
421
|
- lib/webgen/contentprocessor/maruku.rb
|
422
|
+
- lib/webgen/contentprocessor/rdiscount.rb
|
399
423
|
- lib/webgen/contentprocessor/rdoc.rb
|
400
424
|
- lib/webgen/contentprocessor/redcloth.rb
|
401
425
|
- lib/webgen/contentprocessor/sass.rb
|
@@ -465,8 +489,10 @@ files:
|
|
465
489
|
- test/test_contentprocessor_builder.rb
|
466
490
|
- test/test_contentprocessor_context.rb
|
467
491
|
- test/test_contentprocessor_erb.rb
|
492
|
+
- test/test_contentprocessor_erubis.rb
|
468
493
|
- test/test_contentprocessor_haml.rb
|
469
494
|
- test/test_contentprocessor_maruku.rb
|
495
|
+
- test/test_contentprocessor_rdiscount.rb
|
470
496
|
- test/test_contentprocessor_rdoc.rb
|
471
497
|
- test/test_contentprocessor_redcloth.rb
|
472
498
|
- test/test_contentprocessor_sass.rb
|