1
1
Fork 0

Handlebar partials support

This commit is contained in:
Joe Wroten 2019-01-08 22:44:13 -06:00
parent 2ee4d8757d
commit 23ed521d9e
4 changed files with 39 additions and 6 deletions

View file

@ -1,6 +1,6 @@
const chalk = require('chalk');
const { getPinnedRepoJSONs, getStaticPageJSONs } = require('./src/discoverJSONData');
const { generateIndexPage, generateInteriorPages } = require('./src/generateHTMLPages');
const { initialize: initializePages, generateIndexPage, generateInteriorPages } = require('./src/generateHTMLPages');
const copyStaticAssets = require('./src/copyStaticAssets');
const generateSpritesheet = require('./src/generateSpritesheet');
@ -10,6 +10,10 @@ const generateSpritesheet = require('./src/generateSpritesheet');
console.log(chalk.blue('● Fetching Static Page Data...'));
let staticJSONs = await getStaticPageJSONs();
console.log(chalk.blue('● Initializing page generator...'));
await initializePages();
console.log(chalk.green('✓ Initialized page partials'));
console.log(chalk.blue('● Generating index html page...'));
await generateIndexPage(repoJSONs.concat(staticJSONs));
console.log(chalk.green('✓ Generated index html page'));

View file

@ -1,9 +1,13 @@
const { join } = require('path');
const { outputFile } = require('fs-extra');
const getTemplate = require('./template');
const { getTemplate, registerPartials } = require('./template');
const distPath = './dist';
const initialize = async () => {
return registerPartials();
}
const generateIndexPage = async jsonData => {
const indexTemplate = await getTemplate('index');
@ -30,6 +34,8 @@ const generateInteriorPages = async jsonData => {
};
module.exports = {
initialize,
generateInteriorPages,
generateIndexPage,
};

View file

@ -1,7 +1,24 @@
const { compile } = require('handlebars');
const { readFile } = require('fs-extra');
const Handlebars = require('handlebars');
const { readFile, readdir } = require('fs-extra');
const { join, basename } = require('path');
module.exports = async filename => {
const registerPartials = async () => {
try {
let results = await readdir('./src/templates/partials')
results.forEach(async filename => {
let filePath = join('./src/templates/partials', filename);
let partialName = basename(filename, '.hbs');
let partialContents = await readFile(filePath);
partialContents = partialContents.toString();
Handlebars.registerPartial(partialName, partialContents);
});
} catch(error) {
console.error('Could not read partials in ./src/templates/partials/', error);
return;
}
}
const getTemplate = async filename => {
let template;
try {
template = await readFile(`./src/templates/${filename}.hbs`);
@ -10,6 +27,11 @@ module.exports = async filename => {
console.error('Could not fetch template', filename, error);
return;
}
return compile(template);
return Handlebars.compile(template);
};
module.exports = {
registerPartials,
getTemplate,
};

View file

@ -0,0 +1 @@
foo