Sha256: 1c021a85e48a83974b45db30104c6adc8af87148ef9ac19ae68d27058e6e79a0

Contents?: true

Size: 1.98 KB

Versions: 2

Compression:

Stored size: 1.98 KB

Contents

---
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 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.

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 `<textile>` tags!
{.important}

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
gettalong-webgen-0.5.8.20090507 doc/contentprocessor/erb.page
webgen-0.5.8 doc/contentprocessor/erb.page