index.js 907 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env node
  2. var hogan = require('hogan.js')
  3. , fs = require('fs')
  4. , prod = process.argv[2] == 'production'
  5. var layout, pages
  6. // compile layout template
  7. layout = fs.readFileSync(__dirname + '/../templates/layout.mustache', 'utf-8')
  8. layout = hogan.compile(layout, { sectionTags: [{o:'_i', c:'i'}] })
  9. // retrieve pages
  10. pages = fs.readdirSync(__dirname + '/../templates/pages')
  11. // iterate over pages
  12. pages.forEach(function (name) {
  13. if (!name.match(/\.mustache$/)) return
  14. var page = fs.readFileSync(__dirname + '/../templates/pages/' + name, 'utf-8')
  15. , context = {}
  16. context[name.replace(/\.mustache$/, '')] = 'active'
  17. context._i = true
  18. context.production = prod
  19. page = hogan.compile(page, { sectionTags: [{o:'_i', c:'i'}] })
  20. page = layout.render(context, {
  21. body: page
  22. })
  23. fs.writeFileSync(__dirname + '/../' + name.replace(/mustache$/, 'html'), page, 'utf-8')
  24. })