A powerful templating engine with inheritance, asynchronous control, and more (jinja2 inspired)

Overview

Nunjucks

NPM Version NPM Downloads Linux Build Windows Build Test Codecov

Nunjucks is a full featured templating engine for javascript. It is heavily inspired by jinja2. View the docs here.

Installation

npm install nunjucks

To use the file watcher built-in to Nunjucks, Chokidar must be installed separately.

npm install nunjucks chokidar

(View the CHANGELOG)

Documentation

See here.

Browser Support

Supported in all modern browsers. For IE8 support, use es5-shim.

Tests

Run the tests with npm test.

Watch master branch's tests running in the browser.

Mailing List

Join our mailing list and get help with and issues you have: https://groups.google.com/forum/?fromgroups#!forum/nunjucks

Want to help?

Contributions are always welcome! Before you submit an issue or pull request, please read our contribution guidelines.

Contributors

Comments
  • Asynchronous API

    Asynchronous API

    I know that nunjucks is a direct port of jinja2, so probably due to this internally it is using some sync methods of nodejs to access files, etc. However I think that having an asynchronous API would bring better performance. For example inside FileSystemLoader there are calls to fs.existsSync, fs.readFileSync and fs.statSync. This blocks the whole javascript execution so it causes a scability problem.

    I know that this could be a big change, but would be a big step forwards.

    opened by gimenete 86
  • Nunjucks 2.0

    Nunjucks 2.0

    Hey all,

    I know this project has been a little quiet lately, even after #281 where we discussed some things to do to keep it active. Bringing on more contributors has certainly helped, but there's a few things in there I failed to do yet, like merging docs into this repo.

    I don't have as much time on the side as I used to since switching to the Firefox devtools team. However, this is one project that I especially want to keep alive, if anything to learn how manage a large successful open source project. This is easily the largest one I manage.

    I'm going to start a new effort and call it "nunjucks 2.0". It's 2.0 only because it sounds bigger, and will keep me motivated to push it though. Also, if we want to do anything small backwards incompatible changes, we can do it. One potential idea is to turn autoescaping on by default.

    So please post here any ideas you'd like to see in 2.0 or things you think we should change. 2.0 isn't meant to be a huge change, so large features could still be delayed to a later release.

    opened by jlongster 65
  • Treating

    Treating "for" loops as a separate scope does not behave reasonably

    This code:

    {% set lastDate = '' %}
    {% for item in items %}
      {{ renderEvent(event, item, lastDate) }}
      {% set lastDate = item.date %}
    {% endfor %}
    

    Does not behave as a programmer accustomed to [fill in pretty much any language here] would expect.

    The renderEvent macro receives '' on every iteration, because it sees the lastDate variable declared in the outer scope.

    The second set statement creates a separate lastDate variable in an inner scope but it is too late for renderEvent to see it.

    If we get rid of the first "set" entirely, the code starts working; renderEvent passes undefined on the first pass, and the value of the second "set" on each pass thereafter.

    This works, but it requires us to lean heavily on nunjuck's tolerance for passing undefined variables, and if we needed to initialize to something other than "nothing" we'd be out of luck.

    IMHO a for loop should never create a new variable scope in a language that has no distinction between declaring a variable ("var foo") and updating it.

    opened by boutell 38
  • need new active maintainer

    need new active maintainer

    I no longer use nunjucks in my daily work, and don't have the spare bandwidth to continue active maintenance. I'm looking for someone to pick up this responsibility. If I don't find anyone, I will just make a note in the README that nunjucks is unmaintained.

    IMO active maintenance includes, at minimum:

    1. Replying to all bug reports in a timely way, closing invalid or non-actionable reports.
    2. Reviewing and (if they pass review) merging contributed pull requests.
    3. Making (semi-)regular releases.

    I am happy to consult with anyone who picks up active maintenance as needed on the details of the above (in particular making releases).

    CCing everyone with write access to the repo: @SamyPesse @AaronO @garygreen @popomore @jlongster @oyyd @forresst @ricordisamoa

    opened by carljm 35
  • Conditional extends should work, no?

    Conditional extends should work, no?

    I'm trying to return html fragments and figured that I could achieve this by conditionally setting a template to extend from. The true case works, but the false case throws an exception.

       it('should allow extends blocks inside of if blocks', function(){
            var s = render( '{% if true %}'+
                            '{% extends "base.html" %}'+
                            '{% endif %}'+
                            '{% block block1 %}fragment{% endblock %}');
            s.should.equal('FoofragmentBazFizzle');
    
            s = render( '{% if false %}'+
                        '{% extends "base.html" %}'+
                        '{% endif %}'+
                        '{% block block1 %}fragment{% endblock %}');
            s.should.equal('fragment');
        });
    

    Error

    TypeError: Cannot call method 'rootRenderFunc' of undefined
          at [object Object].root [as rootRenderFunc] (eval at <anonymous> (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/src/environment.js:273:24))
          at [object Object].render (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/src/environment.js:242:21)
          at render (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/tests/util.js:9:14)
          at Context.<anonymous> (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/tests/compiler.js:325:13)
          at Test.run (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runnable.js:213:32)
          at Runner.runTest (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:343:10)
          at /Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:389:12
          at next (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:269:14)
          at /Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:278:7
          at next (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:226:23)
          at Array.0 (/Users/aschaar/programming/xtags-org/node_modules/nunjucks/node_modules/mocha/lib/runner.js:246:5)
          at EventEmitter._tickCallback (node.js:192:40)
    make: *** [test] Error 1
    
    
    enhancement 
    opened by pennyfx 26
  • Add node.js precompiling API

    Add node.js precompiling API

    opened by paulmillr 26
  • Block scoping is too strict (stricter than Jinja) in 3.0.0.

    Block scoping is too strict (stricter than Jinja) in 3.0.0.

    There were a number of commits included in 3.0.0 that fixed scoping issues, but now it seems that {% call %} blocks no longer have access to variables set in their parent scope. This differs from the Jinja2 implementation.

    In Jinja2, the following code:

    {% macro inside() %}
      <div>inside: {{ caller() }}</div>
    {% endmacro %}
    
    {% macro outside(var) %}
      <div>outside: {{ var }}</div>
      {% call inside() %}
        {{ var }}
      {% endcall %}
    {% endmacro %}
    
    {{ outside('foobar') }}
    

    Outputs:

    <div>outside: foobar</div>
    <div>inside: foobar</div>
    

    In Nunjucks 3.0.0, the output is:

    <div>outside: foobar</div>
    <div>inside: </div>
    

    See http://jsfiddle.net/jgerigmeyer/mjpbm13j/

    bug 
    opened by jgerigmeyer 25
  • include parameters supported?

    include parameters supported?

    i'm considering a switch from swig to nunjucks and have been reading if all my requirements are covered. one thing though, can i use parameters with include?

    like with swig i can use this;

        {% set parameters = {'contentType': 'tournament'} %}
        {% include "../common/editor/content.htm" with parameters only %}
    

    and then in content.htm can reference it

    {{ contentType }}
    

    is this possible with nujucks as the documentation doesn't mention about it? http://mozilla.github.io/nunjucks/templating.html#include

    opened by bonesoul 24
  • Process doesn't exit after renderString()

    Process doesn't exit after renderString()

    Demonstrated with simple example:

    var nunjucks = require('nunjucks');
    
    var template = 'Hello {{ name }}';
    var data = { name: 'World' };
    
    // This will also prevent process from exiting:
    //var result = nunjucks.renderString(template, data);
    //console.log(result);
    
    nunjucks.renderString(template, data, function(err, result) {
      console.log(result);
    });
    
    // process doesn't exit after renderString
    
    opened by subfuzion 24
  • Printing an object

    Printing an object

    Currently, if I output an object using nunjucks, I get "[object Object]":

    Nunjucks: context: {myObj: {}} template: {{ myObj }} output: "[object Object]"

    Jinja: context: {myObj: {}} template: {{ myObj }} output: "{}"

    Is this desired behaviour for people? If people are interested, I can look into creating a patch to better mimic the Jinja functionality. (Possibly just dump the output from JSON.stringify)

    More than anything else, this could be useful for debugging.

    enhancement 
    opened by dhendo 23
  • Fix nunjucks for windows: relative paths and tests

    Fix nunjucks for windows: relative paths and tests

    The goals of this PR are:

    • [x] Fix relative paths on Windows
    • [x] Adapt tests for windows (some tests are using \n and on windows it's \r\n)
    • [x] Maybe if you want to, adapt tests script to work with Appveyor
    opened by SamyPesse 22
  • want to convert render html to nunjucks with variable and every thing.

    want to convert render html to nunjucks with variable and every thing.

    becuase i want to manuplate/add some html tags after html render and save into nunjucks (like before rendering);

    nunjucks before render

    <div class="ps-4">
            <h1>{{heading}}</h1>
            {% if isShowLi %}
                <div class="px-4">
                    {% for item in items %}
                        <div>{{item.name}}</div>
                    {% endfor %}
                </div>
            {% endif %}
    </div>
    

    nunjucks after render and html modification

    <div class="ps-4">
            <h1>hello world</h1>
              <img src="abc.png" />
                <div class="px-4">
                        <div>item 1</div>
                        <div>item 2</div>
                        <div>item 3</div>
                        <div>item 4</div>
                        <div>item 5</div>
                </div>
     </div>
    

    and i want it like that

    <div class="ps-4">
            <h1>{{heading}}</h1>
           <img src="abc.png" />
            {% if isShowLi %}
                <div class="px-4">
                    {% for item in items %}
                        <div>{{item.name}}</div>
                    {% endfor %}
                </div>
            {% endif %}
     </div>
    

    please solve and suggest any way to do this thing pleassssss

    opened by shoaib3456 0
  • Typo in API documentation #1406

    Typo in API documentation #1406

    Summary

    Proposed change:

    on page: https://mozilla.github.io/nunjucks/api.html

    the system will automatically update templates. To use watch, make sure optional dependency chokidar is installed. when they are changed on the filesystem

    change to:

    the system will automatically update templates when they are changed on the filesystem. To use watch, make sure optional dependency chokidar is installed.

    Closes #1406.

    Checklist

    I've completed the checklist below to ensure I didn't forget anything. This makes reviewing this PR as easy as possible for the maintainers. And it gets this change released as soon as possible.

    • [ ] Proposed change helps towards purpose of this project.
    • [ ] Documentation is added / updated to describe proposed change.
    • [ ] Tests are added / updated to cover proposed change.
    • [ ] Changelog has an entry for proposed change (if user-facing fix or feature).
    opened by NikolaDojic 0
  • [Ready for review] Indent filter does not ignore empty lines

    [Ready for review] Indent filter does not ignore empty lines

    Summary

    Proposed change: https://github.com/mozilla/nunjucks/issues/1421#issue-1459826388 Closes #1421.

    Checklist

    I've completed the checklist below to ensure I didn't forget anything. This makes reviewing this PR as easy as possible for the maintainers. And it gets this change released as soon as possible.

    • [ ] Proposed change helps towards purpose of this project.
    • [ ] Documentation is added / updated to describe proposed change.
    • [x] Tests are added / updated to cover proposed change.
    • [ ] Changelog has an entry for proposed change (if user-facing fix or feature).
    opened by NikolaDojic 1
  • Export Context

    Export Context

    Summary

    Proposed change:

    Export Context so that we can write a plugin to render block like jinja2-fragments

    Checklist

    I've completed the checklist below to ensure I didn't forget anything. This makes reviewing this PR as easy as possible for the maintainers. And it gets this change released as soon as possible.

    • [x] Proposed change helps towards purpose of this project.
    • [ ] ~~Documentation is added / updated to describe proposed change~~.
    • [ ] ~~Tests are added / updated to cover proposed change~~.
    • [ ] ~~Changelog has an entry for proposed change (if user-facing fix or feature)~~.
    opened by zt8989 1
  • message

    message "babel: nunjucks does not exist" when the build script is called

    Hello,

    I have installed in my PC under Windows 10 Node 16.18.1 and NPM version 9.1.2. I have installed globally the npm packages

    I have also installed locally the following packages:

    The following message: is displayed:

    npm link nunjucks
    npm ERR! code 2
    npm ERR! path C:\Users\xxx\AppData\Roaming\npm\node_modules\nunjucks
    npm ERR! command failed
    npm ERR! command C:\Windows\system32\cmd.exe /d /s /c npm run build
    npm ERR! > [email protected] build
    npm ERR! > npm run build:transpile && npm run build:bundle
    npm ERR! 
    npm ERR!
    npm ERR! > [email protected] build:transpile
    npm ERR! > babel nunjucks --out-dir .
    npm ERR! babel:
    npm ERR!   nunjucks does not exist
    

    If I go to the folder node_modules/nunjucks and I call the command

    npm run build
    

    The same message is displayed:

    pm run build
    
    > [email protected] build
    > npm run build:transpile && npm run build:bundle
    
    
    > [email protected] build:transpile
    > babel nunjucks --out-dir .
    
    babel:
      nunjucks does not exist
    

    Here is the complete log:

    0 verbose cli C:\Program Files\nodejs\node.exe C:\Users\myuser\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
    1 info using [email protected]
    2 info using [email protected]
    3 timing npm:load:whichnode Completed in 1ms
    4 timing config:load:defaults Completed in 2ms
    5 timing config:load:file:C:\Users\myuser\AppData\Roaming\npm\node_modules\npm\npmrc Completed in 2ms
    6 timing config:load:builtin Completed in 3ms
    7 timing config:load:cli Completed in 1ms
    8 timing config:load:env Completed in 0ms
    9 timing config:load:file:C:\Users\myuser\workspace\site-web\siteinnes2019\.npmrc Completed in 1ms
    10 timing config:load:project Completed in 3ms
    11 timing config:load:file:C:\Users\myuser\.npmrc Completed in 1ms
    12 timing config:load:user Completed in 1ms
    13 timing config:load:file:C:\Users\myuser\AppData\Roaming\npm\etc\npmrc Completed in 0ms
    14 timing config:load:global Completed in 0ms
    15 timing config:load:setEnvs Completed in 2ms
    16 timing config:load Completed in 15ms
    17 timing npm:load:configload Completed in 15ms
    18 timing npm:load:mkdirpcache Completed in 0ms
    19 timing npm:load:mkdirplogs Completed in 1ms
    20 verbose title npm link nunjucks
    21 verbose argv "link" "nunjucks"
    22 timing npm:load:setTitle Completed in 2ms
    23 timing config:load:flatten Completed in 4ms
    24 timing npm:load:display Completed in 5ms
    25 verbose logfile logs-max:10 dir:C:\Users\myuser\AppData\Local\npm-cache\_logs\2022-11-23T17_07_07_089Z-
    26 verbose logfile C:\Users\myuser\AppData\Local\npm-cache\_logs\2022-11-23T17_07_07_089Z-debug-0.log
    27 timing npm:load:logFile Completed in 11ms
    28 timing npm:load:timers Completed in 0ms
    29 timing npm:load:configScope Completed in 0ms
    30 timing npm:load Completed in 36ms
    31 silly logfile start cleaning logs, removing 2 files
    32 timing config:load:flatten Completed in 1ms
    33 timing config:load:flatten Completed in 0ms
    34 timing arborist:ctor Completed in 1ms
    35 silly logfile done cleaning log files
    36 timing idealTree:init Completed in 2ms
    37 timing idealTree:userRequests Completed in 2ms
    38 silly idealTree buildDeps
    39 silly fetch manifest nunjucks@*
    40 http fetch GET 200 https://registry.npmjs.org/nunjucks 376ms (cache revalidated)
    41 silly placeDep ROOT [email protected] OK for:  want: *
    42 silly fetch manifest a-sync-waterfall@^1.0.0
    43 silly fetch manifest asap@^2.0.3
    44 silly fetch manifest commander@^5.1.0
    45 http fetch GET 200 https://registry.npmjs.org/a-sync-waterfall 55ms (cache revalidated)
    46 http fetch GET 200 https://registry.npmjs.org/asap 84ms (cache revalidated)
    47 http fetch GET 200 https://registry.npmjs.org/commander 86ms (cache revalidated)
    48 timing idealTree:#root Completed in 483ms
    49 silly placeDep node_modules/nunjucks [email protected] OK for: [email protected] want: ^1.0.0
    50 silly placeDep node_modules/nunjucks [email protected] OK for: [email protected] want: ^2.0.3
    51 silly placeDep node_modules/nunjucks [email protected] OK for: [email protected] want: ^5.1.0
    52 timing idealTree:node_modules/nunjucks Completed in 8ms
    53 timing idealTree:node_modules/nunjucks/node_modules/a-sync-waterfall Completed in 0ms
    54 timing idealTree:node_modules/nunjucks/node_modules/asap Completed in 0ms
    55 timing idealTree:node_modules/nunjucks/node_modules/commander Completed in 0ms
    56 timing idealTree:buildDeps Completed in 491ms
    57 timing idealTree:fixDepFlags Completed in 0ms
    58 timing idealTree Completed in 499ms
    59 timing reify:loadTrees Completed in 500ms
    60 timing reify:diffTrees Completed in 1ms
    61 silly reify moves {}
    62 timing reify:retireShallow Completed in 2ms
    63 timing reify:createSparse Completed in 5ms
    64 timing reify:loadBundles Completed in 0ms
    65 silly audit bulk request {
    65 silly audit   nunjucks: [ '3.2.3' ],
    65 silly audit   'a-sync-waterfall': [ '1.0.1' ],
    65 silly audit   asap: [ '2.0.6' ],
    65 silly audit   commander: [ '5.1.0' ]
    65 silly audit }
    66 timing reifyNode:node_modules/nunjucks/node_modules/a-sync-waterfall Completed in 78ms
    67 timing reifyNode:node_modules/nunjucks/node_modules/commander Completed in 92ms
    68 timing reifyNode:node_modules/nunjucks/node_modules/asap Completed in 96ms
    69 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 248ms
    70 timing auditReport:getReport Completed in 250ms
    71 silly audit report {}
    72 timing auditReport:init Completed in 0ms
    73 timing reify:audit Completed in 252ms
    74 timing reifyNode:node_modules/nunjucks Completed in 282ms
    75 timing reify:unpack Completed in 283ms
    76 timing reify:unretire Completed in 0ms
    77 timing build:queue Completed in 1ms
    78 timing build:link:node_modules/nunjucks Completed in 7ms
    79 timing build:link Completed in 7ms
    80 timing build:deps Completed in 8ms
    81 timing build Completed in 9ms
    82 timing reify:build Completed in 9ms
    83 timing reify:trash Completed in 0ms
    84 timing reify Completed in 810ms
    85 timing arborist:ctor Completed in 0ms
    86 timing idealTree:init Completed in 291ms
    87 verbose shrinkwrap failed to load node_modules/.package-lock.json missing from lockfile: ../../../AppData/Roaming/npm/node_modules/showdown/node_modules/commander
    88 timing idealTree:userRequests Completed in 58ms
    89 silly idealTree buildDeps
    90 silly placeDep ROOT [email protected] REPLACE for: [email protected] want: file:../../../AppData/Roaming/npm/node_modules/nunjucks
    91 timing idealTree:#root Completed in 14ms
    92 timing idealTree:node_modules/nunjucks Completed in 0ms
    93 timing idealTree:buildDeps Completed in 15ms
    94 timing idealTree:fixDepFlags Completed in 3ms
    95 timing idealTree Completed in 378ms
    96 timing reify:loadTrees Completed in 735ms
    97 timing reify:diffTrees Completed in 21ms
    98 silly reify mark retired [
    98 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\a-sync-waterfall'
    98 silly reify ]
    99 silly reify mark retired [
    99 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\asap'
    99 silly reify ]
    100 silly reify mark retired [
    100 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\nunjucks',
    100 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile',
    100 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile.cmd',
    100 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile.ps1'
    100 silly reify ]
    101 silly reify mark retired [
    101 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\showdown',
    101 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown',
    101 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown.cmd',
    101 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown.ps1'
    101 silly reify ]
    102 silly reify moves {
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\a-sync-waterfall': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.a-sync-waterfall-XDwOtRAX',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\asap': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.asap-vMDTd2hw',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\nunjucks': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.nunjucks-Oaf7nzc3',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.nunjucks-precompile-Fn0UKNoo',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile.cmd': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.nunjucks-precompile.cmd-iTmITJhM',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\nunjucks-precompile.ps1': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.nunjucks-precompile.ps1-LVR0MWid',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\showdown': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.showdown-qZfDGn27',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.showdown-fatzGKBD',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown.cmd': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.showdown.cmd-GBaUrare',
    102 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\showdown.ps1': 'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\.bin\\.showdown.ps1-Mm7AGitv'
    102 silly reify }
    103 timing reify:retireShallow Completed in 10ms
    104 timing reify:createSparse Completed in 1ms
    105 timing reify:loadBundles Completed in 0ms
    106 silly audit bulk request {
    106 silly audit   '@ampproject/remapping': [ '2.2.0' ],
    106 silly audit   '@babel/cli': [ '7.19.3' ],
    106 silly audit   '@babel/code-frame': [ '7.18.6' ],
    106 silly audit   '@babel/compat-data': [ '7.20.1' ],
    106 silly audit   '@babel/core': [ '7.20.2' ],
    106 silly audit   '@babel/generator': [ '7.20.4' ],
    106 silly audit   '@jridgewell/gen-mapping': [ '0.3.2', '0.1.1' ],
    106 silly audit   '@babel/helper-annotate-as-pure': [ '7.18.6' ],
    106 silly audit   '@babel/helper-builder-binary-assignment-operator-visitor': [ '7.18.9' ],
    106 silly audit   '@babel/helper-compilation-targets': [ '7.20.0' ],
    106 silly audit   '@babel/helper-create-class-features-plugin': [ '7.20.2' ],
    106 silly audit   '@babel/helper-create-regexp-features-plugin': [ '7.19.0' ],
    106 silly audit   '@babel/helper-define-polyfill-provider': [ '0.3.3' ],
    106 silly audit   '@babel/helper-environment-visitor': [ '7.18.9' ],
    106 silly audit   '@babel/helper-explode-assignable-expression': [ '7.18.6' ],
    106 silly audit   '@babel/helper-function-name': [ '7.19.0' ],
    106 silly audit   '@babel/helper-hoist-variables': [ '7.18.6' ],
    106 silly audit   '@babel/helper-member-expression-to-functions': [ '7.18.9' ],
    106 silly audit   '@babel/helper-module-imports': [ '7.18.6' ],
    106 silly audit   '@babel/helper-module-transforms': [ '7.20.2' ],
    106 silly audit   '@babel/helper-optimise-call-expression': [ '7.18.6' ],
    106 silly audit   '@babel/helper-plugin-utils': [ '7.20.2' ],
    106 silly audit   '@babel/helper-remap-async-to-generator': [ '7.18.9' ],
    106 silly audit   '@babel/helper-replace-supers': [ '7.19.1' ],
    106 silly audit   '@babel/helper-simple-access': [ '7.20.2' ],
    106 silly audit   '@babel/helper-skip-transparent-expression-wrappers': [ '7.20.0' ],
    106 silly audit   '@babel/helper-split-export-declaration': [ '7.18.6' ],
    106 silly audit   '@babel/helper-string-parser': [ '7.19.4' ],
    106 silly audit   '@babel/helper-validator-identifier': [ '7.19.1' ],
    106 silly audit   '@babel/helper-validator-option': [ '7.18.6' ],
    106 silly audit   '@babel/helper-wrap-function': [ '7.19.0' ],
    106 silly audit   '@babel/helpers': [ '7.20.1' ],
    106 silly audit   '@babel/highlight': [ '7.18.6' ],
    106 silly audit   '@babel/parser': [ '7.20.3' ],
    106 silly audit   '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-proposal-async-generator-functions': [ '7.20.1' ],
    106 silly audit   '@babel/plugin-proposal-class-properties': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-class-static-block': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-dynamic-import': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-export-namespace-from': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-proposal-json-strings': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-logical-assignment-operators': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-proposal-nullish-coalescing-operator': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-numeric-separator': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-object-rest-spread': [ '7.20.2' ],
    106 silly audit   '@babel/plugin-proposal-optional-catch-binding': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-optional-chaining': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-proposal-private-methods': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-private-property-in-object': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-proposal-unicode-property-regex': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-syntax-async-generators': [ '7.8.4' ],
    106 silly audit   '@babel/plugin-syntax-class-properties': [ '7.12.13' ],
    106 silly audit   '@babel/plugin-syntax-class-static-block': [ '7.14.5' ],
    106 silly audit   '@babel/plugin-syntax-dynamic-import': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-export-namespace-from': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-import-assertions': [ '7.20.0' ],
    106 silly audit   '@babel/plugin-syntax-json-strings': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-logical-assignment-operators': [ '7.10.4' ],
    106 silly audit   '@babel/plugin-syntax-nullish-coalescing-operator': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-numeric-separator': [ '7.10.4' ],
    106 silly audit   '@babel/plugin-syntax-object-rest-spread': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-optional-catch-binding': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-optional-chaining': [ '7.8.3' ],
    106 silly audit   '@babel/plugin-syntax-private-property-in-object': [ '7.14.5' ],
    106 silly audit   '@babel/plugin-syntax-top-level-await': [ '7.14.5' ],
    106 silly audit   '@babel/plugin-transform-arrow-functions': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-async-to-generator': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-block-scoped-functions': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-block-scoping': [ '7.20.2' ],
    106 silly audit   '@babel/plugin-transform-classes': [ '7.20.2' ],
    106 silly audit   '@babel/plugin-transform-computed-properties': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-destructuring': [ '7.20.2' ],
    106 silly audit   '@babel/plugin-transform-dotall-regex': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-duplicate-keys': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-exponentiation-operator': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-for-of': [ '7.18.8' ],
    106 silly audit   '@babel/plugin-transform-function-name': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-literals': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-member-expression-literals': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-modules-amd': [ '7.19.6' ],
    106 silly audit   '@babel/plugin-transform-modules-commonjs': [ '7.19.6' ],
    106 silly audit   '@babel/plugin-transform-modules-systemjs': [ '7.19.6' ],
    106 silly audit   '@babel/plugin-transform-modules-umd': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-named-capturing-groups-regex': [ '7.19.1' ],
    106 silly audit   '@babel/plugin-transform-new-target': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-object-super': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-parameters': [ '7.20.3' ],
    106 silly audit   '@babel/plugin-transform-property-literals': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-regenerator': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-reserved-words': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-shorthand-properties': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-spread': [ '7.19.0' ],
    106 silly audit   '@babel/plugin-transform-sticky-regex': [ '7.18.6' ],
    106 silly audit   '@babel/plugin-transform-template-literals': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-typeof-symbol': [ '7.18.9' ],
    106 silly audit   '@babel/plugin-transform-unicode-escapes': [ '7.18.10' ],
    106 silly audit   '@babel/plugin-transform-unicode-regex': [ '7.18.6' ],
    106 silly audit   '@babel/preset-env': [ '7.20.2' ],
    106 silly audit   '@babel/preset-modules': [ '0.1.5' ],
    106 silly audit   '@babel/register': [ '7.18.9' ],
    106 silly audit   '@babel/runtime': [ '7.20.1' ],
    106 silly audit   '@babel/template': [ '7.18.10' ],
    106 silly audit   '@babel/traverse': [ '7.20.1' ],
    106 silly audit   '@babel/types': [ '7.20.2' ],
    106 silly audit   '@formatjs/ecma402-abstract': [ '1.11.4' ],
    106 silly audit   '@formatjs/fast-memoize': [ '1.2.1' ],
    106 silly audit   '@formatjs/icu-messageformat-parser': [ '2.1.0' ],
    106 silly audit   '@formatjs/icu-skeleton-parser': [ '1.3.6' ],
    106 silly audit   '@formatjs/intl-localematcher': [ '0.2.25' ],
    106 silly audit   '@istanbuljs/load-nyc-config': [ '1.1.0' ],
    106 silly audit   '@istanbuljs/schema': [ '0.1.3' ],
    106 silly audit   '@jridgewell/resolve-uri': [ '3.1.0' ],
    106 silly audit   '@jridgewell/set-array': [ '1.1.2' ],
    106 silly audit   '@jridgewell/source-map': [ '0.3.2' ],
    106 silly audit   '@jridgewell/sourcemap-codec': [ '1.4.14' ],
    106 silly audit   '@jridgewell/trace-mapping': [ '0.3.17' ],
    106 silly audit   '@nicolo-ribaudo/chokidar-2': [ '2.1.8-no-fsevents.3' ],
    106 silly audit   '@types/eslint': [ '8.4.10' ],
    106 silly audit   '@types/eslint-scope': [ '3.7.4' ],
    106 silly audit   '@types/estree': [ '0.0.51' ],
    106 silly audit   '@types/json-schema': [ '7.0.11' ],
    106 silly audit   '@types/node': [ '18.11.9' ],
    106 silly audit   '@webassemblyjs/ast': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/floating-point-hex-parser': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/helper-api-error': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/helper-buffer': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/helper-numbers': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/helper-wasm-bytecode': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/helper-wasm-section': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/ieee754': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/leb128': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/utf8': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/wasm-edit': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/wasm-gen': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/wasm-opt': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/wasm-parser': [ '1.11.1' ],
    106 silly audit   '@webassemblyjs/wast-printer': [ '1.11.1' ],
    106 silly audit   '@xtuc/ieee754': [ '1.2.0' ],
    106 silly audit   '@xtuc/long': [ '4.2.2' ],
    106 silly audit   acorn: [ '8.8.1' ],
    106 silly audit   'acorn-import-assertions': [ '1.8.0' ],
    106 silly audit   ajv: [ '8.11.2', '6.12.6' ],
    106 silly audit   'ajv-formats': [ '2.1.1' ],
    106 silly audit   'ajv-keywords': [ '5.1.0', '3.5.2' ],
    106 silly audit   'ansi-styles': [ '3.2.1' ],
    106 silly audit   anymatch: [ '3.1.3' ],
    106 silly audit   argparse: [ '1.0.10' ],
    106 silly audit   'babel-loader': [ '9.1.0' ],
    106 silly audit   'find-cache-dir': [ '3.3.2', '2.1.0' ],
    106 silly audit   'make-dir': [ '3.1.0', '2.1.0' ],
    106 silly audit   'pkg-dir': [ '4.2.0', '3.0.0' ],
    106 silly audit   'babel-plugin-istanbul': [ '6.1.1' ],
    106 silly audit   'babel-plugin-module-resolver': [ '4.1.0' ],
    106 silly audit   'babel-plugin-polyfill-corejs2': [ '0.3.3' ],
    106 silly audit   'babel-plugin-polyfill-corejs3': [ '0.6.0' ],
    106 silly audit   'babel-plugin-polyfill-regenerator': [ '0.4.1' ],
    106 silly audit   'balanced-match': [ '1.0.2' ],
    106 silly audit   'binary-extensions': [ '2.2.0' ],
    106 silly audit   'brace-expansion': [ '1.1.11' ],
    106 silly audit   braces: [ '3.0.2' ],
    106 silly audit   browserslist: [ '4.21.4' ],
    106 silly audit   'buffer-from': [ '1.1.2' ],
    106 silly audit   camelcase: [ '5.3.1' ],
    106 silly audit   'caniuse-lite': [ '1.0.30001434' ],
    106 silly audit   chalk: [ '2.4.2' ],
    106 silly audit   chokidar: [ '3.5.3' ],
    106 silly audit   'chrome-trace-event': [ '1.0.3' ],
    106 silly audit   'clone-deep': [ '4.0.1' ],
    106 silly audit   'color-convert': [ '1.9.3' ],
    106 silly audit   'color-name': [ '1.1.3' ],
    106 silly audit   commander: [ '4.1.1', '2.20.3' ],
    106 silly audit   commondir: [ '1.0.1' ],
    106 silly audit   'concat-map': [ '0.0.1' ],
    106 silly audit   'convert-source-map': [ '1.9.0' ],
    106 silly audit   'core-js-compat': [ '3.26.1' ],
    106 silly audit   debug: [ '4.3.4' ],
    106 silly audit   'electron-to-chromium': [ '1.4.284' ],
    106 silly audit   elementtree: [ '0.1.7' ],
    106 silly audit   'enhanced-resolve': [ '5.11.0' ],
    106 silly audit   'es-module-lexer': [ '0.9.3' ],
    106 silly audit   escalade: [ '3.1.1' ],
    106 silly audit   'escape-string-regexp': [ '1.0.5' ],
    106 silly audit   'eslint-scope': [ '5.1.1' ],
    106 silly audit   esprima: [ '4.0.1' ],
    106 silly audit   esrecurse: [ '4.3.0' ],
    106 silly audit   estraverse: [ '5.3.0', '4.3.0' ],
    106 silly audit   esutils: [ '2.0.3' ],
    106 silly audit   events: [ '3.3.0' ],
    106 silly audit   'fast-deep-equal': [ '3.1.3' ],
    106 silly audit   'fast-json-stable-stringify': [ '2.1.0' ],
    106 silly audit   'fill-range': [ '7.0.1' ],
    106 silly audit   'find-babel-config': [ '1.2.0' ],
    106 silly audit   json5: [ '0.5.1', '2.2.1' ],
    106 silly audit   'find-up': [ '4.1.0', '3.0.0' ],
    106 silly audit   'path-exists': [ '4.0.0', '3.0.0' ],
    106 silly audit   fluent: [ '0.11.0' ],
    106 silly audit   fontoxpath: [ '3.28.2' ],
    106 silly audit   'fs-readdir-recursive': [ '1.1.0' ],
    106 silly audit   'fs.realpath': [ '1.0.0' ],
    106 silly audit   fsevents: [ '2.3.2' ],
    106 silly audit   'function-bind': [ '1.1.1' ],
    106 silly audit   gensync: [ '1.0.0-beta.2' ],
    106 silly audit   'get-package-type': [ '0.1.0' ],
    106 silly audit   glob: [ '7.2.3' ],
    106 silly audit   'glob-parent': [ '5.1.2' ],
    106 silly audit   'glob-to-regexp': [ '0.4.1' ],
    106 silly audit   globals: [ '11.12.0' ],
    106 silly audit   'graceful-fs': [ '4.2.10' ],
    106 silly audit   has: [ '1.0.3' ],
    106 silly audit   'has-flag': [ '3.0.0', '4.0.0' ],
    106 silly audit   inflight: [ '1.0.6' ],
    106 silly audit   inherits: [ '2.0.4' ],
    106 silly audit   'intl-format-cache': [ '4.3.1' ],
    106 silly audit   'intl-messageformat': [ '9.13.0' ],
    106 silly audit   'intl-relativeformat': [ '6.4.3' ],
    106 silly audit   'is-binary-path': [ '2.1.0' ],
    106 silly audit   'is-core-module': [ '2.11.0' ],
    106 silly audit   'is-extglob': [ '2.1.1' ],
    106 silly audit   'is-glob': [ '4.0.3' ],
    106 silly audit   'is-number': [ '7.0.0' ],
    106 silly audit   'is-plain-object': [ '2.0.4' ],
    106 silly audit   isobject: [ '3.0.1' ],
    106 silly audit   'istanbul-lib-coverage': [ '3.2.0' ],
    106 silly audit   'istanbul-lib-instrument': [ '5.2.1' ],
    106 silly audit   'jest-worker': [ '27.5.1' ],
    106 silly audit   'supports-color': [ '8.1.1', '5.5.0' ],
    106 silly audit   'js-tokens': [ '4.0.0' ],
    106 silly audit   'js-yaml': [ '3.14.1' ],
    106 silly audit   jsesc: [ '2.5.2', '0.5.0' ],
    106 silly audit   'json-parse-even-better-errors': [ '2.3.1' ],
    106 silly audit   'json-schema-traverse': [ '1.0.0', '0.4.1' ],
    106 silly audit   'kind-of': [ '6.0.3' ],
    106 silly audit   link: [ '1.5.1' ],
    106 silly audit   'loader-runner': [ '4.3.0' ],
    106 silly audit   'locate-path': [ '5.0.0', '3.0.0' ],
    106 silly audit   'lodash.debounce': [ '4.0.8' ],
    106 silly audit   semver: [ '5.7.1', '6.3.0' ],
    106 silly audit   'merge-stream': [ '2.0.0' ],
    106 silly audit   'mime-db': [ '1.52.0' ],
    106 silly audit   'mime-types': [ '2.1.35' ],
    106 silly audit   minimatch: [ '3.1.2' ],
    106 silly audit   ms: [ '2.1.2' ],
    106 silly audit   'neo-async': [ '2.6.2' ],
    106 silly audit   'node-releases': [ '2.0.6' ],
    106 silly audit   'normalize-path': [ '3.0.0' ],
    106 silly audit   'nunjucks-intl': [ '1.0.3' ],
    106 silly audit   once: [ '1.4.0' ],
    106 silly audit   'p-limit': [ '2.3.0' ],
    106 silly audit   'p-locate': [ '4.1.0', '3.0.0' ],
    106 silly audit   'p-try': [ '2.2.0' ],
    106 silly audit   'path-is-absolute': [ '1.0.1' ],
    106 silly audit   'path-parse': [ '1.0.7' ],
    106 silly audit   picocolors: [ '1.0.0' ],
    106 silly audit   picomatch: [ '2.3.1' ],
    106 silly audit   pify: [ '4.0.1' ],
    106 silly audit   pirates: [ '4.0.5' ],
    106 silly audit   'pkg-up': [ '3.1.0' ],
    106 silly audit   prsc: [ '4.0.0' ],
    106 silly audit   punycode: [ '2.1.1' ],
    106 silly audit   randombytes: [ '2.1.0' ],
    106 silly audit   readdirp: [ '3.6.0' ],
    106 silly audit   regenerate: [ '1.4.2' ],
    106 silly audit   'regenerate-unicode-properties': [ '10.1.0' ],
    106 silly audit   'regenerator-runtime': [ '0.13.11' ],
    106 silly audit   'regenerator-transform': [ '0.15.1' ],
    106 silly audit   'regexpu-core': [ '5.2.2' ],
    106 silly audit   regjsgen: [ '0.7.1' ],
    106 silly audit   regjsparser: [ '0.9.1' ],
    106 silly audit   'require-from-string': [ '2.0.2' ],
    106 silly audit   reselect: [ '4.1.7' ],
    106 silly audit   resolve: [ '1.22.1' ],
    106 silly audit   'resolve-from': [ '5.0.0' ],
    106 silly audit   'safe-buffer': [ '5.2.1' ],
    106 silly audit   sax: [ '1.1.4' ],
    106 silly audit   'schema-utils': [ '4.0.0', '3.1.1' ],
    106 silly audit   'serialize-javascript': [ '6.0.0' ],
    106 silly audit   'shallow-clone': [ '3.0.1' ],
    106 silly audit   slash: [ '2.0.0' ],
    106 silly audit   'source-map': [ '0.6.1' ],
    106 silly audit   'source-map-support': [ '0.5.21' ],
    106 silly audit   'sprintf-js': [ '1.0.3' ],
    106 silly audit   'supports-preserve-symlinks-flag': [ '1.0.0' ],
    106 silly audit   tapable: [ '2.2.1' ],
    106 silly audit   terser: [ '5.15.1' ],
    106 silly audit   'terser-webpack-plugin': [ '5.3.6' ],
    106 silly audit   'test-exclude': [ '6.0.0' ],
    106 silly audit   'to-fast-properties': [ '2.0.0' ],
    106 silly audit   'to-regex-range': [ '5.0.1' ],
    106 silly audit   tslib: [ '2.4.1' ],
    106 silly audit   'unicode-canonical-property-names-ecmascript': [ '2.0.0' ],
    106 silly audit   'unicode-match-property-ecmascript': [ '2.0.0' ],
    106 silly audit   'unicode-match-property-value-ecmascript': [ '2.1.0' ],
    106 silly audit   'unicode-property-aliases-ecmascript': [ '2.1.0' ],
    106 silly audit   'update-browserslist-db': [ '1.0.10' ],
    106 silly audit   'uri-js': [ '4.4.1' ],
    106 silly audit   watchpack: [ '2.4.0' ],
    106 silly audit   webpack: [ '5.75.0' ],
    106 silly audit   'webpack-sources': [ '3.2.3' ],
    106 silly audit   whynot: [ '5.0.0' ],
    106 silly audit   wrappy: [ '1.0.2' ],
    106 silly audit   xmldom: [ '0.1.31' ],
    106 silly audit   xpath: [ '0.0.27' ],
    106 silly audit   xspattern: [ '3.0.0' ],
    106 silly audit   nunjucks: [ '3.2.3' ]
    106 silly audit }
    107 verbose reify failed optional dependency C:\Users\myuser\workspace\site-web\siteinnes2019\node_modules\fsevents
    108 silly reify mark deleted [
    108 silly reify   'C:\\Users\\myuser\\workspace\\site-web\\siteinnes2019\\node_modules\\fsevents'
    108 silly reify ]
    109 timing reifyNode:node_modules/fsevents Completed in 2ms
    110 timing reifyNode:node_modules/nunjucks Completed in 5ms
    111 timing reify:unpack Completed in 5ms
    112 timing reify:unretire Completed in 0ms
    113 timing build:queue Completed in 0ms
    114 timing build:deps Completed in 0ms
    115 timing build:queue Completed in 0ms
    116 info run [email protected] prepare ../../../AppData/Roaming/npm/node_modules/nunjucks npm run build
    117 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 202ms
    118 timing auditReport:getReport Completed in 210ms
    119 silly audit report {
    119 silly audit report   xmldom: [
    119 silly audit report     {
    119 silly audit report       id: 1082377,
    119 silly audit report       url: 'https://github.com/advisories/GHSA-h6q6-9hqw-rwfv',
    119 silly audit report       title: 'Misinterpretation of malicious XML input',
    119 silly audit report       severity: 'low',
    119 silly audit report       vulnerable_versions: '<0.5.0',
    119 silly audit report       cwe: [Array],
    119 silly audit report       cvss: [Object]
    119 silly audit report     },
    119 silly audit report     {
    119 silly audit report       id: 1067480,
    119 silly audit report       url: 'https://github.com/advisories/GHSA-5fg8-2547-mr8q',
    119 silly audit report       title: 'Misinterpretation of malicious XML input',
    119 silly audit report       severity: 'moderate',
    119 silly audit report       vulnerable_versions: '<0.7.0',
    119 silly audit report       cwe: [Array],
    119 silly audit report       cvss: [Object]
    119 silly audit report     },
    119 silly audit report     {
    119 silly audit report       id: 1084901,
    119 silly audit report       url: 'https://github.com/advisories/GHSA-crh6-fp67-6883',
    119 silly audit report       title: 'xmldom allows multiple root nodes in a DOM',
    119 silly audit report       severity: 'critical',
    119 silly audit report       vulnerable_versions: '<=0.6.0',
    119 silly audit report       cwe: [Array],
    119 silly audit report       cvss: [Object]
    119 silly audit report     }
    119 silly audit report   ]
    119 silly audit report }
    120 timing metavuln:cache:get:security-advisory:xmldom:RcByQplMDvoVV0qNhgWHzd/g+vdOJRoIiT3JCqCzfDdY0tPEaebbRW+gKiBewTE8TSkjFHoqmUp6YHlX6l08jA== Completed in 5ms
    121 timing metavuln:cache:get:security-advisory:xmldom:ujUrXa1B0oSIkeBAqBIIxletsXHqAWswoc/e+flOOPqm/KAnxBbYNhvVC4j1m+qOd9sahOsks6N03rEUdRqBeg== Completed in 4ms
    122 timing metavuln:cache:get:security-advisory:xmldom:/MQv5neyFkpqCwEgiWI7HukCHE6jept1Ax0cof+0WPKRxMwNUnIFMmJn7uG47uAqtXEawZZo8/XeyU9ZU9mBRg== Completed in 5ms
    123 http fetch GET 200 https://registry.npmjs.org/xmldom 54ms (cache revalidated)
    124 timing metavuln:packument:xmldom Completed in 55ms
    125 timing metavuln:load:security-advisory:xmldom:1082377 Completed in 1ms
    126 timing metavuln:calculate:security-advisory:xmldom:1082377 Completed in 58ms
    127 timing metavuln:load:security-advisory:xmldom:1067480 Completed in 0ms
    128 timing metavuln:calculate:security-advisory:xmldom:1067480 Completed in 56ms
    129 timing metavuln:load:security-advisory:xmldom:1084901 Completed in 1ms
    130 timing metavuln:calculate:security-advisory:xmldom:1084901 Completed in 57ms
    131 timing auditReport:init Completed in 66ms
    132 timing reify:audit Completed in 276ms
    133 info run [email protected] prepare { code: 2, signal: null }
    134 timing reify:rollback:createSparse Completed in 2ms
    135 timing reify:rollback:retireShallow Completed in 14ms
    136 timing command:link Completed in 5914ms
    137 verbose stack Error: command failed
    137 verbose stack     at ChildProcess.<anonymous> (C:\Users\myuser\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:53:27)
    137 verbose stack     at ChildProcess.emit (node:events:513:28)
    137 verbose stack     at maybeClose (node:internal/child_process:1100:16)
    137 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
    138 verbose pkgid [email protected]
    139 verbose cwd C:\Users\myuser\workspace\site-web\siteinnes2019
    140 verbose Windows_NT 10.0.19044
    141 verbose node v16.18.1
    142 verbose npm  v9.1.2
    143 error code 2
    144 error path C:\Users\myuser\AppData\Roaming\npm\node_modules\nunjucks
    145 error command failed
    146 error command C:\Windows\system32\cmd.exe /d /s /c npm run build
    147 error > [email protected] build
    147 error > npm run build:transpile && npm run build:bundle
    147 error
    147 error
    147 error > [email protected] build:transpile
    147 error > babel nunjucks --out-dir .
    148 error babel:
    148 error   nunjucks does not exist
    149 verbose exit 2
    150 timing npm Completed in 5992ms
    151 verbose unfinished npm timer reify 1669223227992
    152 verbose unfinished npm timer reify:build 1669223228774
    153 verbose unfinished npm timer build 1669223228775
    154 verbose unfinished npm timer build:links 1669223228775
    155 verbose unfinished npm timer build:run:prepare 1669223228775
    156 verbose unfinished npm timer build:run:prepare:../../../AppData/Roaming/npm/node_modules/nunjucks 1669223228776
    157 verbose code 2
    158 error A complete log of this run can be found in:
    158 error     C:\Users\myuser\AppData\Local\npm-cache\_logs\2022-11-23T17_07_07_089Z-debug-0.log
    

    Can anyone tell me how to fix this problem, please ? I would really appreciate some help.

    Regards,

    Xavier

    opened by xavier-ottolini 0
  • Block assignment filters do not work

    Block assignment filters do not work

    Jinja supports block assignment since v2.8 and block assignment filters since v2.10. The latter is missing from Nunjucks and should be supported.

    For example, the template below

    {% set content | indent(2, true) %}
    This is some text
    
    and this is some text
    {% endset %}
    {{ content }}
    

    when rendering, raises the error

    Uncaught:
    Template render error: (unknown path) [Line 1, Column 4]
      parseSet: expected = or block end in set tag
    
    opened by dhruvkb 0
Releases(v3.2.3)
  • v3.2.3(Jun 2, 2022)

  • v3.2.2(Jul 20, 2020)

    • Add select and reject filters. Merge of #1278 and #1279; fixes #282. Thanks ogonkov!
    • Fix precompile binary script TypeError: name.replace is not a function. Fixes #1295.
    • Add support for nested attributes on groupby filter; respect throwOnUndefined option, if the groupby attribute is undefined. Merge of #1276; fixes #1198. Thanks ogonkov!
    • Fix bug that prevented errors in included templates from being raised when rendering templates synchronously. Fixes #1272.
    • The indent filter no longer appends an additional newline. Fixes #1231.
    Source code(tar.gz)
    Source code(zip)
  • v3.2.1(Jul 13, 2020)

  • v3.2.0(Mar 5, 2019)

  • v3.1.7(Jan 12, 2019)

  • v3.1.6(Jan 12, 2019)

  • v3.1.5(Jan 12, 2019)

  • v3.1.4(Jan 12, 2019)

  • v3.1.3(May 19, 2018)

    • Add forceescape filter. Fixes #782

    • Fix regression that prevented template errors from reporting line and column number. Fixes #1087 and #1095.

    • Fix "Invalid type: Is" error for {% if value is defined %}. Fixes #1110

    • Formally drop support for node v4 (the upgrade to babel 7 in v3.1.0 made the build process incompatible with node < 6.9.0).

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Feb 20, 2018)

    • Support nunjucks.installJinjaCompat() with slim build. Fixes #1019

    • Fix calling render callback twice when a conditional import throws an error. Solves #1029

    • Support objects created with Object.create(null). fixes #468

    • Support ESNext iterators, using Array.from. Merge of #1058

    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(May 24, 2017)

    • Fix handling methods and attributes of static arrays, objects and primitives. Solves the issue #937
    • Add support for python-style array slices with Jinja compat enabled. Fixes #188; merge of #976.
    • Fix call blocks having access to their parent scope. Fixes #906; merge of #994.
    • Fix a bug that caused capturing block tags (e.g. set/endset, filter/endfilter) to write to the global buffer rather than capturing their contents. Fixes #914 and #972; merge of #990. Thanks Noah Lange.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Nov 5, 2016)

    • Allow including many templates without reaching recursion limits. Merge of #787. Thanks Gleb Khudyakov.
    • Allow explicitly setting null (aka none) as the value of a variable; don't ignore that value and look on up the frame stack or context. Fixes #478. Thanks Jonny Gerig Meyer for the report.
    • Execute blocks in a child frame that can't write to its parent. This means that vars set inside blocks will not leak outside of the block, base templates can no longer see vars set in templates that inherit them, and super() can no longer set vars in its calling scope. Fixes the inheritance portion of #561, which fully closes that issue. Thanks legutierr for the report.
    • Prevent macros from seeing or affecting their calling scope. Merge of #667.
    • Fix handling of macro arg with default value which shares a name with another macro. Merge of #791.
    • Add support for the spaces parameter in the dump template filter. Merge of #868. Thanks Jesse Eikema
    • Add verbatim as an alias of raw for compatibility with Twig. Merge of #874.
    • Add new nl2br filter. Thanks Marc-Aurèle Darche
    • Add support for python's list.append with Jinja compat enabled. Thanks Conor Flannigan.
    • Add variables whitespace control.
    Source code(tar.gz)
    Source code(zip)
  • v2.5.2(Sep 14, 2016)

  • v2.5.1(Sep 13, 2016)

  • v2.5.0(Sep 7, 2016)

    • Add elseif as an alias of elif for parity with Twig. Thanks kswedberg. Merge of #826.
    • Add nunjucks env to express app settings as nunjucksEnv. Merge of #829.
    • Add support for finding an object's "length" in length filter. Merge of #813.
    • Ensure that precompiling on Windows still outputs POSIX-style path separators. Merge of #761.
    • Add support for strict type check comparisons (=== and !===). Thanks oughter. Merge of #746.
    • Allow full expressions (incl. filters) in import and from tags. Thanks legutierr. Merge of #710.
    • OS agnostic file paths in precompile. Merge of #825.
    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Sep 7, 2016)

    • Fix potential cast-related XSS vulnerability in autoescape mode, and with escape filter. Thanks Matt Austin for the report and Thomas Hunkapiller for the fix. #836
    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Apr 15, 2016)

    • Fix use of in operator with strings. Fixes #714. Thanks Zubrik for the report.
    • Support ES2015 Map and Set in length filter. Merge of #705. Thanks ricordisamoa.
    • Remove truncation of long function names in error messages. Thanks Daniel Bendavid. Merge of #702.
    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Mar 17, 2016)

    Pay careful attention to the escaping fixes in this release; the escape filter now won't double-escape strings that have already been escaped / marked safe. This matches the Jinja2 behavior.

    • Don't double-escape. Thanks legutierr. Merge of #701.
    • Prevent filter.escape from escaping SafeString. Thanks atian25. Merge of #623.
    • Throw an error if a block is defined multiple times. Refs #696.
    • Officially recommend the .njk extension. Thanks David Kebler. Merge of #691.
    • Allow block-set to wrap an inheritance block. Unreported; fixed as a side effect of the fix for #576.
    • Fix filter tag with non-trivial contents. Thanks Stefan Cruz and Fabien Franzen for report and investigation, Jan Oopkaup for failing tests. Fixes #576.
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Mar 10, 2016)

    Lots of great bugfixes and small new features in this release! Many thanks to all the contributors.

    • Allow retrieving boolean-false as a global. Thanks Marius Büscher. Merge of #694.
    • Don't automatically convert any for-loop that has an include statement into an async loop. Reverts 7d4716f4fd, re-opens #372, fixes #527. Thanks Tom Delmas for the report.
    • Switch from Optimist to Yargs for argument-parsing. Thanks Bogdan Chadkin. Merge of #672.
    • Prevent includes from writing to their including scope. Merge of #667 (only partially backported to 2.x; macro var visibility not backported).
    • Fix handling of dev environment option, to get full tracebacks on errors (including nunjucks internals). Thanks Tobias Petry and Chandrasekhar Ambula V for the report, Aleksandr Motsjonov for draft patch.
    • Support using in operator to search in both arrays and objects, and it will throw an error for other data types. Fix #659. Thanks Alex Mayfield for report and test, Ouyang Yadong for fix. Merge of #661.
    • Add support for {% set %} block assignments as in jinja2. Thanks Daniele Rapagnani. Merge of #656
    • Fix {% set %} scoping within macros. Fixes #577 and the macro portion of #561. Thanks Ouyang Yadong. Merge of #653.
    • Add support for named endblock (e.g. {% endblock foo %}). Thanks ricordisamoa. Merge of #641.
    • Fix range global with zero as stop-value. Thanks Thomas Hunkapiller. Merge of #638.
    • Fix a bug in urlize that collapsed whitespace. Thanks Paulo Bu. Merge of #637.
    • Add sum filter. Thanks Pablo Matías Lazo. Merge of #629.
    • Don't suppress errors inside {% if %} tags. Thanks Artemy Tregubenko for report and test, Ouyang Yadong for fix. Merge of #634.
    • Allow whitespace control on comment blocks, too. Thanks Ouyang Yadong. Merge of #632.
    • Fix whitespace control around nested tags/variables/comments. Thanks Ouyang Yadong. Merge of #631.
    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(Jan 6, 2016)

    • Return null from WebLoader on missing template instead of throwing an error, for consistency with other loaders. This allows WebLoader to support the new ignore missing flag on the include tag. If ignore missing is not set, a generic "template not found" error will still be thrown, just like for any other loader. Ajax errors other than 404 will still cause WebLoader to throw an error directly.
    • Add preserve-linebreaks option to striptags filter. Thanks Ivan Kleshnin. Merge of #619.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Nov 23, 2015)

    • Add striptags filter. Thanks Anthony Giniers. Merge of #589.
    • Allow compiled templates to be imported, included and extended. Thanks Luis Gutierrez-Sheris. Merge of #581.
    • Fix issue with different nunjucks environments sharing same globals. Each environment is now independent. Thanks Paul Pechin. Merge of #574.
    • Add negative steps support for range function. Thanks Nikita Mostovoy. Merge of #575.
    • Remove deprecation warning when using the default filter without specifying a third argument. Merge of #567.
    • Add support for chaining of addGlobal, addFilter, etc. Thanks Rob Graeber. Merge of #537
    • Fix error propagation. Thanks Tom Delmas. Merge of #534.
    • trimBlocks now also trims windows style line endings. Thanks Magnus Tovslid. Merge of #548
    • include now supports an option to suppress errors if the template does not exist. Thanks Mathias Nestler. Merge of #559
    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Sep 21, 2015)

    • Fix creating WebLoader without opts. Merge of #524.
    • Add hasExtension and removeExtension methods to Environment. Merge of #512.
    • Add support for kwargs in sort filter. Merge of #510.
    • Add none as a lexed constant evaluating to null. Merge of #480.
    • Fix rendering of multiple raw blocks. Thanks Aaron O'Mullan. Merge of #503.
    • Avoid crashing on async loader error. Thanks Samy Pessé. Merge of #504.
    • Add support for keyword arguments for sort filter. Thanks Andres Pardini. Merge of #510
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Aug 28, 2015)

    Most of the changes can be summed up in the issues tagged 2.0.

    Or you can see all commits.

    Most important changes:

    • autoescape is now on by default. You need to explicitly pass { autoescape: false } in the options to turn it off.
    • watch is off by default. You need to explicitly pass { watch: true } to start the watcher.
    • The default filter has changed. It will show the default value only if the argument is undefined. Any other value, even false-y values like false and null, will be returned. You can get back the old behavior by passing true as a 3rd argument to activate the loose-y behavior: foo | default("bar", true). In 2.0 if you don't pass the 3rd argument, a warning will be displayed about this change in behavior. In 2.1 this warning will be removed.
    • New filter tag
    • Lots of other bug fixes and small features, view the above issue list!
    Source code(tar.gz)
    Source code(zip)
  • v1.3.4(Apr 27, 2015)

    This is an extremely minor release that only adds an .npmignore so that the bench, tests, and docs folders do not get published to npm. Nunjucks should download a lot faster now.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Apr 3, 2015)

  • v1.3.0(Apr 3, 2015)

    • Relative templates: you can now load a template relatively by starting the path with ., like ./foo.html
    • FileSystemLoader now takes a noCache option, if true will disable caching entirely
    • Additional lstripBlocks and trimBlocks available to clean output automatically
    • New selectattr and rejectattr filters
    • Small fixes to the watcher
    • Several bug fixes

    cc83724 prep for v1.3.0 eaa0f78 Merge pull request #370 from MaxKramnik/master c00a33b Removing ignoreInitial option for chokidar to refresh view after first template save, removing event == "add" 3664163 Merge pull request #391 from SamyPesse/fix/windows 0f8b21b Simplify EOL norm regex in tests 41dd01c Disable windows tests for node 0.8 ce18959 Add very simple test for precompile ff075af Fix #392: fix precompile.js for strict mode 7ff10e3 Use explicit path to mocha bin in test script 3b2f4ea Remove make as testing dependency f58fd64 Add appveyor.yml for windows testing 5b48f29 Improve EOL normalization for tests f08182c Add method to normalize EOL in tests 8974aa3 Merge pull request #390 from mozilla/fix-watching cde3dc5 fix watching in node-loader dda4e84 Fix escape for windows path 8ef8c47 Merge pull request #389 from SamyPesse/patch-1 1388170 Fix error when template is not found 2a2a31f Merge pull request #387 from mozilla/eqeqeq 2af7844 use === and !== instead == and != 4245822 Merge pull request #386 from mozilla/use-strict 459e400 Add 'use strict'; #1 3f83a11 Merge pull request #385 from mozilla/single-quote d930a2d Change always using single quote 901d808 Merge pull request #379 from SamyPesse/fix/378 4568ace Add method isRelative to loader fcd71c6 Merge pull request #380 from stevemao/patch-1 4a5e862 add keywords in package.json e0b1431 Don't force template name to be a string in compiler c8b3b16 Remove useless that 17bc3f0 Fix #378: move cache to loader 252b76a Fix #375: Always resolve path when parentName is present 0f4a85c Improve cache performance for relative path af62c97 Add test for cache path of relative paths 42d2b9f minor cleanup, regenerate browserfiles 1077f97 Merge pull request #349 from SamyPesse/feature/relative 9c6b2bb Pass name to compiler creation 52412a1 Accept path options in env.renderString 103dd2c Add test for relative path and renderString 1b7dcc6 Resolve of relative paths is done by loader 40d4ce7 Add tests for relative paths 9946ee8 Fix test of position of template file d292cce Accept absolute path in FileSystemLoader 7bc9cd3 use parentName in getTemplate to resolve name 8285207 Pass name to getTemplate 4ce458e emit update when the template is changed the first time when the event == "add" 3dd3158 Add selectattr and rejectattr in built-in filters list. aae3ec9 merge docs into main repo 8c6e2bc Merge pull request #354 from SamyPesse/feature/nocacheoption dafc9e3 Merge pull request #355 from radev/master ab9a7c7 Merge pull request #365 from carljm/selectattr 904316a Merge pull request #364 from carljm/list-on-array dcfa36a Allow list filter to pass arrays through as-is. bab41dc Add support for selectattr and rejectattr filters. 9a77099 Moved environment options to opts fecfa42 Implement lstripBlocks and trimBlocks from Jinja2 e7572fd Add option to "noCache" to FileSystemLoader

    Source code(tar.gz)
    Source code(zip)
  • v.1.3.1(Apr 3, 2015)

  • v1.2.0(Feb 4, 2015)

    • The special non-line-breaking space is considered whitespace now
    • The in operator has a lower precedence now. This is potentially a breaking change, thus the minor version bump. See https://github.com/mozilla/nunjucks/pull/336
    • import with context now implemented: https://github.com/mozilla/nunjucks/pull/319
    • async rendering doesn't throw compile errors

    24024b5 (HEAD, origin/master, master) Merge pull request #353 from SamyPesse/patch-1 324a875 Fix tests for non-breaking whitespaces 8b81acb Add test for non-breaking spaces 0815d4d use \u00A0 instead of String.charCode 2aaed2a Add nonbreaking space to whitespace chars list 52a50fc Fix spelling c0baa5c Merge pull request #306 from eventEmitter/master 5f0c528 Merge pull request #336 from carljm/in-precedence 219d2eb Merge pull request #339 from oyyd/my_fork 140ccad Merge pull request #346 from fabien/master 1aaec23 fixed merge conflict e1ab103 Update package.json 3a34fc9 Fix #317 f655747 Add test to verify that imports are without context by default. f710479 Bind 'in' operator more tightly than boolean operators. d5fd4c4 add test to ensure without context works dbdc966 implement import with context 4f6b02e async rendering doesn't throw anymore when compiling errors (fixes https://github.com/mozilla/nunjucks/issues/233) f0b7384 Merge remote-tracking branch 'origin/master' 71d050f fix type in _matches in tokenizer (fixes #294) 99033de Merge pull request #300 from rhengles/bin-precompile-windows b8fe5ca fix typo in error message in parsePrimary (fixed #297) e67a405 precompile command for Windows fbf5dd5 Revert "upgrade chokidar"

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Sep 30, 2014)

    User visible changes:

    • Fix a bug in urlize that would remove periods
    • custom tag syntax (like {% and %}) was made Environment-specific internally. Previously they were global even though you set them through the Environment.
    • Remove aggressive optimization that only emitted loop variables when uses. It introduced several bugs and didn't really improve perf.
    • Support the regular expression syntax like /foo/g.
    • The replace filter can take a regex as the first argument
    • The call tag was implemented
    • for tags can now take an else clause
    • The cycler object now exposes the current item as the current property
    • The chokidar library was updated and should fix various issues

    Dev changes:

    • Test coverage now available via istanbul. Will automatically display after running tests.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.7(Aug 15, 2014)

    Mixed up a few things in the 1.0.6 release, so another small bump. This merges in one thing:

    • The length filter will not throw an error is used on an undefined variable. It will return 0 if the variable is undefined.
    Source code(tar.gz)
    Source code(zip)
