webgen 0.3.4 → 0.3.5
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/ChangeLog +201 -0
- data/Rakefile +3 -2
- data/TODO +31 -4
- data/VERSION +1 -1
- data/data/webgen/example/config.yaml +2 -0
- data/data/webgen/example/src/default.css +84 -0
- data/data/webgen/example/src/default.template +32 -0
- data/data/webgen/example/src/index.page +8 -0
- data/{doc/src → data/webgen/images}/generated_by_webgen.png +0 -0
- data/data/webgen/images/valid-css.gif +0 -0
- data/data/webgen/images/valid-xhtml11.png +0 -0
- data/data/webgen/images/webgen_logo.png +0 -0
- data/doc/config.yaml +2 -0
- data/doc/plugin/extension.rb +8 -4
- data/doc/plugin/resources.rb +30 -0
- data/doc/src/default.css +251 -149
- data/doc/src/default.template +8 -8
- data/doc/src/documentation/gettingstarted.page +1 -1
- data/doc/src/documentation/index.page +6 -2
- data/doc/src/documentation/plugins/filehandler/backing.page +22 -9
- data/doc/src/documentation/plugins/filehandler/galleryhandler.page +1 -1
- data/doc/src/documentation/plugins/filehandler/index.page +9 -4
- data/doc/src/documentation/plugins/filehandler/pagehandler.page +33 -10
- data/doc/src/documentation/plugins/index.page +9 -1
- data/doc/src/documentation/plugins/menustyles/horizontal-dropdown.page +42 -0
- data/doc/src/documentation/plugins/menustyles/horizontal.page +21 -0
- data/doc/src/documentation/plugins/menustyles/index.page +12 -0
- data/doc/src/documentation/plugins/menustyles/partial.page +27 -0
- data/doc/src/documentation/plugins/menustyles/vertical-dropdown.page +23 -0
- data/doc/src/documentation/plugins/menustyles/vertical.page +32 -0
- data/doc/src/documentation/plugins/resourcemanager.page +30 -0
- data/doc/src/documentation/plugins/tags/index.page +2 -2
- data/doc/src/documentation/plugins/tags/langbar.page +4 -4
- data/doc/src/documentation/plugins/tags/menu.page +6 -17
- data/doc/src/documentation/plugins/tags/navbar.page +2 -1
- data/doc/src/documentation/plugins/tags/resource.page +22 -0
- data/doc/src/download.page +1 -1
- data/doc/src/features.page +32 -9
- data/doc/src/index.page +24 -10
- data/doc/src/meta.info +16 -6
- data/install.rb +1 -1
- data/lib/webgen/configuration.rb +24 -2
- data/lib/webgen/node.rb +29 -5
- data/lib/webgen/plugin.rb +1 -5
- data/lib/webgen/plugins/contenthandler/textile.rb +3 -3
- data/lib/webgen/plugins/filehandler/backing.rb +5 -4
- data/lib/webgen/plugins/filehandler/directory.rb +3 -3
- data/lib/webgen/plugins/filehandler/filehandler.rb +8 -4
- data/lib/webgen/plugins/filehandler/page.rb +33 -18
- data/lib/webgen/plugins/filehandler/picturegallery.rb +10 -8
- data/lib/webgen/plugins/menustyles/defaultmenustyle.rb +73 -0
- data/lib/webgen/plugins/menustyles/horizontal.rb +93 -0
- data/lib/webgen/plugins/menustyles/horizontal_dropdown.rb +113 -0
- data/lib/webgen/plugins/menustyles/partial.rb +95 -0
- data/lib/webgen/plugins/menustyles/vertical.rb +107 -0
- data/lib/webgen/plugins/menustyles/vertical_dropdown.rb +107 -0
- data/lib/webgen/plugins/resourcemanager.rb +264 -0
- data/lib/webgen/plugins/tags/langbar.rb +9 -5
- data/lib/webgen/plugins/tags/menu.rb +4 -66
- data/lib/webgen/plugins/treewalker.rb +7 -6
- data/lib/webgen/webgen.rb +72 -161
- metadata +37 -6
- data/doc/src/logo.png +0 -0
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            #
         | 
