njshp

2.0.1-0 • Public • Published

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.

Package Sidebar

Install

npm i njshp

Weekly Downloads

0

Version

2.0.1-0

License

MIT

Last publish

Collaborators

  • sigmasoldi3r