Owner
Mozilla
This technology could fall into the right hands.
Mozilla
Asynchronous Javascript templating for the browser and server

Dust.js Asynchronous Javascript templating for the browser and server. This fork is maintained by LinkedIn. Install NPM Important: We recommend that y

LinkedIn 2.9k Dec 31, 2022
Asynchronous Javascript templating for the browser and server

Dust.js Asynchronous Javascript templating for the browser and server. This fork is maintained by LinkedIn. Install NPM Important: We recommend that y

LinkedIn 2.9k Dec 31, 2022
Semi-embedded JS template engine that supports helpers, filters, partials, and template inheritance. 4KB minzipped, written in TypeScript ⛺

squirrelly Documentation - Chat - RunKit Demo - Playground Summary Squirrelly is a modern, configurable, and blazing fast template engine implemented

Squirrelly 451 Jan 2, 2023
Minimal templating with {{mustaches}} in JavaScript

mustache.js - Logic-less {{mustache}} templates with JavaScript What could be more logical awesome than no logic at all? mustache.js is a zero-depende

Jan Lehnardt 15.7k Jan 7, 2023
handlebars.js - An extension to the Mustache templating language.

Handlebars.js Handlebars provides the power necessary to let you build semantic templates effectively with no frustration. Handlebars is largely compa

The Handlebars Templating Language 16.9k Jan 5, 2023
A compiler for the Mustache templating language

Hogan.js - A mustache compiler. Hogan.js is a compiler for the Mustache templating language. For information on Mustache, see the manpage and the spec

Twitter 5.1k Jan 2, 2023
A tiny javascript templating framework in ~400 bytes gzipped

t.js A tiny javascript templating framework in ~400 bytes gzipped t.js is a simple solution to interpolating values in an html string for insertion in

Jason Mooberry 823 Dec 29, 2022
handlebars.js 8.8 4.4 L3 JavaScript An extension to the Mustache templating language.

Handlebars.js Handlebars provides the power necessary to let you build semantic templates effectively with no frustration. Handlebars is largely compa

The Handlebars Templating Language 16.9k Jan 5, 2023
The fastest + concise javascript template engine for nodejs and browsers. Partials, custom delimiters and more.

doT Created in search of the fastest and concise JavaScript templating function with emphasis on performance under V8 and nodejs. It shows great perfo

Laura Doktorova 4.9k Dec 31, 2022
Embedded JS template engine for Node, Deno, and the browser. Lighweight, fast, and pluggable. Written in TypeScript

eta (η) Documentation - Chat - RunKit Demo - Playground Summary Eta is a lightweight and blazing fast embedded JS templating engine that works inside

Eta 682 Dec 29, 2022
eXtensible Template Engine lib for node and the browser

xtemplate High Speed, eXtensible Template Engine lib on browser and nodejs. support async control, inheritance, include, logic expression, custom func

xtemplate 553 Nov 21, 2022
Pug – robust, elegant, feature rich template engine for Node.js

Pug Full documentation is at pugjs.org Pug is a high-performance template engine heavily influenced by Haml and implemented with JavaScript for Node.j

Pug 21.1k Dec 30, 2022
Take a swig of the best template engine for JavaScript.

NOT MAINTAINED Fork and use at your own risk. Swig Swig is an awesome, Django/Jinja-like template engine for node.js. Features Available for node.js a

Paul Armstrong 3.1k Jan 4, 2023
This is a simple ticket system bot using discord.js v13 and node.js v17. It works with buttons and slashcommands.

Ticket-bot This is an simple ticket system bot using discord.js v13. If you find an error or need support, go to my discord server and open a ticket >

Cristhian 14 Jan 2, 2023
💌 mailgo, a new concept of mailto and tel links

?? mailgo a new concept of mailto and tel links https://mailgo.dev Transform all your mailto and tel link in a beautiful modal with more possibilities

Matteo Manzinello 1k Dec 31, 2022
Highly opinionated project template for Serverless Framework that follows and applies hexagonal architecture principle to serverless world. Prepared with easy testing in mind.

serverless-hexagonal-template Highly opinionated project template for Serverless Framework that applies hexagonal architecture principles to the serve

Paweł Zubkiewicz 126 Dec 26, 2022
A helper to send whatsapp without scheduling a contact, the project developed using TDD with Jest, Javascript classes, BotstrapVue and SweetAlert.

Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build Lints and fixes

Magascript 7 Sep 13, 2022
Combines Hardhat, TypeChain, Ethers, Waffle, Solhint, Solcover and Prettier

Solidity Template My favourite setup for writing Solidity smart contracts. Hardhat: compile and run the smart contracts on a local development network

Kenneth Luster 3 Oct 19, 2021
Examples of how to re-create the WordPress Template Hierarchy using headless clients and WPGraphQL

WPGraphQL Template Hierarchy Debugger This is a project to demonstrate how to re-create the WordPress template hierarchy with Headless WordPress using

Jason Bahl 17 Oct 29, 2022