A simple tool that generate the HTML files based on the EJS template and the data for the static site.
$ejs-site-generator -h
Usage: index [options]
Options:
-V, --version output the version number
-views <dir> The directory for the views (default: "./views")
-data <dir> The directory for the data (default: "./data")
-out <dir> The directory for the outputs (default: "./out")
-statics <dir> The directory for the static files which will copied on the end of the build (default: "./statics")
-base <dir> The base directory for the execution (default: "./")
-h, --help display help for command
Name | Description |
---|---|
default.ejs |
The default view that it should the engine load if the _viewParam.view value is missing inside the data files |
<name>.ejs |
The views for the file |
<name>.ejs.json |
The default value assignments for the file |
Alert: If a view inherit another view, all key present in the parent json file must be also present in the view's json file or it will causes some undefined
symbol errors. The json inheriting is work in progress
The engine accept four type of files:
.json
files which only contains the data file that the template require.ejs
or.html
files which contain the html code to be directly included inside the template. This require the template to support it by include the file specified by the_external.ejs_include
variable. The metadata required by the template could be provided through the<filename>.json
under the same directory..idtl
files which have both html code and its metadata combined together. See IDTL.md on the guideline on using it..jst
files which serve as the template for the JavaScript files. The engine's working directory always at the root directory when it is executed.
Name | Description |
---|---|
_external._path.data(name) |
Return the resolved path for the path provided relative to the data directory |
_external._path.base(name) |
Return the resolved path for the path provided relative to the base directory |
_external._path.views(name) |
Return the resolved path for the path provided relative to the views directory |
The _viewParam
key allows the developer to specify the behavior of the compiler
{
"_viewParam":{
"ignore": true|false,
"view":"default"
}
}
Name | Type | Description |
---|---|---|
ignore |
All | The compiler should ignore this file from being processed |
view |
Data pages only | The name of view that compiler will use while building the html for the data |
This contain a list of the variables which will be defined by the engine if not defined by the page
Name | Description |
---|---|
build_time |
The JavaScript Date Object which represent the timestamp that the build is started |
page_unit_name |
The name of the page which usually taken from the filename |
page_unit_path |
Similar with the page_unit_name but provided in full path |
Interops |
Handle to the imported copy of the plugin.js inside the build directory is it is found |
The generator supports custom plugin by placing a plugin.js
on the base directory. Its exports will be imported as Interops
from the template.
Within the same file the developers can specify their build hooks to catch events.
Name | Description |
---|---|
hooks.build_start() |
The build is begin |
hooks.build_done() |
The build is finished |
hooks.new_page(path) |
A new page has been generated |