cryonax
v0.2.12
Published
static html site generator
Downloads
3
Readme
Installation
npm install cryonax -g
Usage
Create a new website in current directory
cryonax init
cryonax init -o path/to/dir
Create a sample website (blog)
cryonax example
cryonax example -o path/to/dir
Create a new document
cryonax doc
cryonax doc -o path/to/dir
Create a new view
cryonax view
cryonax view -o path/to/dir
Build website in current directory
cryonax build
cryonax build -i path/to/dir -o path/to/output
Documents
A cryonax document is a text file with (markdown) content and meta data that can be queried.
A document looks like this:
---
{
"type": "blog",
"title": "First entry!",
"date": "Date(2 february 2014)",
"labels": ["politics", "opinion"]
}
---
the content of my blog post
At the top of the document is a meta-data section. Meta data is represented as a JSON object.
In addition to regular JSON data types, you can use "Date()" to create a Date object.
Views
A cryonax view is a HTML template with embedded javascript in <%
and %>
tags.
<h1><% print(model.meta.title); %></h1>
is rendered as
<h1>First entry!</h1>
Build Script
The cryonax build script is named "build.js" and contains instructions to generate your website.
API
console
Native console functions
require()
Native require function
document(path)
Retrieve a document by path
var doc = document("blog/2014/first-post.md");
Properties
doc.name
- the filename of the documentdoc.meta
- the metadata associated with the document (e.g.doc.meta.title
)doc.content
- the rest of the document contents
documents()
Retrieve all documents
var articles = documents()
.filter(function(doc) { return doc.meta.type == "blog"; });
view(path)
Retrieve a view by path
var template = view("blog/article.html");
Properties
view.name
- the filename of the view
Methods
view.render(model)
- render the view, returns a string
Example
// build.js
view("page/head.html").render({ title: "My Blog" });
// page/head.html
<h1><% print(model.title); %></h1>
markdown(text)
Convert markdown to html
var html = markdown(document("about.md").content);
Cryonax uses marked
as default markdown parser. If you want to use your own markdown parser, you'll have to require
it yourself.
Cryonax uses highlight.js
as syntax highlighter by default.
summary(html, length, continuedText)
Retrieve a summary of a section of html
html
The HTML text to summarizelength
The maximum length of the summarycontinuedText
Text to append to the summary if the html was clipped
var html = markdown(document("about.md").content);
var text = summary(html, 10, "[...]");
// text = "Lorem ipsum [...]"
print(text)
Outputs a string (only available in views)
save(path, contents)
Save a file (only available in build.js)