noddity-view-model
v0.1.3
Published
A view model for noddity
Downloads
2
Readme
noddity-view-model
example
var level = require('level-mem')
var Retrieval = require('noddity-fs-retrieval')
var Butler = require('noddity-butler')
var Renderer = require('noddity-renderer')
var ViewModel = require('noddity-view-model')
var renderTemplate = require('fs').readFileSync('index.html', { encoding:'utf8' })
var butlerOpts = {
refreshEvery: 600000,
cacheCheckIntervalMs: 10000
}
var db = new level('./database')
var retrieve = new Retrieval('./www/')
var butler = new Butler(retrieve, db, butlerOpts)
var renderer = new Renderer(butler, String)
var setCurrent = new ViewModel(butler, renderer, renderTemplate)
setCurrent('whatever-page.md', function (err, html) {
document.getElementById('page').innerHTML = err ? err.message : html
})
api
var ViewModel = require('noddity-view-model')
var setCurrent = ViewModel(butler, renderer, ractiveTemplate[, ractiveData])
butler
is an instantiated noddity butler.renderer
is an instantiated noddity renderer.ractiveTemplate
is a ractive-flavored string template. (Like a handlebars template.)ractiveData
is the initial data that the internal ractive instance starts with. Optional, defaults to{}
.- Returns
setCurrent
.
setCurrent(page, cb)
page
is the markdown page that should be rendered.cb
is a function that has the following arguments:err
is an error, ornull
.html
is the compiled html.
notes on templates
Here is a list of things you can use in your template:
{{html}}
{{current}}
{{date}}
{{page}}
{{postList}}
- Properties on the
ractiveData
object:
ractiveTemplate = '{{html}}\n{{current}}\n{{date}}\n{{page}}\n{{postList}}\n{{thingy}}'
ractiveData = { thingy: 3 }
install
With npm do:
npm install noddity-view-model