| 2 2 | 
             
            #--
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # $Id: langbar.rb  | 
| 4 | 
            +
            # $Id: langbar.rb 293 2005-06-11 08:37:51Z thomas $
         | 
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # webgen: template based static website generator
         | 
| 7 7 | 
             
            # Copyright (C) 2004 Thomas Leitner
         | 
| @@ -25,12 +25,14 @@ require 'webgen/plugins/tags/tags' | |
| 25 25 | 
             
            module Tags
         | 
| 26 26 |  | 
| 27 27 | 
             
              # Generates a list with all the languages for a page.
         | 
| 28 | 
            -
              class  | 
| 28 | 
            +
              class LangbarTag < DefaultTag
         | 
| 29 29 |  | 
| 30 30 | 
             
                summary 'Provides links to translations of the page'
         | 
| 31 31 | 
             
                add_param 'separator', ' | ', 'Separates the languages from each other.'
         | 
| 32 | 
            -
                add_param 'showSingleLang', true, ' | 
| 33 | 
            -
                'although the page is only available in one language | 
| 32 | 
            +
                add_param 'showSingleLang', true, 'Should the link be shown '\
         | 
| 33 | 
            +
                'although the page is only available in one language?'
         | 
| 34 | 
            +
                add_param 'showOwnLang', true, 'Should the link to the currently displayed '\
         | 
| 35 | 
            +
                'language page be shown? '
         | 
| 34 36 | 
             
                depends_on 'Tags'
         | 
| 35 37 |  | 
| 36 38 | 
             
                def initialize
         | 
| @@ -39,7 +41,9 @@ module Tags | |
| 39 41 | 
             
                end
         | 
| 40 42 |  | 
| 41 43 | 
             
                def process_tag( tag, node, refNode )
         | 
| 42 | 
            -
                  output = node.parent.find_all  | 
| 44 | 
            +
                  output = node.parent.find_all do |a|
         | 
| 45 | 
            +
                    a['int:pagename'] == node['int:pagename'] && (node['lang'] != a['lang'] || get_param( 'showOwnLang' ))
         | 
| 46 | 
            +
                  end.sort {|a, b| a['lang'] <=> b['lang']}.collect do |n|
         | 
| 43 47 | 
             
                    n['processor'].get_html_link( n, n, n['lang'] )
         | 
| 44 48 | 
             
                  end.join( get_param( 'separator' ) )
         | 
| 45 49 | 
             
                  return ( get_param( 'showSingleLang' ) || node.parent.children.length > 1 ? output : "" )
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            #
         | 
| 2 2 | 
             
            #--
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # $Id: menu.rb  | 
| 4 | 
            +
            # $Id: menu.rb 293 2005-06-11 08:37:51Z thomas $
         | 
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # webgen: template based static website generator
         | 
| 7 7 | 
             
            # Copyright (C) 2004 Thomas Leitner
         | 
| @@ -31,11 +31,6 @@ module Tags | |
| 31 31 | 
             
              #
         | 
| 32 32 | 
             
              # The order in which the menu items are listed can be controlled via the meta information
         | 
| 33 33 | 
             
              # +orderInfo+. By default the menu items are sorted by the file names.
         | 
| 34 | 
            -
              #
         | 
| 35 | 
            -
              # Tag parameters:
         | 
| 36 | 
            -
              # [<b>level</b>]
         | 
| 37 | 
            -
              #   The depth of the menu. A level of one only displays the top level menu files. A level of two
         | 
| 38 | 
            -
              #   also displays the menu files in the direct subdirectories and so on.
         | 
| 39 34 | 
             
              class MenuTag < DefaultTag
         | 
| 40 35 |  | 
| 41 36 | 
             
                class ::Node
         | 
| @@ -98,19 +93,8 @@ module Tags | |
| 98 93 | 
             
                summary 'Builds a menu'
         | 
| 99 94 | 
             
                depends_on 'Tags'
         | 
| 100 95 |  | 
| 101 | 
            -
                add_param ' | 
| 102 | 
            -
                add_param ' | 
| 103 | 
            -
                add_param 'submenuClass', 'webgen-submenu', 'Specifies the class of a submenu'
         | 
| 104 | 
            -
                add_param 'selectedMenuitemClass', 'webgen-menuitem-selected', 'Specifies the class of the selected menu item'
         | 
| 105 | 
            -
                add_param 'level', 1, \
         | 
| 106 | 
            -
                'Specifies how many levels the menu should have by default, ie. how deep it is. ' \
         | 
| 107 | 
            -
                'For example, if level = 3, then three levels are always shown at least.'
         | 
| 108 | 
            -
                add_param 'subtreeLevel', 3, \
         | 
| 109 | 
            -
                'Specifies how many levels should be shown for subtrees. The number specifies ' \
         | 
| 110 | 
            -
                'the maximum depth the menu will have.'
         | 
| 111 | 
            -
                add_param 'showCurrentSubtreeOnly', true, \
         | 
| 112 | 
            -
                'True if only the current subtree should be shown in the menu. If set to false, ' \
         | 
| 113 | 
            -
                'each subtree will be shown.'
         | 
| 96 | 
            +
                add_param 'menuStyle', 'vertical', 'Specifies the style of the menu.'
         | 
| 97 | 
            +
                add_param 'options', {}, 'Optional options that are passed on to the plugin which is layouts the menu.'
         | 
| 114 98 |  | 
| 115 99 | 
             
                used_meta_info 'orderInfo', 'inMenu'
         | 
| 116 100 |  | 
| @@ -128,7 +112,7 @@ module Tags | |
| 128 112 | 
             
                      Webgen::Plugin['TreeWalker'].execute( @menuTree, Webgen::Plugin['DebugTreePrinter'] )
         | 
| 129 113 | 
             
                    end
         | 
| 130 114 | 
             
                  end
         | 
