Handlebar partials support
This commit is contained in:
parent
2ee4d8757d
commit
23ed521d9e
4 changed files with 39 additions and 6 deletions
6
index.js
6
index.js
|
@ -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'));
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
1
src/templates/partials/example.hbs
Normal file
1
src/templates/partials/example.hbs
Normal file
|
@ -0,0 +1 @@
|
|||
foo
|
Loading…
Add table
Reference in a new issue