mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
44 lines
No EOL
1.2 KiB
JavaScript
44 lines
No EOL
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
var hogan = require('hogan.js')
|
|
, fs = require('fs')
|
|
, prod = process.argv[2] == 'production'
|
|
, title = 'Bootstrap'
|
|
|
|
var layout, pages
|
|
|
|
// compile layout template
|
|
layout = fs.readFileSync(__dirname + '/../templates/layout.mustache', 'utf-8')
|
|
layout = hogan.compile(layout, { sectionTags: [{o:'_i', c:'i'}] })
|
|
|
|
// retrieve pages
|
|
pages = fs.readdirSync(__dirname + '/../templates/pages')
|
|
|
|
// iterate over pages
|
|
pages.forEach(function (name) {
|
|
|
|
if (!name.match(/\.mustache$/)) return
|
|
|
|
var page = fs.readFileSync(__dirname + '/../templates/pages/' + name, 'utf-8')
|
|
, context = {}
|
|
|
|
context[name.replace(/\.mustache$/, '')] = 'active'
|
|
context._i = true
|
|
context.production = prod
|
|
context.title = name
|
|
.replace(/\.mustache/, '')
|
|
.replace(/\-.*/, '')
|
|
.replace(/(.)/, function ($1) { return $1.toUpperCase() })
|
|
|
|
if (context.title == 'Index') {
|
|
context.title = title
|
|
} else {
|
|
context.title += ' · ' + title
|
|
}
|
|
|
|
page = hogan.compile(page, { sectionTags: [{o:'_i', c:'i'}] })
|
|
page = layout.render(context, {
|
|
body: page
|
|
})
|
|
|
|
fs.writeFileSync(__dirname + '/../' + name.replace(/mustache$/, 'html'), page, 'utf-8')
|
|
}) |