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 chalk = require('chalk');
|
||||||
const { getPinnedRepoJSONs, getStaticPageJSONs } = require('./src/discoverJSONData');
|
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 copyStaticAssets = require('./src/copyStaticAssets');
|
||||||
const generateSpritesheet = require('./src/generateSpritesheet');
|
const generateSpritesheet = require('./src/generateSpritesheet');
|
||||||
|
|
||||||
|
@ -10,6 +10,10 @@ const generateSpritesheet = require('./src/generateSpritesheet');
|
||||||
console.log(chalk.blue('● Fetching Static Page Data...'));
|
console.log(chalk.blue('● Fetching Static Page Data...'));
|
||||||
let staticJSONs = await getStaticPageJSONs();
|
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...'));
|
console.log(chalk.blue('● Generating index html page...'));
|
||||||
await generateIndexPage(repoJSONs.concat(staticJSONs));
|
await generateIndexPage(repoJSONs.concat(staticJSONs));
|
||||||
console.log(chalk.green('✓ Generated index html page'));
|
console.log(chalk.green('✓ Generated index html page'));
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
const { join } = require('path');
|
const { join } = require('path');
|
||||||
const { outputFile } = require('fs-extra');
|
const { outputFile } = require('fs-extra');
|
||||||
const getTemplate = require('./template');
|
const { getTemplate, registerPartials } = require('./template');
|
||||||
|
|
||||||
const distPath = './dist';
|
const distPath = './dist';
|
||||||
|
|
||||||
|
const initialize = async () => {
|
||||||
|
return registerPartials();
|
||||||
|
}
|
||||||
|
|
||||||
const generateIndexPage = async jsonData => {
|
const generateIndexPage = async jsonData => {
|
||||||
const indexTemplate = await getTemplate('index');
|
const indexTemplate = await getTemplate('index');
|
||||||
|
|
||||||
|
@ -30,6 +34,8 @@ const generateInteriorPages = async jsonData => {
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
initialize,
|
||||||
generateInteriorPages,
|
generateInteriorPages,
|
||||||
generateIndexPage,
|
generateIndexPage,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,24 @@
|
||||||
const { compile } = require('handlebars');
|
const Handlebars = require('handlebars');
|
||||||
const { readFile } = require('fs-extra');
|
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;
|
let template;
|
||||||
try {
|
try {
|
||||||
template = await readFile(`./src/templates/${filename}.hbs`);
|
template = await readFile(`./src/templates/${filename}.hbs`);
|
||||||
|
@ -10,6 +27,11 @@ module.exports = async filename => {
|
||||||
console.error('Could not fetch template', filename, error);
|
console.error('Could not fetch template', filename, error);
|
||||||
return;
|
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