statichog
Version:
A simple tool that lets users create blogs on static hosting services.
54 lines (42 loc) • 1.45 kB
JavaScript
const fs = require("fs");
const path = require("path");
const HTMLParser = require("node-html-parser");
function runCommand() {
// Put in some safe guards
if (process.argv[3] == undefined) return -1;
if (process.argv[4] == undefined) return -1;
if (!fs.existsSync(path.join(process.cwd(), process.argv[3]))) return -1;
if (!fs.existsSync(path.join(process.cwd(), process.argv[4]))) return -1;
var fileData = HTMLParser.parse(
fs.readFileSync(path.join(process.cwd(), process.argv[3])).toString()
);
var castData = JSON.parse(
fs.readFileSync(path.join(process.cwd(), process.argv[4])).toString()
);
for (var item in castData) {
var itemType = typeof castData[item];
switch (itemType) {
case "object":
var domItem = fileData.querySelector("#body");
if (domItem !== null) {
for (var i = 0; i < castData[item].length; i++) {
var domAppend = HTMLParser.parse(castData[item][i]);
domItem.appendChild(domAppend);
}
}
break;
case "string":
fileData.querySelector("#" + item).set_content(castData[item]);
fileData.querySelector("title").set_content(
fileData
.querySelector("title")
.childNodes[0].rawText.split("%" + item + "%")
.join(castData[item])
);
break;
default:
}
}
return fileData.toString();
}
exports.run = runCommand;