Skip to content

saito/smallcage

Repository files navigation

SmallCage – a simple website generator

<img src=“https://travis-ci.org/saito/smallcage.png” alt=“Build Status” />

SmallCage is a simple, but powerful website generator. It converts content and template files, which has common elements in a website, to a plain, static website. No database, no application container, and no repeat in many pages is needed. You can keep your site well with very little work.

With SmallCage, you can

  • simply separate your template from content.

  • convert your content to a plain, static website. It’s easy to serve and test.

  • generate multi pages from a single CSV file or even Google Docs spreadsheet.

  • share your template with various web applications: Ruby on Rails, WordPress, and MovableType.

  • manage your website with a source code management system like a Git, Subversion, and CVS.

  • customize the rules of convert with Ruby.

Please visit our wiki for more detailed discussion.

Installation

$ sudo gem install smallcage

Usage

If successfully installed, smc command will be available.

$ smc
Usage: smc <subcommand> [options]
SmallCage 0.1.9 - a simple website generator
Subcommands are:
    update [path]                    Build smc contents.
    clean  [path]                    Remove files generated from *.smc source.
    server [path] [port]             Start HTTP server.
    auto   [path] [port]             Start auto update server.
    import [name|uri]                Import project.
    export [path] [outputpath]       Export project.
    uri    [path]                    Print URIs.
    manifest [path]                  Generate Manifest.html file.

Options are:

    -h, --help                       Show this help message.
    -v, --version                    Show version info.

Create document root.

$ mkdir htdocs
$ cd htdocs

Import default project.

$ smc import
Import: base
Create:
  /_smc
  /_smc/helpers
  /_smc/helpers/base_helper.rb
  /_smc/helpers/site_helper.rb
  /_smc/templates
  /_smc/templates/default.rhtml
  /_smc/templates/footer.rhtml
  /_smc/templates/header.rhtml

Import these files?[Yn]: y
A /_smc
A /_smc/helpers
A /_smc/helpers/base_helper.rb
A /_smc/helpers/site_helper.rb
A /_smc/templates
A /_smc/templates/default.rhtml
A /_smc/templates/footer.rhtml
A /_smc/templates/header.rhtml
:

Publish all smc files.

$ smc update
A /index.html
A /sample/index.html
A /sample/redirect.html
A /sample/sub/contents.html
A /sample/sub/index.html

Start HTTP server.

$ smc server . 8080

…and access localhost:8080