--- title: Webgen::ContentProcessor::Erb --- ## Description This processer uses ERB (embedded Ruby) to process content. For detailed information about ERB have a look at its documentation by executing `ri ERB` or the [ruby documentation site](http://www.ruby-doc.org/)! You can use the special object `context` in your ERB code which provides the whole rendering context and, for example, the following useful methods: * `website`: Provides access to the `Webgen::Website` object which can be used to access all aspects of the currently rendered website. * `node` (or `content_node`): The node that gets currently rendered. Should be used for retrieving meta information. * `ref_node`: The reference node which is the source of the ERB code that is executed. Should be used, for example, for resolving paths. * `dest_node`: The node in which the result gets inserted. Should be used for calculating relative paths. For a complete list of supported methods have a look at the API documentation for [Webgen::Context](../rdoc/Webgen/Context.html). Here is a small usage example. The following put in a page file Counting 5 items dynamically: <%% for i in 1..5 %> * item <%%= i %> <%% end %> Outputting all meta information: <%% context.node.meta_info.each do |k,v| %> * <%%= k %> = <%%= v %> <%% end %> ... will give the result: Counting 5 items dynamically: <% for i in 1..5 %> * item <%= i %> <% end %> Outputting all meta information: <% context.node.meta_info.each do |k,v| %> * <%= k %> = <%= v %> <% end %> The second line shows the first form of the ERB tags which executes Ruby code but does not output anything: it just starts a `for` loop. On the third line the second form of ERB tags is used to output the result of the Ruby code (note the equation sign!). And the fourth line completes the `for` loop by adding the needed `end` keyword. > You may need to ensure that the ERB start and end tags are not processed by the content > processor. For example, when using the RedCloth content processor, you may need to surround the > ERB code with `` tags! {:.important}