a simple website generator
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
project
spec
.gitignore
.rspec
.rubocop.yml
.travis.yml
Gemfile
Guardfile
History.rdoc
License.txt
README.rdoc
Rakefile
smallcage.gemspec

README.rdoc

SmallCage – a simple website generator

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