/staticsitegenerators-list

A comprehensive, partially automatically generated comparison of static site generators

Primary LanguageJavaScriptOtherNOASSERTION

Static Site Generators Listing

Travis CI Build Status NPM version NPM downloads Dependency Status Dev Dependency Status
Patreon donate button Open Collective donate button Gratipay donate button Flattr donate button PayPal donate button Bitcoin donate button Wishlist browse button
Slack community badge

A comprehensive, partially automatically generated comparison of static site generators with some minimal meta data about them

Contributing

Requirements

There are generally three types of Content Management Systems:

  1. Dynamic Servers (e.g. WordPress, Ghost, DocPad, Harp) — these allow you to have re-render on every request abilities
  2. Flat File Content Management Systems (e.g. Yellow, Techy) — these allow you to write your content as files
  3. Static Site Generators (e.g. Jekyll, DocPad) — these generate a static website from your input that you can deploy anywhere

Currently, this listing is only for projects that relate to Flat File Content Management Systems and/or Static Site Generators, but not for projects which relate only to Dynamic Servers (such as WordPress and Ghost).

Adding

Entries are stored within the list.json file.

Accepted project fields:

  • name the project's name
  • github the slug of the GitHub repository if applicable
  • gitlab the slug of the GitLab repository if applicable
  • bitbucket the slug of BitBucket repository if applicable
  • website the project's website if they have one, if the automatic website fetch is incorrect you can specify as false
  • language the project's primary programming language if applicable
  • description the project's description
  • created_at the project's date of creation in ISO format
  • updated_at the project's date of last update in ISO format
  • license the project's SPDX license code
    • if license is missing, omit this field
    • if license is not applicable because it is a commercial service, use false
    • if multiple licenses, see the SPDX parser for formatting
  • is should be one of the following:
    • flat file cms a project that takes in local file content, renders it, and exposes the rendered contents via its own web server, without exporting to static files that can be deployment elsewhere, such as Grav and Harp
    • static site generator a project that takes in local file content, renders it, and exports it into a static file content for deployment somewhere, with or without a bundled web server, such as Jekyll and DocPad
    • static site importer a project that takes in local or dynamic content and imports it into a database, such as a file system to Contentful importer
    • static site exporter a project that takes in database content and generates a static website with it, such as a Contentful or Wordpress to static website exporter
    • static site host a project that hosts static site content, such as GitHub Pages or Surge.sh
    • static site editor a project that a custom editing experience for static website content, such as Contentful and Prose.io, or even Grav's admin plugin
    • other if some other type of project that is related to flat-file content management systems or static website generators
  • extensible should be true or false providing whether or not the project provides a way for users to add new features
  • defunct can be true to signal that the project is no longer functioning or receiving support

Dates should be in ISO format which looks like this 2006-08-18T16:00:00.000Z. Conversion can be done with JavaScript using console.log(new Date('19-Aug-2006').toISOString()) or via the command line using Node.js via node -e "console.log(new Date('19-Aug-2006').toISOString())".

At the very least, the following fields are required:

  • name
  • tags
  • github or gitlab or bitbucket or website
  • is will output a warning if missing, but is required for all new entries

If github is specified, the following fields should only be specified if GitHub's data is incorrect:

  • license
  • website
  • language
  • description
  • created_at
  • updated_at

If gitlab is specified, the following fields should only be specified if GitLab's data is incorrect:

  • language
  • description
  • created_at
  • updated_at

The following fields are automatic and only apply to our rendered listing:

  • stars
  • forks
  • watchers

Testing

When you submit your pull request, your submission will be automatically tested, so no need to test locally, however if you do wish to, you can:

  1. Install Node.js (5-15 minutes)

  2. Fork the project and clone your fork - guide (5 minutes)

  3. Install local dependencies (1 minute)

npm install
  1. Running the tests (1 minute)
npm test
  1. Make any changes that the tests indicate, commit your changes, and submit

Usage

Using the npm package is done like so:

const ssgs = require('staticsitegenerators')

// fetch remote data and render it
ssgs.remote(opts, function (err, data) {
  ssgs.render(data, opts, function (err, result) {
    console.log(result)
  })
})

// fetch the local data, using its last render
ssgs.local(opts, function (err, result) {
  console.log(result)
})

History

Discover the release history by heading on over to the HISTORY.md file.

Backers

Maintainers

These amazing people are maintaining this project:

Sponsors

No sponsors yet! Will you be the first?

Patreon donate button Open Collective donate button Gratipay donate button Flattr donate button PayPal donate button Bitcoin donate button Wishlist browse button

Contributors

These amazing people have contributed code to this project:

License

Unless stated otherwise all works are:

and licensed under: