---- CURRENT ----

* BUG command clean does not delete all files (e.g. no resources, other files generated by plugins [source plugin])
* show available styles and templates in docu and in online help (webgen help create)
* think about plugin system, @@config etc - should work from within webgen-gui, not only once from webgen
* make webgen source installation work with correct cmdparse version
* FileCopyHandler#initialize not reentrant
* make menu generation faster (for webgen: 5.2s without menus in template, 9.2s with menus!)
* create tests for methods in webgen.rb
* check if duplicate nodes are created??? by using a tag in a template
* allow a template to use another template (templates as page description files?) (template2 uses template1)
* use code generator to create test file with all tags and all tag parameter configurations

---- DOCU ----

* examples for each type of plugins in extending webgen section

---- FUTURE ----

* Configuration:outDirectory should support FTP and SFTP protocols
* refactor code sothat one source file can be used by 0..n processors
* tag 'link' which provides a link to the file optionally showing an icon
* parameter for including page icons in menus
* parameter for setting the orderInfo of index pages so that they always appear as first entry
* implement plugin which creates nodes for fragment identifiers (#info) in html
* include spell checker (ispell, aspell, MS Word OLE on Win32,...)
* tag 'resume', uses xmlresume2x to provide HTML version of xml resume
* multi-lingual picture/gallery files
* include exif info for pictures

---- DONE ----

W check if an xml validator is available in ruby
W think about sequence of actions when program is executed
W think about how the data is stored in tree/which data is stored in tree
W set up directory structure and build system
W write ideas and design considerations
W create sample files to work on
W change exception mechanism to use IDs for exceptions
W update all exceptions to new exception format
W implement hooks mechanism
W enable writing of tree again after hooks mechanism installed
W implement page templates using hooks (after dir read store reference to template file in hash)
W review Node class, remove all plugin dependent things
W review configuration class, remove all plugin dependent things
W check if ansi color output is better (for warnings, debug, etc), should be able to turn off
W restructure current files, make more readable
W pagePlugin.buildNode: srcName = File.basename(srcName) in front of urlName = ...
W pagePlugin.get_template_for_node: raise ... if node.nil?
W change the classes which use the listener/composite module because of the refactorization
W refactor current classes
W implement tag <relocatable> for references that should be relocatable
W FileCopyPlugin: check if file has changed and only then copy
W think about how to print out warnings uniformly --> log4r
W define format of config.yaml
W redo configuration file as yaml file
W meta tag replacer - replaces tag with contents of equally named node.metainfo entry
W add yaml page files
W add default values for configuration in configuration.rb
W create super class for page plugins
W implement "creation of files only when necessary" (i.e. if dependencies have changed)
    use modification of source and target to check if source is newer -> changed
    change the behaviour in file copy plugin
W think about configureable list of files patterns which should always be ignored when reading src dir
W replace current logging mechanism with Log4r
W implement <template> meta-info tag (see template based)
W redo tree transformer
W refacture menu tag plugin
W update default.css so that the page display correctly
N convert everything to utf8 before writing -> the file need to have the correct encoding
W better loggers for plugins (substitute real plugin name for "plugin")
N think about logging levels and when to use which level
W add multiple language support
W speed up menu creation by caching the created menu and only substituting the relative paths
W if a page in one language is in the menu, all other languages for this page should also be in the menu (-> de yaml project page, no selection in menu)
W link creation for nodes should be done only in one place (now in menu and navbar tags)
W navbar should be configurable (start tag, separator, end tag)
W command line parameter for listing all available configuration options with default values
W add check so that all needed metainfo tags are in read files
W eventually put TreeUtils methods into Node
W get_node_for_string should also work for absolute paths (ie. '/images' or '/projects/index.html')
W relocatable tag fails for "{relocatable: /images/bghack.png}" in index.xpage
W make get_relpath_to_node work for all nodes, not only page nodes
W implement meta info backing file for page file types without metainfo (e.g. html fragments)
W file name syntax: [0-9].name-with_blanks.[de].[EXTENSION] -> title: Name with blanks, Order: [0-9], Language: de
W implement order tag for setting menu order
W use rake, gem and setup.rb for installing and packaging
W prevent creation of log file if nothing is done (on -p, -e, --help...)
W put main and configuration class into the Webgen module
W use code coverage tool (-rcoverage) for checking the coverage on the testSite (use with rake)
W document existing files (RDOC)
W check out http://validator.w3.org/check/referer -> use xmllint from libxml2 package
W make file plugins case-insensitiv (convert all uppercase letters to lowercase)
W generate VERSION file when packaging
W list plugins by category instead of name (file handlers and tags should be grouped together)
W make get_node_for_string work with page files as parameters (reference in home.xpage to projects page)
W make get_node_for_string work with localized page names, i.e. /index.html/index.de.html to get the german version of the page
W add option to lang tag: showAlways -> display lang menu when only one item would appear?
W handle configuration options for tags uniformly (default configuration and per tag configuration)
W add option to menu tag: showOnlyThisSubtree -> displays only one tree to a deeper level
W redo TreeWalker -> tree should be walked separately for each registered plugin
W add virtual menu nodes for external html files
W add mechanism to document configuration parameters
W modify tag configuration so that mandatory/optional arguments for tags are supported
W add RedCloth and BlueCloth and RDOC page description files
W use File.basename(filename, '.*) to strip ext, File.extname(filename) to get ext
W add debug statements to method_added in configuration.rb
W do not allow two or more page files in the same language, print warn
* remove log4r support, add STDLIB logger support
* one file format, many content formats
* allow line breaks in tags (substitute: \n -> ' ', \n\n -> \n)
* configuration should be ruby file with special syntax, to allow the specification of additional tags --> additional config file
* create tags in config file which produce informational output about filehandlers and tags (param listing,...)
* include version number in documentation
* get_relpath_to_node: if destNode['external'] --> check for URL pattern
* add mandatory param info to output of 'describe'
* option for includeFile tag: escapeHTML (should special html tags be escaped?)
* more tags (in docu: how to use them, parameters, ..., structure should be the same everywhere)
* add facility to check output files on conformity to a HTML standard
* tag 'wikilink'
* file handler for 'picture gallery' files
* add optional extension method to Plugin class
* rename tag loader -> extension loader
* document extension loader and its config file
* document in file handler that :dir extension is used for directory handler
* options for PageHandler: default file format if none given
* state that if a dependency is not found (e.g. redcloth) the plugin is disabled and a warning issued
* add example section for each plugin
* add tests for all parameters with which webgen can be called
* Bug in analyse_filename if langpart.length != 2 (write test!) -> was already handled gracefully ;-)
* remove Plugin.plugin method -> use class name! (short class name, without modules, Test::Hallo.name.split(/::/).last )
* remove extension(...) call from file handlers -> DefaultHandler#initialize
* pagehandler + converter into own subdir
* think about filename conflicts for picture pages
* document that webgen documentation source files (as example website) are in the tar.gz file!
* document philosophy of webgen (never stop running, errors/warnings, default values,...)
* extend plugins section on main documentation page
* add design gallery
* register with Freshmeat.net
* check out http://jigsaw.w3.org/css-validator/check/referer -> using xmllint
* BUG DirHandler#recursive_create_path: handle relativ paths ('..' and '.')
* allow specification of metadata for gallery and picture pages
* create thumbnails of pictures on the fly with rmagick
* do not create thumbnails if they already exist and the source file has not changed
* ev. create a GalleryNode and put gallery/pictures pages beneath it??? -> No
* tag 'sitemap' -> generate site map
* add pages for content converter and layouter plugins
* pictureGallery: document layout methods (how to extend -> write subclass, can use config values as layouters are plugins), main things...
* pictureGallery: files param: no path outside src directory
* simplify DefaultContentHandler, DefaultHTMLValidator, DefaultGalleryLayouter, ...
* Webgen::Plugin.config should have classes (not class names) as keys
* integrate check on output HTML pages (using xmllint)
* change extension.config to output registered handlers
* add htmlvalidator to docu
* document TreeWalker plugin -> not needed
* restructure documentation (filehandler, contenthandler, htmlvalidator, tags)
* tag 'mrplot' -> generate a plot with mrplot --> tag not very useable
* ordering of picture/gallery files for menu
* add params to menu for style classes (webgen-submenu, webgen-menuitem-selected) -> see menu feedback on wiki
* add parameters for controlling log files
* implement feature request #1642
* create webgen 0.2.0 to 0.3.0 converter -> No
* Bug in wikilink: & not supported
* have a look at wiki -> done
* remove PageNode nodes from tree and put ***.page nodes directly in dir??? (see directory/backing/page handler)
* refactor backing file structure: reference files directly, not via basename/language
* site specific plugins in plugin directory
* add a getting started section
* describe new CLI on extra page (documentation/cli.page)
* log files goto log directory
* create file for logging plugin
* document the existence of the mailing list
* webgen create -> create basic template/css + index.page
* update FileCopyHandler
* menu order: if order number equal, sort alphabetically
* RF bug: sitemap displays multilingual sites more times, sitemap should respect menuOrder
* reloctable tag: correct output for complex URLS???
* document the various meta info entries that the plugins use (inMenu, menuOrdering, ...) --> define: Plugin.used_meta_info( name, desc )
* create logo "Created with webgen"
* implement command "webgen clean" (options -f (force) -a (all files in dir, not only generated ones)
* BUG: relocatable should work if defaultLangInFilename is true (eg. copy.html -> not found because of copy.en.html)
* refactor menu: abstract menu generator+parser, concrete impls (vert. menu, horz. menu, ...)
* change langbar like in mail from Thomas Werschleinvn
* mention which extension the file handlers work on (backing file handler, template file handler, ...)
* add doku for new menu builder plugins, adjust menu.page
* test Node#relpath_to_string
* add possibility to add user-defined resources via config.yaml
* MAYBE: ONE page node for all pages, metainfo 'en' => all info about english, 'de' => same, ...??? --> better not
* add style advices for menu styles
* resources should be saved in Webgen::Plugin.config
* make tag plugin for predefinedResources work
* document ResourceManager
* specify on menu style pages in which browsers the menus work
* document super classes of plugins because plugins can use parameters of super classes
* create partialMenu style which only shows a partial menu
* security concerns (setting different $SAFE level???) --> No
* create vertical-dropdown menu
* better docu for backing file handler
* make dropdown menus "look" nice in IE
* make dropdown menus work in IE -> rather hard to do in a general way
* convert smiley characters to smileys
* add keywords to default.template
* document which meta info can be used in gallery file for gallery itself, gallery pages and picture pages
* summary page of all parameters
* add note that smellies emoticon pack is from ... -> see temp/smileys dir
* docu for webgen-gallery-editor
* docu on how to extend webgen
* custom commands provided by plugins
* tag 'download' which links to a download file and appends its size and ev. an image (PDF, ...)
* modify tags system sothat tags can be specified via a tag directive (like extension with file handlers)
* adapt clidesc to cmdparse 2.0.0
* webgen show config => output same info as on docu pages
* test usage for en, deu, eng (ISO-639-2 codes)
