Lightweight template writer. Generate static files from template files and parsing/embeddeing values from data.
./index.js
./templates/
index.html
You can see an example in the file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>${title}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />
<script src="main.js"></script>
</head>
<body>
${content}
</body>
</html>
- Use
baseDir
to set the working directory, an absolute path or__dirname
is the common value. - Use
templateDir
to set the relative folder (frombaseDir
) where the templates are stored - Use
targetDir
to set the relative folder (frombaseDir
) to write the generated static files.
var templateOptions = {
templateDir:'./templates',
targetDir:'./',
baseDir:__dirname
}
In the vars
section, every variable defined will be embedded in the template where ${varname}
exists.
In the replacements
, you can specify a list of expressions (regular expressions) to replace with content.
var vars = {
title: 'My Page',
content: fs.readFileSync('./templates/content.html', 'utf8');
}
var replacements = {
}
Call the write
method of template-writer
library:
writer( config, templateOptions );
Create the config
using the following parameters:
-
name
: Name of the template (relative totemplateDir
) -
target
: Optional, is the final name of the file when it's generated. If no target is specified. The target will be the same asname
- vars
var config = {
name: 'index.html',
target:'index.html',
vars: vars,
replacements: replacements
}
var templateWriter = require('template-writer');
templateWriter(
config,
templateOptions
);
In this example, will be writing ./index.html
from ./templates/index.html
using the variables in config.vars
.
By default, the component reads from a 'templates'
folder and writes to the current directory ('.'
)
{
templateDir: 'templates',
targetDir: '.' //path of module
baseDir:'.' //path of node module (./node_modules/template-writer/)
}
Use RunKit to test this package: