1.0.1 • Published 3 years ago
page-crafter v1.0.1
Page Crafter
A tool for simply templating content pages using handlebars templating syntax with partials support.
Usage
pagecraft <dir> [options]All files with a .handlebars extension will be run through the handlebars
templating engine.
Any handlebars files with a leading _ underscore in the name will be
registered as partials and not available in the final output.
All other files will be copied as-is to the output directory.
Options
| option | Description |
|---|---|
| -h,--help | help message |
| -o,--out | Specify 'out' directory; default 'dist' |
| -p,--params | Specify a YAML parameter file to be used as template context |
| -c,--clean | Remove the 'out' directory before build |
| -v,--version | Print version information |
Example
Given the following input directory structure:
website/
├── css/
│ ├── bootstrap.min.css
│ └── bootstrap-theme.min.css
├── js/
│ └── bootstrap.min.js
├── shared-partials/
│ ├── _navbar.html.handlebars
│ └── _footer.html.handlebars
├── index.html.handlebars
└── about-us.html.handlebarsA YAML parameter file named web-params.yml at the same level as website/ with the following contents:
---
sales_phone: 555-555-5555
sales_email: sales@example.orgAnd running the following command:
pagecraft website/ -o dist/ -p web-params.ymlThe following will occur:
- All files in
css/andjs/will be copied as-is to a newdist/folder - Partials named
shared-partials/_navbar.htmlandshared-partials/_footer.htmlwill be registered and available to be used in theindex.html.handlebarsandabout-us.html.handlebarsfiles as{{> shared-partials/_navbar.html }}. Notice that they are namespaced by their relative folder. - The
sales_phoneandsales_emailcontents ofweb-params.ymlwill be available as context for each template. - An
index.htmlandabout-us.htmlwill be created in thedist/folder after running through the handlebars templater with all available partials and context parameters.
The output will be:
dist/
├── css/
│ ├── bootstrap.min.css
│ └── bootstrap-theme.min.css
├── js/
│ └── bootstrap.min.js
├── shared-partials/
├── index.html
└── about-us.html