webgen 0.3.2 → 0.3.3

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.
Files changed (77) hide show
  1. data/ChangeLog +224 -0
  2. data/Rakefile +2 -3
  3. data/TODO +18 -1
  4. data/VERSION +1 -1
  5. data/doc/plugin/clidesc.rb +35 -0
  6. data/doc/plugin/extension.rb +73 -0
  7. data/doc/src/about.page +2 -1
  8. data/doc/src/default.css +5 -1
  9. data/doc/src/default.template +9 -0
  10. data/doc/src/documentation/cli.page +12 -0
  11. data/doc/src/documentation/gettingstarted.page +150 -0
  12. data/doc/src/documentation/index.page +1 -19
  13. data/doc/src/documentation/{contenthandler → plugins/contenthandler}/html.page +0 -0
  14. data/doc/src/documentation/{contenthandler → plugins/contenthandler}/index.page +0 -0
  15. data/doc/src/documentation/{contenthandler → plugins/contenthandler}/markdown.page +0 -0
  16. data/doc/src/documentation/{contenthandler → plugins/contenthandler}/rdoc.page +0 -0
  17. data/doc/src/documentation/{contenthandler → plugins/contenthandler}/textile.page +0 -0
  18. data/doc/src/documentation/plugins/filehandler/backing.page +33 -0
  19. data/doc/src/documentation/{filehandler → plugins/filehandler}/copy.page +0 -0
  20. data/doc/src/documentation/{filehandler → plugins/filehandler}/directory.page +1 -2
  21. data/doc/src/documentation/{filehandler → plugins/filehandler}/galleryhandler.page +1 -1
  22. data/doc/src/documentation/{filehandler → plugins/filehandler}/index.page +0 -0
  23. data/doc/src/documentation/{filehandler → plugins/filehandler}/pagehandler.page +0 -0
  24. data/doc/src/documentation/{filehandler → plugins/filehandler}/template.page +0 -0
  25. data/doc/src/documentation/{gallerylayouter → plugins/gallerylayouter}/defaultlayouter.page +0 -0
  26. data/doc/src/documentation/{gallerylayouter → plugins/gallerylayouter}/index.page +0 -0
  27. data/doc/src/documentation/{htmlvalidator → plugins/htmlvalidator}/index.page +0 -0
  28. data/doc/src/documentation/{htmlvalidator → plugins/htmlvalidator}/xmllint.page +0 -0
  29. data/doc/src/documentation/plugins/index.page +20 -0
  30. data/doc/src/documentation/plugins/system/configuration.page +12 -0
  31. data/doc/src/documentation/plugins/system/index.page +7 -0
  32. data/doc/src/documentation/plugins/system/logging.page +13 -0
  33. data/doc/src/documentation/{tags → plugins/tags}/date.page +0 -0
  34. data/doc/src/documentation/{tags → plugins/tags}/executecommand.page +0 -1
  35. data/doc/src/documentation/{tags → plugins/tags}/includefile.page +0 -0
  36. data/doc/src/documentation/{tags → plugins/tags}/index.page +2 -2
  37. data/doc/src/documentation/{tags → plugins/tags}/langbar.de.page +0 -0
  38. data/doc/src/documentation/{tags → plugins/tags}/langbar.page +1 -1
  39. data/doc/src/documentation/{tags → plugins/tags}/menu.de.page +1 -0
  40. data/doc/src/documentation/{tags → plugins/tags}/menu.page +1 -1
  41. data/doc/src/documentation/{tags → plugins/tags}/meta.page +0 -0
  42. data/doc/src/documentation/{tags → plugins/tags}/multilang.de.page +0 -0
  43. data/doc/src/documentation/{tags → plugins/tags}/multilang.fr.page +0 -0
  44. data/doc/src/documentation/{tags → plugins/tags}/multilang.page +0 -0
  45. data/doc/src/documentation/{tags → plugins/tags}/navbar.page +0 -0
  46. data/doc/src/documentation/{tags → plugins/tags}/relocatable.page +0 -0
  47. data/doc/src/documentation/{tags → plugins/tags}/sitemap.page +0 -0
  48. data/doc/src/documentation/{tags → plugins/tags}/wikilink.page +0 -0
  49. data/doc/src/download.page +1 -0
  50. data/doc/src/index.page +26 -8
  51. data/doc/src/meta.info +13 -18
  52. data/install.rb +1 -1
  53. data/lib/webgen/configuration.rb +6 -153
  54. data/lib/webgen/logging.rb +38 -10
  55. data/lib/webgen/node.rb +26 -6
  56. data/lib/webgen/plugin.rb +168 -0
  57. data/lib/webgen/plugins/filehandler/backing.rb +11 -56
  58. data/lib/webgen/plugins/filehandler/directory.rb +8 -8
  59. data/lib/webgen/plugins/filehandler/filecopy.rb +2 -2
  60. data/lib/webgen/plugins/filehandler/filehandler.rb +5 -9
  61. data/lib/webgen/plugins/filehandler/page.rb +40 -79
  62. data/lib/webgen/plugins/filehandler/picturegallery.rb +3 -3
  63. data/lib/webgen/plugins/filehandler/template.rb +2 -2
  64. data/lib/webgen/plugins/tags/langbar.rb +2 -2
  65. data/lib/webgen/plugins/tags/menu.rb +5 -13
  66. data/lib/webgen/plugins/tags/relocatable.rb +2 -2
  67. data/lib/webgen/plugins/tags/sitemap.rb +2 -2
  68. data/lib/webgen/plugins/tags/wikilink.rb +4 -3
  69. data/lib/webgen/webgen.rb +262 -57
  70. data/testsite/src/default.template +1 -1
  71. data/testsite/src/images/bghack.png +0 -0
  72. data/testsite/src/meta.info +7 -10
  73. metadata +65 -44
  74. data/doc/extension.config +0 -60
  75. data/doc/src/documentation/extloader.page +0 -20
  76. data/doc/src/documentation/filehandler/backing.page +0 -16
  77. data/lib/webgen/plugins/extloader.rb +0 -88
