While Wyam is certainly still usable, it's been rebranded and rebooted as Statiq with a ton of improvements. You almost certainly want to look there unless you're already a Wyam user.


Executes sequences of modules depending on whether the input document contains a specified value.
When creating a Switch module you specify a delegate that will get an object for each document. Cases are then defined via fluent methods that compare the returned object for each document against a supplied object (or array). If the defined object or any of the objects in the array for the case equal the one for the document, the modules in the case are executed. The output of the module is the aggregate output of executing the specified modules against documents matching each case. If a document document match a case, it is output against the default case (if defined) or output without modification (if no default is defined).


  • Switch(DocumentConfig value)

    Defines the delegate that will be invoked against each input document to get the case comparison value.

    • value

      A delegate that returns an object to compare cases against.

Fluent Methods

Chain these methods together after the constructor to modify behavior.

  • Case(Object value, params IModule[] modules)

    Defines a case.

    • value

      The value to compare to the one returned by the document delegate. Must be a primitive object or an array of primitive objects.

    • modules

      The modules to execute if the case object (or any objects in the array) matches the document object.

  • Default(params IModule[] modules)

    Defines modules to execute against documents that don't match a case.

    • modules

      The modules to execute against documents that don't match a case.