Building static empires with node.js.
[sudo] npm install -g romulus
Romulus is a static site generator (like jekyll) featuring:
You should use romulus if you want a simple tool for creating static github pages with node.js.
Create a new directory, and inside this directory create the folder structure below:
Note: Only the
pages folder is required, the other folders are optional.
Now create a file called
pages/index.html and put some HTML into it:
Run this to build your static site:
$ romulus build my-site
You should now see a new folder called
my-site containing your
page exactly as you wrote it.
Note: If you ommit the
my-site argument, romulus will default to naming
your output folder
For testing your site, you should run the local development server at http://localhost:8080/ by typing this:
In order to make this more interesting, let's say you want to wrap your new
page in a fancy layout. To do this you need to change your
file like this:
<% this.layout = 'default' %>Hello World
Now you need to create the layout itself, so add a file called
My static empire<!-- Can be a plain css file or rendered from less, continue reading --><!-- You can include any JS / CSS files, main.js / main.css are just examples -->My Header<%- page %>
That's it, you should now see your page being rendered inside your template!
Let's say you want to set a
title variable in your page that should be used
by the layout. For this, add this to your page template:
<% this.title = 'My title'; %>
And output it in your layout like this:
<%= this.title %>
Now that you have this wonderful site, you probably want to style it. To do so,
create a file called
Sweet, your headline is now featuring my favorite color!
Any file placed in the
public folder will be included at the top level of the
build output folder. The local development server also supports serving them.
romulus natively supports
github flavored markdown
for page files. Using markdown is as easy as creating a file with
.md extension like
pages/markdown-rocks.md and adding some markdown to it:
<% this.layout = 'default'; %>Markdown is **fun**, and you can still use EJS inside of your markdowntemplates.
This page now will be served at
Deploying to github pages is as simple as:
This should work well for project pages, but has not been tested for organization pages yet.