@@ -10,7 +10,7 @@
10
10
  <h1>{title: }</h1>
11
11
  <div id="navbar">
12
12
  <span id="navtree">{navbar: }</span>
13
- <span id="languages">{lang: }</span>
13
+ <span id="languages">{langbar: }</span>
14
14
  <div style="clear: both; border-bottom: 1px solid #8ad"></div>
15
15
  </div>
16
16
  </div>
Binary file
@@ -1,15 +1,12 @@
1
- home.html:
2
- de:
3
- title: Neuer Titel
4
- inMenu: true
1
+ home.de.html:
2
+ title: Neuer Titel
3
+ inMenu: true
5
4
 
6
- en:
7
- title: Home page menu
5
+ home.html:
6
+ title: Home page menu
8
7
 
9
8
  index.html:
10
- en:
11
- directoryName: ''
9
+ directoryName: ''
12
10
 
13
11
  noindex/noindex.html:
14
- en:
15
- title: Title by backing file
12
+ title: Title by backing file
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.4
2
+ rubygems_version: 0.8.6
3
3
  specification_version: 1
4
4
  name: webgen
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.2
7
- date: 2005-03-17
6
+ version: 0.3.3
7
+ date: 2005-04-21
8
8
  summary: Webgen is a templated based static website generator.
9
9
  require_paths:
10
10
  - lib
@@ -41,8 +41,8 @@ files:
41
41
  - lib/webgen/configuration.rb
42
42
  - lib/webgen/node.rb
43
43
  - lib/webgen/logging.rb
44
+ - lib/webgen/plugin.rb
44
45
  - lib/webgen/webgen.rb
45
- - lib/webgen/plugins/extloader.rb
46
46
  - lib/webgen/plugins/treewalker.rb
47
47
  - lib/webgen/plugins/tags/date.rb
48
48
  - lib/webgen/plugins/tags/executecommand.rb
@@ -81,6 +81,7 @@ files:
81
81
  - testsite/src/rdoc.page
82
82
  - testsite/src/pictures
83
83
  - testsite/src/index.page
84
+ - testsite/src/images
84
85
  - testsite/src/default.template
85
86
  - testsite/src/noindex
86
87
  - testsite/src/meta.info
@@ -91,6 +92,7 @@ files:
91
92
  - testsite/src/home.en.page
92
93
  - testsite/src/redcloth.page
93
94
  - testsite/src/pictures/index.page
95
+ - testsite/src/images/bghack.png
94
96
  - testsite/src/noindex/noindex.page
95
97
  - testsite/src/projects/05.project3.page
96
98
  - testsite/src/projects/index.page
@@ -101,7 +103,7 @@ files:
101
103
  - testsite/src/projects/subproj/index.page
102
104
  - testsite/src/projects/subproj/project3.page
103
105
  - doc/src
104
- - doc/extension.config
106
+ - doc/plugin
105
107
  - doc/src/designs
106
108
  - doc/src/default.css
107
109
  - doc/src/features.page
@@ -116,45 +118,54 @@ files:
116
118
  - doc/src/designs/curdesign.png
117
119
  - doc/src/designs/nostyle.png
118
120
  - doc/src/designs/old.png
119
- - doc/src/documentation/tags
120
- - doc/src/documentation/contenthandler
121
- - doc/src/documentation/extloader.page
121
+ - doc/src/documentation/gettingstarted.page
122
122
  - doc/src/documentation/index.page
123
- - doc/src/documentation/filehandler
124
- - doc/src/documentation/gallerylayouter
125
- - doc/src/documentation/htmlvalidator
126
- - doc/src/documentation/tags/multilang.fr.page
127
- - doc/src/documentation/tags/multilang.page
128
- - doc/src/documentation/tags/menu.page
129
- - doc/src/documentation/tags/relocatable.page
130
- - doc/src/documentation/tags/date.page
131
- - doc/src/documentation/tags/executecommand.page
132
- - doc/src/documentation/tags/menu.de.page
133
- - doc/src/documentation/tags/index.page
134
- - doc/src/documentation/tags/langbar.page
135
- - doc/src/documentation/tags/navbar.page
136
- - doc/src/documentation/tags/sitemap.page
137
- - doc/src/documentation/tags/multilang.de.page
138
- - doc/src/documentation/tags/meta.page
139
- - doc/src/documentation/tags/langbar.de.page
140
- - doc/src/documentation/tags/wikilink.page
141
- - doc/src/documentation/tags/includefile.page
142
- - doc/src/documentation/contenthandler/html.page
143
- - doc/src/documentation/contenthandler/rdoc.page
144
- - doc/src/documentation/contenthandler/index.page
145
- - doc/src/documentation/contenthandler/textile.page
146
- - doc/src/documentation/contenthandler/markdown.page
147
- - doc/src/documentation/filehandler/template.page
148
- - doc/src/documentation/filehandler/directory.page
149
- - doc/src/documentation/filehandler/galleryhandler.page
150
- - doc/src/documentation/filehandler/index.page
151
- - doc/src/documentation/filehandler/pagehandler.page
152
- - doc/src/documentation/filehandler/copy.page
153
- - doc/src/documentation/filehandler/backing.page
154
- - doc/src/documentation/gallerylayouter/defaultlayouter.page
155
- - doc/src/documentation/gallerylayouter/index.page
156
- - doc/src/documentation/htmlvalidator/index.page
157
- - doc/src/documentation/htmlvalidator/xmllint.page
123
+ - doc/src/documentation/cli.page
124
+ - doc/src/documentation/plugins
125
+ - doc/src/documentation/plugins/tags
126
+ - doc/src/documentation/plugins/contenthandler
127
+ - doc/src/documentation/plugins/index.page
128
+ - doc/src/documentation/plugins/filehandler
129
+ - doc/src/documentation/plugins/system
130
+ - doc/src/documentation/plugins/gallerylayouter
131
+ - doc/src/documentation/plugins/htmlvalidator
132
+ - doc/src/documentation/plugins/tags/multilang.fr.page
133
+ - doc/src/documentation/plugins/tags/multilang.page
134
+ - doc/src/documentation/plugins/tags/menu.page
135
+ - doc/src/documentation/plugins/tags/relocatable.page
136
+ - doc/src/documentation/plugins/tags/date.page
137
+ - doc/src/documentation/plugins/tags/executecommand.page
138
+ - doc/src/documentation/plugins/tags/menu.de.page
139
+ - doc/src/documentation/plugins/tags/index.page
140
+ - doc/src/documentation/plugins/tags/langbar.page
141
+ - doc/src/documentation/plugins/tags/navbar.page
142
+ - doc/src/documentation/plugins/tags/sitemap.page
143
+ - doc/src/documentation/plugins/tags/multilang.de.page
144
+ - doc/src/documentation/plugins/tags/meta.page
145
+ - doc/src/documentation/plugins/tags/langbar.de.page
146
+ - doc/src/documentation/plugins/tags/wikilink.page
147
+ - doc/src/documentation/plugins/tags/includefile.page
148
+ - doc/src/documentation/plugins/contenthandler/html.page
149
+ - doc/src/documentation/plugins/contenthandler/rdoc.page
150
+ - doc/src/documentation/plugins/contenthandler/index.page
151
+ - doc/src/documentation/plugins/contenthandler/textile.page
152
+ - doc/src/documentation/plugins/contenthandler/markdown.page
153
+ - doc/src/documentation/plugins/filehandler/template.page
154
+ - doc/src/documentation/plugins/filehandler/directory.page
155
+ - doc/src/documentation/plugins/filehandler/galleryhandler.page
156
+ - doc/src/documentation/plugins/filehandler/index.page
157
+ - doc/src/documentation/plugins/filehandler/pagehandler.page
158
+ - doc/src/documentation/plugins/filehandler/copy.page
159
+ - doc/src/documentation/plugins/filehandler/backing.page
160
+ - doc/src/documentation/plugins/system/index.page
161
+ - doc/src/documentation/plugins/system/logging.page
162
+ - doc/src/documentation/plugins/system/configuration.page
163
+ - doc/src/documentation/plugins/gallerylayouter/defaultlayouter.page
164
+ - doc/src/documentation/plugins/gallerylayouter/index.page
165
+ - doc/src/documentation/plugins/htmlvalidator/index.page
166
+ - doc/src/documentation/plugins/htmlvalidator/xmllint.page
167
+ - doc/plugin/clidesc.rb
168
+ - doc/plugin/extension.rb
158
169
  test_files: []