| 131 | 
            -
                  build_menu( node, @menuTree,  | 
| 115 | 
            +
                  Webgen::Plugin['DefaultMenuStyle'].get_menu_style( get_param( 'menuStyle' ) ).build_menu( node, @menuTree, get_param( 'options' ) )
         | 
| 132 116 | 
             
                end
         | 
| 133 117 |  | 
| 134 118 |  | 
| @@ -136,52 +120,6 @@ module Tags | |
| 136 120 | 
             
                private
         | 
| 137 121 | 
             
                #######
         | 
| 138 122 |  | 
| 139 | 
            -
             | 
| 140 | 
            -
                def build_menu( srcNode, node, level )
         | 
| 141 | 
            -
                  if node.nil? \
         | 
| 142 | 
            -
                    || level > get_param( 'subtreeLevel' ) \
         | 
| 143 | 
            -
                    || ( level > get_param( 'level' ) \
         | 
| 144 | 
            -
                         && ( node['node'].level > srcNode.level \
         | 
| 145 | 
            -
                              || ( get_param( 'showCurrentSubtreeOnly' ) && !srcNode.in_subtree?( node['node'] ) )
         | 
| 146 | 
            -
                              )
         | 
| 147 | 
            -
                         )
         | 
| 148 | 
            -
                    return ''
         | 
| 149 | 
            -
                  end
         | 
| 150 | 
            -
             | 
| 151 | 
            -
                  out = "<#{get_param( 'menuTag' )}>"
         | 
| 152 | 
            -
                  node.each do |child|
         | 
| 153 | 
            -
                    menu = child['node']['int:directory?'] ? build_menu( srcNode, child, level + 1 ) : ''
         | 
| 154 | 
            -
                    before, after = menu_entry( srcNode, child['node'] )
         | 
| 155 | 
            -
             | 
| 156 | 
            -
                    out << before
         | 
| 157 | 
            -
                    out << menu
         | 
| 158 | 
            -
                    out << after
         | 
| 159 | 
            -
                  end
         | 
| 160 | 
            -
                  out << "</#{get_param( 'menuTag' )}>"
         | 
| 161 | 
            -
             | 
| 162 | 
            -
                  return out
         | 
| 163 | 
            -
                end
         | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 166 | 
            -
                def menu_entry( srcNode, node )
         | 
| 167 | 
            -
                  langNode = node['processor'].get_node_for_lang( node, srcNode['lang'] )
         | 
| 168 | 
            -
                  isDir = node['int:directory?']
         | 
| 169 | 
            -
             | 
| 170 | 
            -
                  styles = []
         | 
| 171 | 
            -
                  styles << get_param( 'submenuClass' ) if isDir
         | 
| 172 | 
            -
                  styles << get_param( 'selectedMenuitemClass' ) if langNode.recursive_value( 'dest' ) == srcNode.recursive_value( 'dest' )
         | 
| 173 | 
            -
             | 
| 174 | 
            -
                  style = " class=\"#{styles.join(' ')}\"" if styles.length > 0
         | 
| 175 | 
            -
                  link = node['processor'].get_html_link( node, srcNode )
         | 
| 176 | 
            -
             | 
| 177 | 
            -
                  before = "<#{get_param( 'itemTag' )}#{style}>#{link}"
         | 
| 178 | 
            -
                  after = "</#{get_param( 'itemTag' )}>"
         | 
| 179 | 
            -
             | 
| 180 | 
            -
                  self.logger.debug { [before, after] }
         | 
| 181 | 
            -
                  return before, after
         | 
| 182 | 
            -
                end
         | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 123 | 
             
                def create_menu_tree( node, parent )
         | 
| 186 124 | 
             
                  menuNode = MenuNode.new( parent, node )
         | 
| 187 125 |  | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            #
         | 
| 2 2 | 
             
            #--
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # $Id: treewalker.rb  | 
| 4 | 
            +
            # $Id: treewalker.rb 287 2005-05-26 09:33:38Z thomas $
         | 
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # webgen: template based static website generator
         | 
| 7 7 | 
             
            # Copyright (C) 2004 Thomas Leitner
         | 
| @@ -38,10 +38,10 @@ module TreeWalkers | |
| 38 38 |  | 
| 39 39 | 
             
                # Uses either all registered walkers or the specified +walker+. Walks the +tree+ for each walker
         | 
| 40 40 | 
             
                # separately.
         | 
| 41 | 
            -
                def execute( tree, walker = nil )
         | 
| 41 | 
            +
                def execute( tree, walker = nil, direction = :forward )
         | 
| 42 42 | 
             
                  walkers = ( walker.nil? ? @walkers : [walker] )
         | 
| 43 43 | 
             
                  walkers.each do |walker|
         | 
| 44 | 
            -
                    walk_tree( tree, walker, 0 )
         | 
| 44 | 
            +
                    walk_tree( tree, walker, 0, direction )
         | 
| 45 45 | 
             
                  end
         | 
| 46 46 | 
             
                end
         | 
| 47 47 |  | 
| @@ -50,11 +50,12 @@ module TreeWalkers | |
| 50 50 | 
             
                #######
         | 
| 51 51 |  | 
| 52 52 | 
             
                # Walks the tree and calls the plugin +walker+ for each and every node.
         | 
| 53 | 
            -
                def walk_tree( node, walker, level )
         | 
| 54 | 
            -
                  walker.handle_node( node, level )
         | 
| 53 | 
            +
                def walk_tree( node, walker, level, direction = :forward )
         | 
| 54 | 
            +
                  walker.handle_node( node, level ) if direction == :forward
         | 
| 55 55 | 
             
                  node.each do |child|
         | 
| 56 | 
            -
                    walk_tree( child, walker, level + 1 )
         | 
| 56 | 
            +
                    walk_tree( child, walker, level + 1, direction )
         | 
| 57 57 | 
             
                  end
         | 
| 58 | 
            +
                  walker.handle_node( node, level ) if direction == :backward
         | 
| 58 59 | 
             
                end
         | 
| 59 60 |  | 
| 60 61 | 
             
              end
         | 
    
        data/lib/webgen/webgen.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            #
         | 
| 2 2 | 
             
            #--
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # $Id: webgen.rb  | 
| 4 | 
            +
            # $Id: webgen.rb 293 2005-06-11 08:37:51Z thomas $
         | 
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # webgen: template based static website generator
         | 
| 7 7 | 
             
            # Copyright (C) 2004 Thomas Leitner
         | 
| @@ -22,6 +22,7 @@ | |
| 22 22 |  | 
| 23 23 | 
             
            require 'optparse'
         | 
| 24 24 | 
             
            require 'rbconfig'
         | 
| 25 | 
            +
            require 'fileutils'
         | 
| 25 26 | 
             
            require 'cmdparse'
         | 
| 26 27 | 
             
            require 'webgen/plugin'
         | 
| 27 28 |  | 
| @@ -143,175 +144,90 @@ module Webgen | |
| 143 144 | 
             
                  if args.length == 0
         | 
| 144 145 | 
             
                    raise OptionParser::MissingArgument.new( 'DIR' )
         | 
| 145 146 | 
             
                  else
         | 
| 146 | 
            -
                     | 
| 147 | 
            -
                    create_dir( File.join( args[0], 'src' ) )
         | 
| 148 | 
            -
                    create_dir( File.join( args[0], 'output' ) )
         | 
| 149 | 
            -
                    create_dir( File.join( args[0], 'log' ) )
         | 
| 150 | 
            -
                    create_dir( File.join( args[0], 'plugin' ) )
         | 
| 151 | 
            -
                    create_file( File.join( args[0], 'config.yaml' ), content_config_yaml )
         | 
| 152 | 
            -
                    create_file( File.join( args[0], 'src', 'default.template' ), content_default_template )
         | 
| 153 | 
            -
                    create_file( File.join( args[0], 'src', 'default.css' ), content_default_css )
         | 
| 154 | 
            -
                    create_file( File.join( args[0], 'src', 'index.page' ), content_index_page )
         | 
| 147 | 
            +
                    FileUtils.cp_r( File.join( Webgen::Configuration.data_dir, 'example' ), args[0] )
         | 
| 155 148 | 
             
                  end
         | 
| 156 149 | 
             
                end
         | 
| 157 150 |  | 
| 158 | 
            -
             | 
| 159 | 
            -
                  Dir.mkdir( dir ) unless File.exists?( dir )
         | 
| 160 | 
            -
                end
         | 
| 151 | 
            +
              end
         | 
| 161 152 |  | 
| 162 | 
            -
                def create_file( file, content )
         | 
| 163 | 
            -
                  File.open( file, 'w') do |f|
         | 
| 164 | 
            -
                    f.puts( content )
         | 
| 165 | 
            -
                  end unless File.exists?( file )
         | 
| 166 | 
            -
                end
         | 
| 167 153 |  | 
| 168 | 
            -
             | 
| 169 | 
            -
             | 
| 154 | 
            +
              class CleanCommand < CommandParser::Command
         | 
| 155 | 
            +
             | 
| 156 | 
            +
                module ::FileUtils
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                  def fu_output_message( msg )
         | 
| 159 | 
            +
                    logger.info { msg }
         | 
| 160 | 
            +
                  end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                  def ask_before_delete( ask, func, list, options = {} )
         | 
| 163 | 
            +
                    newlist = [*list].collect {|e| "'" + e + "'"}.join(', ')
         | 
| 164 | 
            +
                    if ask
         | 
| 165 | 
            +
                      print "Really delete #{newlist}? "
         | 
| 166 | 
            +
                      return unless /y|Y/ =~ gets.strip
         | 
| 167 | 
            +
                    end
         | 
| 168 | 
            +
                    self.send( func, list, options.merge( :verbose => true ) )
         | 
| 169 | 
            +
                  end
         | 
| 170 | 
            +
             | 
| 170 171 | 
             
                end
         | 
| 171 172 |  | 
| 172 | 
            -
                 | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
             | 
| 176 | 
            -
             | 
| 177 | 
            -
             | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
             | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
             | 
| 188 | 
            -
             | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 191 | 
            -
             | 
| 192 | 
            -
             | 
| 193 | 
            -
                  {menu: {subtreeLevel: 4}}
         | 
| 194 | 
            -
                </div>
         | 
| 195 | 
            -
             | 
| 196 | 
            -
                <div id=\"body\">
         | 
| 197 | 
            -
                  {content: }
         | 
| 198 | 
            -
                </div>
         | 
| 199 | 
            -
             | 
| 200 | 
            -
                <div id=\"footer\" class=\"bar\">
         | 
| 201 | 
            -
                  generated with <a href=\"http://webgen.rubyforge.org\"><em><b>webgen</b></em></a> on <b>{date: }</b>
         | 
| 202 | 
            -
                </div>
         | 
| 203 | 
            -
              </body>
         | 
| 204 | 
            -
            </html>
         | 
| 205 | 
            -
            "
         | 
| 173 | 
            +
                class CleanWalker < Webgen::Plugin
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                  summary "Deletes the output file for each node."
         | 
| 176 | 
            +
                  depends_on 'TreeWalker'
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                  attr_writer :ask
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                  def handle_node( node, level )
         | 
| 181 | 
            +
                    file = node.recursive_value( 'dest' )
         | 
| 182 | 
            +
                    return if !File.exists?( file ) || node['int:virtualNode']
         | 
| 183 | 
            +
                    if File.directory?( file )
         | 
| 184 | 
            +
                      begin
         | 
| 185 | 
            +
                        FileUtils.ask_before_delete( @ask, :rmdir, file )
         | 
| 186 | 
            +
                      rescue Errno::ENOTEMPTY => e
         | 
| 187 | 
            +
                        logger.info "Cannot delete directory #{file}, as it is not empty!"
         | 
| 188 | 
            +
                      end
         | 
| 189 | 
            +
                    else
         | 
| 190 | 
            +
                      FileUtils.ask_before_delete( @ask, :rm, file, :force => true )
         | 
| 191 | 
            +
                    end
         | 
| 192 | 
            +
                  end
         | 
| 193 | 
            +
             | 
| 206 194 | 
             
                end
         | 
| 207 195 |  | 
| 208 | 
            -
                def  | 
| 209 | 
            -
                   | 
| 210 | 
            -
             | 
| 211 | 
            -
             | 
| 212 | 
            -
             | 
| 213 | 
            -
             | 
| 214 | 
            -
             | 
| 215 | 
            -
                background-color: #888888;
         | 
| 216 | 
            -
              }
         | 
