Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (59 sloc) 3.4 KB
---
title: Features
main_menu: true
main_sort: 20
link_attrs:
link_text: "<i class='icon-bolt'></i> Features"
meta:
description: Provides a non-exhaustive list of the features of webgen.
---
## Non-exhaustive List
Below is a non-exhaustive list of features that webgen supports.
* ### Core Features
The following list shows general benefits of using webgen:
* **Fast** (only the necessary files are regenerated)
* **Easy to install and use**
* Supports translating any files (content files or assets)
* Runs on Linux, Mac OS X, Windows
* Extendable by writing add-ons in Ruby
* Easy to configure if one needs to (no need if you are happy with the default values)
* Command line interface uses command style syntax (like `git` command)
* ### Supported Formats/Markup Languages
webgen content files can be written in a number of different formats and new formats can easily
be added. Here is a partial list:
* **Markdown** (including special syntax like setting header ids and html attributes through the
[kramdown][content processor kramdown] library)
* **Textile** (through the [RedCloth][content processor redcloth] library)
* **[Haml][content processor haml] and [Sass][content processor sass]**
* [RDoc][content processor rdoc] (the native API documentation format for Ruby)
* [Builder][content processor builder] (tool for programatically creating XML documents)
* Smiley-to-emoticon conversion (through an official [extension bundle][1])
* ### Supported File Types
Anything can be put into webgen's source directory so that it gets copied to the destination
directory but some file types are handled specially, for example:
* [Page files][path handler page] (primarily used to define the content of a web page but can
really be used to create about any text-based file format)
* [Template files][path handler template] (used to define the general layout of a web page,
these are chainable/nestable)
* ### Dynamic Content
Although webgen is used to create a static website, it allows one to embed dynamic parts to
support features like dynamic menu generation, dynamic link generation and more. Here are some
of the available methods for adding dynamic content:
* **webgen tags**: these allow non-programmers to easily add dynamic content using a simple markup
syntax. webgen ships with many [tag extensions][tags] for
* **generating menus and breadcrumb trails**
* listing all translations of a page
* **syntax highlighting code** fragments or entire files
* and much more
* **[ERB][content processor erb]** (embedded Ruby) for custom scripts embedded into content
files for advanced users.
* ### Other Features
Additionally to the above webgen provides some other useful features:
* Specify meta information (e.g. title, ordering information, ...) for any file through special
**[meta info files][path handler meta_info]**
* Support for specifying **[virtual files and directories][path handler virtual]** (can be used,
for example, to include links to external pages in menus)
* Generated HTML files can be automatically checked if they are standard conform
* Automatic rebuilding of the website when a source path changes
* Automatic generation of needed directory index files
[1]: https://github.com/gettalong/webgen-content_processor_emoticon-bundle