Skip to main content

Configurable generation of importmaps, from Jinja2, Python, or shell.

Project description

jinja2-importmap

This package provides a simple tool for generating import maps from a directory in the usual node_modules format.

This can be done either from a directory, or from the contents of a Python package, for example if lists vendored JS dependencies in MANIFEST.in.

Use from Command Line

This package also provides a matching command line tool, jinja2_importmap:

$ jinja2_importmap demo/node_modules --prefix="url/prefix"                                                                                                                                                  19.7.0  jinja2-importmap
{
    "imports": {
        "codemirror": "url/prefix/codemirror/dist/index.js",
        "crelt": "url/prefix/crelt/index.es.js",
        ".yarn-integrity": "url/prefix/None",
        "w3c-keyname": "url/prefix/w3c-keyname/index.es.js",
        "@codemirror/lint": "url/prefix/@codemirror/lint/dist/index.js",
        "@codemirror/autocomplete": "url/prefix/@codemirror/autocomplete/dist/index.js",
        "@codemirror/language": "url/prefix/@codemirror/language/dist/index.js",
        "@codemirror/state": "url/prefix/@codemirror/state/dist/index.js",
        "@codemirror/search": "url/prefix/@codemirror/search/dist/index.js",
        "@codemirror/view": "url/prefix/@codemirror/view/dist/index.js",
        "@codemirror/commands": "url/prefix/@codemirror/commands/dist/index.js",
        "style-mod": "url/prefix/style-mod/src/style-mod.js",
        "@lezer/highlight": "url/prefix/@lezer/highlight/dist/index.js",
        "@lezer/common": "url/prefix/@lezer/common/dist/index.js",
        "@lezer/lr": "url/prefix/@lezer/lr/dist/index.js"
    }
}%

You can also equivalently use python -m jinja2_importmap to run the tool, or import jinja2_importmap.core.scan_packages for use in your own code.

Use from Jinja Template

Currently, a custom parsed tag is not yet implemented. However, loading the jinja2_importmap.ext.importmapextension will currently add importmap (an alias to scan_packages) to the global namespace.

{{ importmap("web/static/vendor", package="my_package", prefix="static") }}

The intention is to eventually provide:

{% importmap "web/static/vendor" package="my_package" prefix="static" %}

...or to allow overrides within a block:

{% importmap "web/static/vendor" package="my_package" prefix="static" %}
    {# override automatically generated importmap with json provided here #}
{% endimportmap %}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jinja2-importmap-0.2.4.tar.gz (12.9 kB view details)

Uploaded Source

File details

Details for the file jinja2-importmap-0.2.4.tar.gz.

File metadata

  • Download URL: jinja2-importmap-0.2.4.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for jinja2-importmap-0.2.4.tar.gz
Algorithm Hash digest
SHA256 359ed1a953972234fa51cc574de8fe5c15ae951ca4c4f538ec57b53496fbcabd
MD5 715ab5795e8c9d6d9d41d8911bb1705c
BLAKE2b-256 c984986dba718eec112ea37ae36c1b0d3597dd9010361b72ecaf3806fee7a1a6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page