njshp
v2.0.1-0
Published
NJSHP - A simple Javascript Hypertext Preprocessor.
Downloads
5
Maintainers
Readme
NodeJS Hypertext Preprocessor
NJSHP is a NodeJS based Hypertext Preprocessor. You can compile any plain text (Intended to be used alogn with HTML).
How does it work
The NJSHP compiler takes a raw text input, evaluates the code inside the NJSHP
braces (<& &>
), and then the code is replaced by the result.
The implementation is fast, as is the Node's Javascript V8 engine who does
the code execution using the eval
function.
Example
Imagine that you have this index.jhp
<&
$scope.myAwesomeFunction = (a, b) => {
return a+b;
};
&>
<!DOCTYPE html>
<html>
<head>
<title>
<& echo("Hello world!"); &>
</title>
<body>
<& echo("<h1>Hello there!</h1>"); &>
<hr>
3 + 4 = <& 3+4 &>
</body>
</html>
The client will only receive this:
<!DOCTYPE html>
<html>
<head>
<title>
Hello world!
</title>
<body>
<h1>Hello there!</h1>
<hr>
3 + 4 = 7
</body>
</html>
Usage
In your NodeJS server script you should import NJSHP
const njshp = require('njshp');
Then use the .parse(data)
method to parse the template file:
let template = njshp.parse(data.toString());
njshp.parse(data : String [, params : Object]) : TemplateData
This will return an object with two fields: data
and scope
:
- data: Compiled data from the template.
- scope: Variables set within the template.
Caveats
Due to the simplistic implementation of NJSHP, for now you must store
all your local variables inside the $scope
variable if you want them
to be passed along the template blocks, because each block acts as
an enclosing block (This means that <& &>
equivals to { }
).
This is intended to be corrected in a future, and make a single template share the same scope.