From c8f23483e89bdc0cde851ee4cbf66354c071eb40 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Fri, 27 Oct 2017 16:20:15 +0200 Subject: [PATCH] Rewrite compiler --- src/server.js | 2 +- src/utils/compiler.js | 72 +++++++++++++++++++++---------------------- src/utils/scanner.js | 11 +++++-- 3 files changed, 45 insertions(+), 40 deletions(-) diff --git a/src/server.js b/src/server.js index c854b36..b682c60 100644 --- a/src/server.js +++ b/src/server.js @@ -31,7 +31,7 @@ app.use(require('express').static('public')) var api = require('./utils/api'); api(app); -require('./utils/scanner'); +require('./utils/scanner')(); var serverRender = require('./utils/serverRender') app.get("*", serverRender) diff --git a/src/utils/compiler.js b/src/utils/compiler.js index 05da63b..4ffcc52 100644 --- a/src/utils/compiler.js +++ b/src/utils/compiler.js @@ -17,13 +17,6 @@ function writeRenderedFile(renderedpath, result) { }); } -function writeData(data) { - const dataPath = path.join(process.cwd(), 'server/utils/data.json'); - jsonfile.writeFile(dataPath, data, (err) => { - if (err) throw err; - }); -} - function render(file) { const md = new MarkdownIt(); return md.render(file); @@ -43,33 +36,40 @@ function fileMetadata(filepath) { return metadata; } -const compiler = { - add(filepath) { - Step( - function loadFiles() { - readData(this.parallel()); - readFile(filepath, this.parallel()); - }, - (err, data, fileData) => { - if (err) throw err; - - const frontMatter = fm(fileData); - const rendered = render(frontMatter.body); - const metadata = fileMetadata(filepath); - - const post = { - published: moment().format('MMMM Do YYYY'), - filename: metadata.filename, - title: frontMatter.attributes.title, - summary: frontMatter.attributes.summary, - }; - - const renderedpath = path.join(config.renderPath, `${metadata.filename}.html`); - - data.posts.push(post); - writeData(data); - writeRenderedFile(renderedpath, rendered); - } - ); - }, +module.exports = function Compiler(data) { + this.data = data; } + +Compiler.prototype.addFile = function (filepath) { + Step( + function loadFiles() { + readFile(filepath, this.parallel()); + }, + (err, fileData) => { + if (err) throw err; + + const frontMatter = fm(fileData); + const rendered = render(frontMatter.body); + const metadata = fileMetadata(filepath); + + const post = { + published: moment().format('MMMM Do YYYY'), + filename: metadata.filename, + title: frontMatter.attributes.title, + summary: frontMatter.attributes.summary, + }; + + const renderedpath = path.join(config.renderPath, `${metadata.filename}.html`); + + this.data.posts.push(post); + writeRenderedFile(renderedpath, rendered); + } + ); +}; + +Compiler.prototype.writeData = function () { + const dataPath = path.join(process.cwd(), 'server/utils/data.json'); + jsonfile.writeFile(dataPath, data, (err) => { + if (err) throw err; + }); +}; diff --git a/src/utils/scanner.js b/src/utils/scanner.js index 030f67d..8eae29b 100644 --- a/src/utils/scanner.js +++ b/src/utils/scanner.js @@ -1,11 +1,16 @@ const fs = require('fs'); -const compiler = require('./compiler'); +const Compiler = require('./compiler'); const config = require('../static/config/config.json'); +const data = require('./data.json'); module.exports = function() { + + var compiler = Compiler(data); + fs.readdir(config.contentPath, (err, files) => { files.forEach(file => { - console.log(file); - }) + compiler.addFile(file); + }); + compiler.writeData(); }); }