| 217 | 
            -
              #header h1 {
         | 
| 218 | 
            -
                margin: 0ex;
         | 
| 219 | 
            -
            	font-size: 300%;
         | 
| 220 | 
            -
            	font-style: italic;
         | 
| 221 | 
            -
            	font-weight: normal;
         | 
| 222 | 
            -
              }
         | 
| 223 | 
            -
             | 
| 224 | 
            -
            , #headerbar { border-bottom: 1px solid black; }
         | 
| 225 | 
            -
              #footer { border-top: 1px solid black; }
         | 
| 226 | 
            -
             | 
| 227 | 
            -
              #body {
         | 
| 228 | 
            -
                margin-left: 250px;
         | 
| 229 | 
            -
                margin-right: 20px;
         | 
| 230 | 
            -
                padding: 10px;
         | 
| 231 | 
            -
              }
         | 
| 232 | 
            -
             | 
| 233 | 
            -
              #menu {
         | 
| 234 | 
            -
            	float: left;
         | 
| 235 | 
            -
            	width: 230px;
         | 
| 236 | 
            -
                padding: 20px 0px 0px 2px;
         | 
| 237 | 
            -
              }
         | 
| 238 | 
            -
             | 
| 239 | 
            -
              .bar {
         | 
| 240 | 
            -
            	clear: both;
         | 
| 241 | 
            -
            	padding: 3px;
         | 
| 242 | 
            -
            	text-align: center;
         | 
| 243 | 
            -
            	font-size: 90%;
         | 
| 244 | 
            -
                background-color: #AAAAAA;
         | 
| 245 | 
            -
              }
         | 
