Oxypogon.js is a simple static website/blog assembling utility that is built over Node.js
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
.gitignore
README.md
package.json

README.md

Oxypogon

Oxypogon.js is a simple static website/blog assembling utility that is build over Node.js.

I decided to make a simple blog engine named Colibri years ago (maybe near 2009), but unfortunately this name on npm is already taken. So I've browsed wiki and some sites about birds and found a beautiful and a bit grumpy hummingbird (colibri) which name is Oxypogon. That is, meet Oxypogon.js!

The development is in progress, so it can be unsafe to use the code right now.

Features

  • sources in markdown
    • support for metadata like in MultiMarkdown format
  • assembling static pages
  • lists of pages
  • tags and lists of tags
  • ...
  • rather smart content processing
    • external links are marked with target="_blank"

Underlying technologies

Oxypogon.js was meant to be as simple and lightweight as possible. So there are just a few libraries used for development:

  • all content is extracted from markdown sources using marked
    • I also use metamd to parse out the metadata from the articles
  • as Oxypogon deals with filesystem and file patterns it uses:
    • glob for pattern recognition
    • mkdirp for recursive directory creation
  • moment.js for date formatting
  • jade (or Pug? I don't understand why is jade package available yet) for templating

TODO

features:

  • complete the tags functionality, especially in-menu display which was removed when switching to lists config instead of a separate menu config
  • add RSS support
  • make possible pagination for lists
  • enable inserting dynamic parts into pieces
  • make sure that preview creation works like was desired
  • rebuild only pages that were actually changed since the last rebuild?
  • add support for article writing duration (from-to)
  • content:
    • what to do with articles that are less than preview size?
    • make inserting lists into the preview possible (maybe by entering the special 'list mode' which will collect opening and closing tokens respectively)

to think of:

  • use the first h2 in the article as a preview if no one was specified
    • what to do when h2 never appears?
  • live editing

development:

  • figure out a way to pass tags
  • try some options for templating to find the best way of passing data
  • set default templates in config, not it the sources
  • simplify config

promotion:

  • write readme with examples and options
    • mention added support for copying static pages
  • make a site on github pages