blaster
A router for generating a static site that can turn into a single page app.
Last updated 4 years ago by shama .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install blaster 
SYNC missed versions from official npm registry.

blaster

A router for generating a static site that can turn into a single page app.

build status NPM version experimental

example

var Router = require('blaster')
var createElement = require('base-element')
var fs = require('vinyl-fs')

// Pass routes that return virtual nodes or HTML
var router = new Router({
  '/': function (params, done) {
    return createElement().render(function () {
      return this.html('button', 'click me')
    })
  },
  '/about.html': function (params, done) {
    done(null, '<strong>about page</strong>')
  }
})

// Generate static pages to the ./dist folder
router.generate().pipe(fs.dest('./dist'))

Which will generate the HTML files:

./dist
├── about.html
└── index.html

From there you can bundle the same router above using whatever tooling you like. The static files get served and then the bundled client side code takes over routing.

See the example folder for a more in depth example.

api

var blaster = new Blaster([routes, options])

Creates a new instance of blaster which inherits base-router. Please check the docs there for all available options and methods.

  • routes - An object literal of routes to create.
  • options - An object literal to configure operation.

blaster.addRoute(name, model)

Adds a new route. name is the pathname to our route and model is a function that resolves the data for the route.

router.addRoute('/user/:id', function (params, done) {
  done(null, params.id)
})

blaster.generate([options])

Returns a stream of vinyl files for each route.

blaster.generateRoute(route[, options])

Returns a stream of a vinyl file for the given route.

blaster.files(folder[, parseFile])

Indicates a folder with static files to be included. Useful for dynamic segments in routes such as /posts/:slug.

parseFile is an optional callback to parse the files as they stream:

router.files('./markdown-files/', function (file, enc, next) {
  file.contents = marked(file.contents)
  this.push(file)
  next()
})

license

(c) 2015 Kyle Robinson Young. MIT License

Current Tags

  • 1.1.0                                ...           latest (4 years ago)

3 Versions

  • 1.1.0                                ...           4 years ago
  • 1.0.0                                ...           4 years ago
  • 0.1.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (8)
Dev Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |