Have ideas to improve npm?Join in the discussion! »

    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.

    Install

    npm i njshp

    DownloadsWeekly Downloads

    6

    Version

    2.0.1-0

    License

    MIT

    Last publish

    Collaborators

    • avatar