| 246 | 
            -
             | 
| 247 | 
            -
              .left, .right {
         | 
| 248 | 
            -
                padding: 0px 1em;
         | 
| 249 | 
            -
              }
         | 
| 250 | 
            -
             | 
| 251 | 
            -
              .left {
         | 
| 252 | 
            -
            	float: left;
         | 
| 253 | 
            -
            	text-align: left;
         | 
| 254 | 
            -
              }
         | 
| 255 | 
            -
             | 
| 256 | 
            -
              .right {
         | 
| 257 | 
            -
            	float: right;
         | 
| 258 | 
            -
            	text-align: right;
         | 
| 259 | 
            -
              }
         | 
| 260 | 
            -
             | 
| 261 | 
            -
              /* styling the menu */
         | 
| 262 | 
            -
             | 
| 263 | 
            -
              #menu a {
         | 
| 264 | 
            -
            	text-decoration: none;
         | 
| 265 | 
            -
            	font-weight: bold;
         | 
| 266 | 
            -
            	font-size: 130%;
         | 
| 267 | 
            -
              }
         | 
| 268 | 
            -
             | 
| 269 | 
            -
              #menu a:hover {
         | 
| 270 | 
            -
            	text-decoration: underline;
         | 
| 271 | 
            -
              }
         | 
