balloon-generator
Advanced tools
Comparing version 0.10.0 to 0.11.0
@@ -19,3 +19,6 @@ var fs = require('fs'); | ||
var ARCHIVE_PAGES_REGEX = /(index.html|rss.xml)$/; | ||
var BALLOON_CONFIG_PATH = 'balloon.json'; | ||
/** MAIN ENTRYPOINT **/ | ||
@@ -31,4 +34,3 @@ module.exports.run = function () { | ||
var CONFIG_PATH = 'balloon.json'; | ||
var BALLOON_CONFIG = getConfig(CONFIG_PATH); | ||
var BALLOON_CONFIG = getConfig(BALLOON_CONFIG_PATH); | ||
@@ -44,17 +46,36 @@ var SOURCE_PATH = program.source || BALLOON_CONFIG.source; | ||
} else if (program.serve && BUILD_PATH) { | ||
watch(SOURCE_PATH, BUILD_PATH, function (err, changedPath) { | ||
if (err) { return console.log('Failed to watch files:', err); } | ||
rimraf(BUILD_PATH, function (err) { | ||
if (err) { return console.log('Failed wipe build directory:', err); } | ||
// Reload the things | ||
// TODO: Move this somewhere else | ||
BALLOON_CONFIG = getConfig(CONFIG_PATH); | ||
SOURCE_PATH = program.source || BALLOON_CONFIG.source; | ||
BUILD_PATH = program.output || BALLOON_CONFIG.build; | ||
CONTENT_PATH = path.join(SOURCE_PATH, 'content'); | ||
watch(SOURCE_PATH, BUILD_PATH, function (err, changedPath) { | ||
if (err) { return console.log('Failed to watch files:', err); } | ||
rimraf(BUILD_PATH, function (err) { | ||
if (err) { return console.log('Failed wipe build directory:', err); } | ||
// Reload the things | ||
// TODO: Move this somewhere else | ||
BALLOON_CONFIG = getConfig(BALLOON_CONFIG_PATH); | ||
SOURCE_PATH = program.source || BALLOON_CONFIG.source; | ||
BUILD_PATH = program.output || BALLOON_CONFIG.build; | ||
CONTENT_PATH = path.join(SOURCE_PATH, 'content'); | ||
var pagePaths = getPagePaths(path.join(SOURCE_PATH, CONTENT_PATH), '.'); | ||
var pagePaths; | ||
// Only static was changed. Don't render again | ||
if (changedPath && changedPath.match(/^static\/.*/)) { | ||
pagePaths = null; | ||
} | ||
// Single content file was changed that isn't an archive file (ex: index.html) | ||
else if ( | ||
changedPath && | ||
changedPath.match(CONTENT_PATH) && | ||
!changedPath.match(ARCHIVE_PAGES_REGEX) | ||
) { | ||
pagePaths = [ path.relative(CONTENT_PATH, changedPath) ]; | ||
} | ||
// No specific file changed. Compile all again. | ||
else { | ||
pagePaths = getPagePaths(path.join(SOURCE_PATH, CONTENT_PATH), '.'); | ||
} | ||
renderPages(BALLOON_CONFIG.defaults, CONTENT_PATH, BUILD_PATH, pagePaths, function (err) { | ||
@@ -77,6 +98,11 @@ var port = parseInt(program.serve, 10); | ||
console.log('\x1b[45m * \x1b[0m\033[1m build:\033[0m ' + msg); | ||
renderPages(BALLOON_CONFIG.defaults, CONTENT_PATH, BUILD_PATH, pagePaths, function (err) { | ||
static(SOURCE_PATH, BUILD_PATH, function (err) { | ||
if (err) { return console.log('Failed to copy static files:', err); } | ||
// Done | ||
rimraf(BUILD_PATH, function (err) { | ||
if (err) { return console.log('Failed wipe build directory:', err); } | ||
renderPages(BALLOON_CONFIG.defaults, CONTENT_PATH, BUILD_PATH, pagePaths, function (err) { | ||
static(SOURCE_PATH, BUILD_PATH, function (err) { | ||
if (err) { return console.log('Failed to copy static files:', err); } | ||
// Done | ||
}); | ||
}); | ||
@@ -99,6 +125,6 @@ }); | ||
var extensionMap = { | ||
'.md': '.html' | ||
}; | ||
var extensionMap = { '.md': '.html' }; | ||
if (!pagePaths || pagePaths.length === 0) { return callback(null); } | ||
for (var i = 0; i < pagePaths.length; i++) { | ||
@@ -119,4 +145,3 @@ var pageFile = pagePaths[i]; | ||
if (pagePath.indexOf('index.html') >= 0 || pagePath.indexOf('rss.xml') >= 0) { | ||
// This is an archive page | ||
if (pagePath.match(ARCHIVE_PAGES_REGEX)) { | ||
lastPages.push(pageConfig); | ||
@@ -123,0 +148,0 @@ continue; |
{ | ||
"name": "balloon-generator", | ||
"version": "0.10.0", | ||
"version": "0.11.0", | ||
"description": "Basic static site generator", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
22341
398