Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

This plugin treats Jinja template expressions as Javascript literals and ignores template statements and comments

License

Notifications You must be signed in to change notification settings

jupyterlab/eslint-plugin-jinja

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project has been archived as it is deprecated.

npm version

eslint-plugin-jinja

This plugin treats Jinja template expressions and statements as valid Javascript expressions, so that ESLint can check javascript code, ignoring any Jinja expression found.

As a note, it is possible that this best effort conversion yeilds false negatives or positives because it is impossible to know the right way to insert placeholders.

Example

Plugin will convert (internally) this code:

  (function() {
    'use strict';

    {# plain jinja variables are converted into strings
      (preferred quotes are getting from .eslintrc file) #}

    var a = 'this is' + {{ some_variable }};

    {# if it is already in string, it is wrapped with spaces #}

    var b = 'this is {{ other_variable }}';
    var c = 'and this is {{ another_one['field']}}';

    {# if-else statements are converted into ( ..., ... ) expression #}

    var d = {% if something %} 'this is something' {% else %} null {% endif %};

    {# any other statements become comments #}
    
    {% for i in [1, 2, 3] %}
      console.log(a, b, c, d);
    {% endfor %}
  })();

into this:

 (function() {
    'use strict';

    /* plain jinja variables are converted into strings
      (preferred quotes are getting from .eslintrc file) */

    var a = 'this is' + '  some_variable  ';

    /* if it is already in string, it is wrapped with spaces */

    var b = 'this is    other_variable   ';
    var c = 'and this is    another_one[ field ]  ';

    /* if-else statements are converted into ( ..., ... ) expression */

    var d = (/*if something */ 'this is something' ,/*else */ null /*endif */);

    /* any other statements become comments */

    /* for i in [1, 2, 3] */
      console.log(a, b, c, d);
    /* endfor */
  })();

About

This plugin treats Jinja template expressions as Javascript literals and ignores template statements and comments

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%