0.1.3 • Published 10 years ago
noddity-view-model v0.1.3
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])
butleris an instantiated noddity butler.rendereris an instantiated noddity renderer.ractiveTemplateis a ractive-flavored string template. (Like a handlebars template.)ractiveDatais the initial data that the internal ractive instance starts with. Optional, defaults to{}.- Returns
setCurrent.
setCurrent(page, cb)
pageis the markdown page that should be rendered.cbis a function that has the following arguments: -erris an error, ornull. -htmlis 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
ractiveDataobject:
ractiveTemplate = '{{html}}\n{{current}}\n{{date}}\n{{page}}\n{{postList}}\n{{thingy}}'
ractiveData = { thingy: 3 }install
With npm do:
npm install noddity-view-model