Static Site Generators Research

Static Site Generators Research

Motivations For Converting To SSG

  • reduce system admininstration burden

    • security, updates, etc

  • very few pages don't need a CMS (e.g. clinic: 4 pages)

Candidate Sites

Site

Current

Convert to SSG?

Site

Current

Convert to SSG?

idrc.ocad.ca

Joomla

want to move away from Joomla, but need ease of updating (Pat, Jutta, etc)

www.fluidproject.org

CMS Made Simple

floeproject.org

Hard-coded; github pages

Infusion Documentation

Confluence

use sphinx/restructured text or something like it? might need longer discussion

wiki.gpii.net

MediaWiki

 probably not

handbook.floeproject.org

MediaWiki

 spam a problem; want ePub exporting options; community contribution was the intention

wiki.fluidproject.org

Confluence

inclusivedesign.ca

Wordpress

partner contribution is a goal

dev.inclusivedesign.ca

Wordpress

see above

booking.inclusivedesign.ca

PHP Schedule It

needs server back end

fluidproject.org/blog

Wordpress

post this one to the list for discussion

aegis.idrc.ocad.ca

CMS Made Simple

need to find out maintenance requirements (who edits, how often...) (Jan? Joseph?)

mobile-accessibility.idrc.ocad.ca

Wordpress

(ask Jan? Jorge?)

wiki.mobile-accessibility.idrc.ocad.ca

Mediawiki

Jan? Jorge?

snow.idrc.ocad.ca

Drupal

deep.idrc.ocad.ca

Wordpress

snowvids.idrc.ocad.ca

Wordpress

(alternative is to create a VideoPlayer drupal plugin)

adod.idrc.ocad.ca

Drupal

double-check with Jan

stretch2.idrc.ocad.ca

Drupal

Jan?

websavvy.idrc.ocad.ca

Drupal

double-check with Jan

wiki.inclusivedesign.ca

MediaWiki

check with Jutta - done √ Jess 3/12/14 – this site can be taken down as long as links are updated on inclusivedesign.ca and content is placed there, somewhere

clinic.idrc.ocad.ca

Wordpress

bell-community.idrc.ocad.ca

MediaWiki

with password protection; Jan?

Selection Criteria

Criteria

Reason

Criteria

Reason

Easy enough for step-by-step instructions

Non-experts may be asked to add content.

The benefit of using a CMS like Wordpress is that anyone can edit content with a WYSIWYG editor and publish their changes. Ideally we should offer a similar experience to those who prefer not to use a text editor and Git client.

This may be less important; we might be willing to sacrifice ease-of-updating in favor of ease-of-maintaining. We'd just pair non-techy editors with tech people.

Be able to handle complex site navigation; breadcrumbs, table of content, sitemap, etc.

We would like to be able to use it for documentation.

It's possible that with simplified information architecture for the docs, complex navigation might not be such an issue.

Should be able to easily support plugins and integrate with custom content

Our documentation site will need to support structured content, as well as directly hosting demonstrations of our components inline in the site itself

Easily extensible

The system we select should have some kind of plugin or extension mechanism that will easily allow us to fill in features that it might not have, but that are important for a particular site or context. Ideally this should be relatively well-aligned with Infusion so that we can use our tools and then use these extensions that we build as case studies of the power of Infusion, etc.

Less intrusive templating system

Although we're willing to live for the medium term with a more technical workflow, in the long run we will want to support users with some kind of simple GUI editor. There are a lot of GUI editors (e.g. CK Editor, Aloha, Content Editable, etc.) that are capable of authoring ordinary HTML. If the system we choose doesn't require large amounts of custom in-markup code to create pages, this will make it easier for us or the generator's developers to add GUI tools in the future.

Smooth workflow with Github repositories and easily hosting sites on our cloud infrastructure

While we aren't big users of Github Pages, we are really into Git and Github. Any tool we use should work smoothly with Git, and allow us to create git hooks that will automatically publish changes to live site. Similarly, the solution we choose should be easy for Avtar to provision a base VM image for, allowing any of us to quickly spin up a live VM from our cloud dashboard and manage our own sites as needed.

Be able to handle news or blog style content easily

Project sites are updated periodically with news content

Templating

Make it easier to create multiple pages that have a desired layout

Sufficient power for layout

Some content has complex layout; simplified languages like Markdown, etc. might not be able to handle it

Open Source

Preferably something open that has an established community. This will help us if we encounter any issues a long the way, as well as provide a means for us to fix issues ourselves if need be.

Be able to define a default theme

We should be able to have a default theme, that can be used when we need to create a site quickly. This way we can maintain a professional and consistent look.

Full Text Search

Sites with a lot of content might require full text search. Would it be acceptable to use an option like Google Custom Search (ads involved) instead of maintaining our own search indices?

Node.js-based

Ideally, we'd like to use a system that is built with Node.js. There are a couple motivators for this, including the extensibility point above. A static site generator written in Node.js could be easily extended with features written using Infusion and other tools we already use every day (e.g. Grunt). Even more interestingly, we might consider the long-term possibility of integrating static site generation features into Kettle, so that developers could easily deploy blended sites that consistent mostly of static HTML but also include JSON feeds or some dynamically-generated pages. Imagine, for example, of a static site that contained demos for Infusion, but also allowed users to submit Github links to cool demos they'd created of Infusion.

The other advantage of a Node.js process is that it's tooling we're familiar with and can anticipate. We are increasingly comfortable with things like npm and managing packages, and the new Grunt-based Infusion build scripts mean that a working Node.js instance will typically be available on most Infusion developers' machines already.

Of course, if there was an insanely compelling solution written in some other language or platform, we'd consider it.

Support for Twitter feeds

Several of the sites we're considering converting include Twitter feeds.

 

Evaluation Notes

 

Inspiration

https://readthedocs.org/

http://www.openstack.org/

http://developmentseed.org/blog/2012/june/25/prose-a-content-editor-for-github/