UNPKG

toosolo

Version:

基于Node.js的静态博客程序

55 lines (39 loc) 1.63 kB
var path = require('path'), fs = require('fs'), jade = require('jade'), moment = require('moment'), markdown = require('markdown-js').markdown, util = require('../util.js'), tooSolo = global.tooSolo, tmplPath = tooSolo.config.skinPath, pagePath = tooSolo.config.distPath + '/page'; var buildArticles = function(){ util.rmdirSyncRecursive(pagePath,function(){}); util.mkdirSyncRecursive(pagePath); var pageTmpl = fs.readFileSync(tmplPath + '/html/page.jade','utf-8'), pageCompileFunc = jade.compile(pageTmpl,{filename:tmplPath + '/html/page.jade',pretty:true}), compileLocals = {}; compileLocals.basePath = '..'; compileLocals.blogName = tooSolo.config.blogName; compileLocals.blogSubTitle = tooSolo.config.blogSubTitle; compileLocals.blogKeywords = tooSolo.config.blogKeywords; compileLocals.blogDescription = tooSolo.config.blogDescription; compileLocals.pages = tooSolo.blog.pages; compileLocals.categories = tooSolo.blog.categories; tooSolo.blog.pages.forEach(function(page){ console.log(' ' + page.url + '.html'); _buildArticle(page,pageCompileFunc,compileLocals); }); } function _buildArticle(page,pageCompileFunc,compileLocals){ compileLocals.title = page.title; compileLocals.pageTitle = compileLocals.title + ' - ' + compileLocals.blogName; compileLocals.pubDate = moment(page.date).format('YYYY-MM-DD HH:mm:ss'); compileLocals.content = markdown(page.content); fs.writeFileSync(pagePath + '/' + page.url + '.html',pageCompileFunc(compileLocals)); } module.exports = function(callback){ console.log('\n Pages页面构建……'); buildArticles(); callback(); }