§ Quick Take
import { strict as assert } from "assert";
import { isJinjaSpecific } from "regex-jinja-specific";
assert.equal(
isJinjaSpecific().test(
`<div>{{ '%.2f'|format(3.1415926) }}</div>`
),
true
);
// in case of ambiguous, Nunjucks-or-Jinja code
assert.equal(
isJinjaSpecific().test(`<div>{{ value }}</div>`),
false
);
§ Purpose
Nunjucks and Jinja templating languages' syntax is mostly the same. There are certain code patterns which are Jinja-specific, mostly coming from Python functionality. This program, a regex, matches those patterns.
Namespaces
{% set x = namespace(blablabla) %}
Backwards pattern
{{'oodles' if crambles else 'brambles'}}
Python digit formatting
'%.2f'|format(...
Often Python-specific features can be patched to make code render in Nunjucks.
This is not a definite detection tool but rather a minimal, fun attempt to programmatically distinguish between the two languages.
§ API
isJinjaSpecific()
In other words, it's a function which returns a RegExp object.
§ Changelog
See it in the monorepo , on GitHub.
§ Contributing
To report bugs or request features or assistance, raise an issue on GitHub .
Any code contributions welcome! All Pull Requests will be dealt promptly.
§ Licence
Copyright © 2010–2021 Roy Revelt and other contributors