Skip to main content

A stand-alone renderer for Jinja2 templates

Project description

# `hokora` is a [Jinja2][jinja-main] standalone template parser

You might be familiar with Jinja2 templates if you've worked with Flask, Ansible, Salt or dbt. hokora is a tool for rendering Jinja templates on the command line, or as part of a bash pipeline.

README.md in this repository is itself generated by hokora, from the README.md.in.

Usage

usage: hokora [-h] [--context CONTEXT] [--environ] [-C C] [--no-include-env]
              [--no-include-cwd] [--no-include-template-dir]
              [--include INCLUDE] [--autoescape | --no-autoescape]
              [--strip-shebang | --no-strip-shebang]
              [--clean-whitespace | --no-clean-whitespace | -w]
              [--line-endings [LINE_ENDINGS]]
              [template]

Hokora: Standalone Jinja2 template renderer

positional arguments:
  template              path to template to render

options:
  -h, --help            show this help message and exit
  --autoescape, --no-autoescape
                        whether to escape HTML entities in jinja expressions
  --strip-shebang, --no-strip-shebang
                        remove the first line of the output if it is a bash
                        shebang
  --clean-whitespace, --no-clean-whitespace, -w
                        Remove trailing whitespace from lines of the output
  --line-endings [LINE_ENDINGS]
                        Normalize line endings of the output. Options
                        includeCRLF (windows), LF (unix, modern mac), CR
                        (classic mac).If passed without an argument, the
                        default for your platformwill be used

Jinja Context Variables:
  --context, -c CONTEXT
                        Read the given file for context values to supply as
                        jinja variables. Use key=filename if you want to
                        namespace the data, like {{key.somevar}}. See
                        AVAILABLE CONTEXT FORMATS below for supported file
                        extensions.
  --environ, -e         Make environment variables available as jinja
                        variables

Template search paths:
  -C C                  Change directories to this folder and interpret all
                        paths as relative to it.
  --no-include-env      Don't parse $JINJA_TEMPLATE_DIRS for include folders
  --no-include-cwd      Don't include the current working directory in the
                        search path
  --no-include-template-dir
                        Don't include the template's folder in the search
                        path.
  --include, -I INCLUDE
                        Add this folder to the template include path


ENVIRONMENT VARIABLES

  $JINJA_TEMPLATE_DIRS
    A :-separated list of additional template include paths, which
    will be searched to handle {%extends %}, {%include %} and {%import %}
    tags unless --no-include-env is passed at the command line.

  $HOKORA_MODULES
    Additional python modules (honoring $PYTHONPATH) to import at load time.
    These can be used to extend the functionality of hokora if they contain
    subclasses of DataFormat or HokoraFeature.


AVAILABLE CONTEXT FORMATS

  json                {{ ... | json }}                                *.json
  python              {{ ... | python }}            *.py, *.pyc, *.pyd, *.so
  pickle              {{ ... | pickle }}                     *.pkl, *.pickle
  toml                {{ ... | toml }}                                *.toml
  yaml                {{ ... | yaml }}                         *.yaml, *.yml

Installation

hokora requires Python >=3.10.

Standalone script via uv

If you're on a Unix-like operating system, the ./hokora script in the root of this repo can just be copied into ~/.local/bin or some appropriate place on your $PATH. uv will reach out to gitlab and grab the latest version the first time you run it.

Local install via pipx

pipx install hokora

Local install via pip

python3 -m pip install hokora
```# Metadata

## License

hokora is licensed under a [BSD 3-Clause License](https://gitlab.com/drmoose/hokora/-/blob/main/COPYING), like Jinja
itself.

hokora's icon is licensed under [creative commons attribution share-alike 4.0
international][ccbysa4] with a hat tip to wikimedia user Immanuelle who made
the [original][icon-upstream].


## Name

Jinja itself [says][jinja-faq-name] it's named for a [Shinto
shrine][shrine-wikipedia] because the word "template" sounds vaguely like the
word "temple." Well, two can play the Wikipedia game. A
[_Hokora_][hokora-wikipedia] is a miniature Shinto shrine, and `hokora` is a
miniature wrapper around Jinja.


## Contributing

Issues and MRs are welcome.

- The `main` branch is kept stable. Tinker in topic branches.
- Don't edit `README.md` directly; edit `README.md.in`.
- Update version numbers as necessary. Follow [semver][semver]
- Make sure your code is sane:

  ```bash
  ruff format
  ruff check
  mypy --check-untyped-defs .

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

hokora-0.1.3.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hokora-0.1.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file hokora-0.1.3.tar.gz.

File metadata

  • Download URL: hokora-0.1.3.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for hokora-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e502beba001c53a74be468c5d0214e1cafb8c67d2203ee4f64ed3deefd1ff6a5
MD5 bac06d963f1267bd777ab6ce8eeb19a1
BLAKE2b-256 50479366742c94557b202fda0c77b0c228cb09e6a86a613952fde214e8c3b0d1

See more details on using hashes here.

File details

Details for the file hokora-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: hokora-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for hokora-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca404ab8bf7464dcb49b7c83421a080edbb5436f518a15f35d3dc95a93a75428
MD5 b1ca56537b4669918f16026207285ea9
BLAKE2b-256 966ab575fbbc10d3ae7185d0b0f1cc041d863700f4d1558d0ca70516e232a323

See more details on using hashes here.

Supported by

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