Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Static Site Publisher

Creates static web sites from raw html, markdown, generic wiki markup, tomboy notes, images and other resources.

A generated site can have an RSS feed and a basic blog, an image feed and slideshow, and analytics support.

Deprecated in Favour of Soapbox

The most useful features of SPublisher have now been migrated to the sbt environment in Soapbox. i Some things, such as RSS, were dropped. Markdown replaces the tomcat notes utility for authoring content.

Recent Changes

  • SPublisher has gained Markdown support. The pegdown markdown parser is a dependency.
  • Now compiles with scala 2.9.x or even recent 2.10 milestones abeit with warnings. The previous version needed scala 2.7 which seems antique now.
  • Builds with sbt. (Run sbt eclipse to generate an eclipse project.)

Rationale and Alternatives

There are many, many alternatives. One could use sbt with the lwm plugin or similar. Or Jekyll, which github pages uses.

SPublisher represents the particular text transformations and tools needed by the author.

It was a first scala project or at least an early one. I think the code is pretty clean but it is not really approved scala style. It is something like python in scala.


A site generated with this software and hosted on S3 can be seen here:

Peruse the examples directory tree and ExampleSite.scala for another. The output is in example/distrib while the inputs are in example/resource example/tomboy and example/sitestyle .

You can edit the inputs and regenerate the output by running sbt run .

An example slideshow and image feed generator can be seen in ExampleGallery.scala .


  • Copy the example directory tree and ExampleSite.scala .
  • Customise the site generation object.
  • Add content.

The site is configured by combining Publisher traits into a site generation object.

  • Each Publisher trait is responsible for some aspect of site generation. See the trait comment for a synopsis.

  • A trait will declare abstract members that it expects others to implement (dependancies).

  • A trait will implement members used by other traits (dependents).

  • Some abstract members represent configuration constants that should be defined in the site object.


A static site generator, predecessor to Soapbox.






No releases published


No packages published