| 272 | 
            -
             | 
| 273 | 
            -
              #menu .webgen-menuitem-selected {
         | 
| 274 | 
            -
            	border-left: 3px solid black;
         | 
| 275 | 
            -
              }
         | 
| 276 | 
            -
             | 
| 277 | 
            -
              #menu ul {
         | 
| 278 | 
            -
            	list-style-type: none;
         | 
| 279 | 
            -
            	padding: 0px;
         | 
| 280 | 
            -
            	margin-left: 10px;
         | 
| 281 | 
            -
              }
         | 
| 282 | 
            -
             | 
| 283 | 
            -
              #menu li > ul {
         | 
| 284 | 
            -
            	font-size: 95%;
         | 
| 285 | 
            -
              }
         | 
| 286 | 
            -
             | 
| 287 | 
            -
              #menu li {
         | 
| 288 | 
            -
                margin: 0.0em 0px;
         | 
| 289 | 
            -
                padding: 2px 0px;
         | 
| 290 | 
            -
                padding-left: 5px;
         | 
| 291 | 
            -
                border-left: 3px solid #CCCCCC;
         | 
| 292 | 
            -
              }
         | 
| 293 | 
            -
            "
         | 
| 196 | 
            +
                def initialize;
         | 
| 197 | 
            +
                  super( 'clean' )
         | 
| 198 | 
            +
                  @all = false
         | 
| 199 | 
            +
                  @ask = false
         | 
| 200 | 
            +
                  options.separator( "Options" )
         | 
| 201 | 
            +
                  options.on( '--all', '-a', "Removes ALL files from the output directory" ) { @all = true }
         | 
| 202 | 
            +
                  options.on( '--interactive', '-i', "Ask for each file" ) { @ask = true }
         | 
| 294 203 | 
             
                end
         | 
| 295 204 |  | 
| 296 | 
            -
                def  | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 299 | 
            -
            inMenu: true
         | 
| 300 | 
            -
            directoryName: New Website
         | 
| 301 | 
            -
            ---
         | 
| 302 | 
            -
            h2. Empty index file
         | 
| 205 | 
            +
                def description; "Removes the generated or all files from the output directory"; end
         | 