159
170
  rdoc_options:
160
171
  - "--line-numbers"
@@ -165,4 +176,14 @@ executables:
165
176
  - webgen
166
177
  extensions: []
167
178
  requirements: []
168
- dependencies: []
179
+ dependencies:
180
+ - !ruby/object:Gem::Dependency
181
+ name: cmdparse
182
+ version_requirement:
183
+ version_requirements: !ruby/object:Gem::Version::Requirement
184
+ requirements:
185
+ -
186
+ - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: 1.0.1
189
+ version:
data/doc/extension.config DELETED
@@ -1,60 +0,0 @@
1
- # -*- ruby -*-
2
-
3
- simple_tag( 'version' ) do |tag, node, refNode|
4
- Webgen::VERSION.join( '.' )
5
- end
6
-
7
- class DescribeTag < Tags::DefaultTag
8
-
9
- summary "Shows options for the specified file handler"
10
- add_param 'plugin', nil, 'The plugin which should be described'
11
- set_mandatory 'plugin', true
12
-
13
- def initialize
14
- super
15
- @processOutput = false
16
- end
17
-
18
- def process_tag( tag, node, refNode )
19
- filehandler = get_param( 'plugin' )
20
- self.logger.debug { "Describing tag #{filehandler}" }
21
- plugin = Webgen::Plugin.config.find {|k,v| v.plugin == filehandler }
22
- self.logger.warn { "Could not describe plugin '#{filehandler}' as it does not exist" } if plugin.nil?
23
- ( plugin.nil? ? '' : format_data( plugin[1] ) )
24
- end
25
-
26
- def format_data( data )
27
- s = "<table>"
28
- row = lambda {|desc, value| "<tr style='vertical-align: top'><td style='font-weight:bold'>#{CGI::escapeHTML( desc )}:</td><td>#{value}</td></tr>" }
29
-
30
- [['Plugin Name', 'plugin'], ['Summary', 'summary'], ['Description', 'description']].each do |desc, name|
31
- s += row[desc, CGI::escapeHTML( data.send( name ) )] if eval( "data.#{name}" )
32
- end
33
-
34
- s += row['Dependencies', CGI::escapeHTML( data.dependencies.join( ', ') )] if data.dependencies
35
-
36
- unless data.params.nil?
37
- params = data.params.collect do |k,v|
38
- "<span style='color: red'>#{v.name}</span>" + \
39
- ( v.mandatory.nil? \
40
- ? "&nbsp;=&nbsp;<span style='color: blue'>#{CGI::escapeHTML( v.default.inspect )}</span>" \
41
- : " (=" + ( v.mandatoryDefault ? "default " : "" ) + "mandatory parameter)" ) + \
42
- ": #{CGI::escapeHTML( v.description )}"
43
- end
44
- s += row['Parameters', params.join( "<br />\n" )]
45
- end
46
- s += row['Name of tag', (data.tag == :default ? "Default tag" : data.tag)] if data.tag
47
- s += row['File extension', data.extension.inspect.gsub(/"/, '')] if data.extension
48
-
49
- # Show all registered handlers
50
- data.table.keys.find_all {|k| /^registered_/ =~ k.to_s }.each do |k|
51
- s += row[k.to_s.sub( /^registered_/, '' ).capitalize + " name", data.send( k )]
52
- end
53
-
54
- s += "</table>"
55
- end
56
-
57
- end
58
-
59
- register_tag( 'describe', DescribeTag.new )
60
-
@@ -1,20 +0,0 @@
1
- ---
2
- title: Extension Loader
3
- inMenu: true
4
- ---
5
- h2. Information
6
-
7
- <notextile>{describe: ExtensionLoader}</notextile>
8
-
9
- h2. Description
10
-
11
- The extension loader is used to load website specific extension plugins. Sometimes it is not useful
12
- to extend webgen itself to support a new file format or another tag because the created plugins are
13
- only useful for one specific site. So one can define these extensions in a configuration file and
14
- then they are only available for the current website.
15
-
16
- h2. The Configuration File
17
-
18
- The configuration file for the extension loader has to be a file with valid Ruby code. Have a look
19
- at the <a href="{relocatable: /api.page}">API</a> documentation to see which special methods you can
20
- use in the configuration file.
@@ -1,16 +0,0 @@
1
- ---
2
- title: Backing File Handler
3
- inMenu: true
4
- ---
5
- h2. Information
6
-
7
- <notextile>{describe: BackingFileHandler}</notextile>
8
-
9
- h2. Description
10
-
11
- The backing file handler is used to set meta information for other files. It can be used to set
12
- additional meta information for page description files. However, its main purpose is to add virtual
13
- pages and directories.
14
-
15
- For more information have a look at the <a href="{relocatable: /api.page}">API
16
- documentation</a>.
@@ -1,88 +0,0 @@
1
- #
2
- #--
3
- #
4
- # $Id: extloader.rb 203 2005-02-21 18:42:04Z thomas $
5
- #
6
- # webgen: template based static website generator
7
- # Copyright (C) 2004 Thomas Leitner
8
- #
9
- # This program is free software; you can redistribute it and/or modify it under the terms of the GNU
10
- # General Public License as published by the Free Software Foundation; either version 2 of the
11
- # License, or (at your option) any later version.
12
- #
13
- # This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
14
- # even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- # General Public License for more details.
16
- #
17
- # You should have received a copy of the GNU General Public License along with this program; if not,
18
- # write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
- #
20
- #++
21
- #
22
-
23
- require 'webgen/plugins/tags/tags'
24
- require 'webgen/plugins/filehandler/filehandler'
25
-
26
- module Webgen
27
-
28
- # Loads website specific extensions.
29
- class ExtensionLoader < Plugin
30
-
31
- summary "Loads extensions from a configuration file"
32
- depends_on 'Tags', 'FileHandler'
33
- add_param 'extconfig', 'extension.config', 'Configuration file for extensions'
34
-
35
- def parse_config_file
36
- file = get_param( 'extconfig' )
37
- if File.exists?( file )
38
- begin
39
- instance_eval( File.read( file ), file )
40
- rescue Exception => e
41
- self.logger.error { "Error parsing file <#{file}>: #{e.message}" }
42
- end
43
- end
44
- end
45
-
46
- def simple_tag( name, processOutput = true, &block )
47
- register_tag( name, Tags::SimpleTag.new( processOutput, block ) )
48
- end
49
-
50
- def register_tag( name, processor )
51
- Plugin['Tags'].tags[name] = processor
52
- end
53
-
54
- def register_filehandler( name, processor )
55
- Plugin['FileHandler'].extensions[name] = processor
56
- end
57
-
58
- end
59
-
60
- end
61
-
62
-
63
- module Tags
64
-
65
- class SimpleTag < DefaultTag
66
-
67
- VIRTUAL = true
68
-
69
- summary "Used by the Tag Loader, provides the interface used by the Tags class"
70
-
71
- def initialize( processOutput, block )
72
- super()
73
- @processOutput = processOutput
74
- @block = block
75
- end
76
-
77
- def process_tag( tag, node, refNode )
78
- begin
79
- @block.call( tag, node, refNode )
80
- rescue Exception => e
81
- self.logger.error { "Error executing extension code: #{e.message}" }
82
- return ''
83
- end
84
- end
85
-
86
- end
87
-
88
- end