| 206 | 
            +
             | 
| 207 | 
            +
                def usage; "Usage: #{@options.program_name} [global options] clean [options]"; end
         | 
| 303 208 |  | 
| 304 | 
            -
             | 
| 305 | 
            -
             | 
| 209 | 
            +
                def execute( commandParser, args )
         | 
| 210 | 
            +
                  if @all
         | 
| 211 | 
            +
                    logger.info( "Deleting all files from output directory..." )
         | 
| 212 | 
            +
                    outDir = Plugin['Configuration']['outDirectory']
         | 
| 213 | 
            +
                    FileUtils.ask_before_delete( @ask, :rm_rf, outDir ) if File.exists?( outDir )
         | 
| 214 | 
            +
                  else
         | 
| 215 | 
            +
                    tree = Plugin['FileHandler'].build_tree
         | 
| 216 | 
            +
                    logger.info( "Deleting generated files from output directory..." )
         | 
| 217 | 
            +
                    Plugin['CleanWalker'].ask = @ask
         | 
| 218 | 
            +
                    Plugin['TreeWalker'].execute( tree, Plugin['CleanWalker'], :backward )
         | 
| 219 | 
            +
                  end
         | 
| 220 | 
            +
                  logger.info( "Webgen finished 'clean' command" )
         | 
| 306 221 | 
             
                end
         | 
| 307 222 |  | 
| 308 | 
            -
             | 
| 223 | 
            +
                private
         | 
| 309 224 |  | 
| 225 | 
            +
              end
         | 
| 310 226 |  | 
| 311 227 | 
             
              class WebgenCommandParser < CommandParser
         | 
| 312 228 |  | 
| 313 229 | 
             
                def initialize
         | 
| 314 | 
            -
                  super
         | 
| 230 | 
            +
                  super( true )
         | 
| 315 231 | 
             
                  self.options do |opts|
         | 
| 316 232 | 
             
                    opts.program_name = "webgen"
         | 
| 317 233 | 
             
                    opts.version = Webgen::VERSION
         | 
| @@ -332,6 +248,7 @@ Fill this file with your own data!!! | |
| 332 248 | 
             
                  self.add_command( RunWebgenCommand.new, true )
         | 
| 333 249 | 
             
                  self.add_command( ShowCommand.new )
         | 
| 334 250 | 
             
                  self.add_command( CreateCommand.new )
         | 
| 251 | 
            +
                  self.add_command( CleanCommand.new )
         | 
| 335 252 | 
             
                  self.add_command( CommandParser::HelpCommand.new )
         | 
| 336 253 | 
             
                  self.add_command( CommandParser::VersionCommand.new )
         | 
| 337 254 | 
             
                end
         | 
| @@ -343,16 +260,10 @@ Fill this file with your own data!!! | |
| 343 260 |  | 
| 344 261 | 
             
                def main( cmdOptions )
         | 
| 345 262 | 
             
                  Color.colorify if $stdout.isatty && !Config::CONFIG['arch'].include?( 'mswin32' )
         | 
| 346 | 
            -
                   | 
| 347 | 
            -
             | 
| 348 | 
            -
             | 
| 349 | 
            -
             | 
| 350 | 
            -
                    wcp.execute
         | 
| 351 | 
            -
                  rescue CommandParser::InvalidCommandError => e
         | 
| 352 | 
            -
                    puts "Error: invalid command given"
         | 
| 353 | 
            -
                    puts
         | 
| 354 | 
            -
                    wcp.commands['help'].execute( wcp, {} )
         | 
| 355 | 
            -
                  end
         | 
| 263 | 
            +
                  wcp = WebgenCommandParser.new
         | 
| 264 | 
            +
                  wcp.parse!( ARGV, false )
         | 
| 265 | 
            +
                  Plugin['Configuration'].init_all
         | 
| 266 | 
            +
                  wcp.execute
         | 
| 356 267 | 
             
                end
         | 
| 357 268 |  | 
| 358 269 | 
             
              end
         |