Skip to main content

Automatically generate files based on Jinja templates. Use it to easily generate complex Home Assistant dashboards!

Project description

Installation | Usage | Example | Templating

makejinja is a CLI tool and Python library to automatically generate files from templates.

makejinja

makejinja can be used to automatically generate files from Jinja templates. This allows you to load variables from external files or create repeating patterns via loops. It is conceptually similar to gomplate, but is built on Python and Jinja instead of Go. A use case for this tool is generating config files for Home Assistant: Using the same language that the built-in templates use, you can greatly simplify your configuration. An example for Home Assistant can be found in the tests directory.

Features

  • Recursively convert nested directories containing template files. One can even specify a pattern to specify relevant files in a folder.
  • Load data files containing variables to use in your Jinja templates from YAML, TOML, and Python files.
  • Use custom functions in your Jinja templates by loading custom filters and/or globals.
  • Easily load bundled as well as custom Jinja extensions.
  • Tailor the whitespace behavior to your needs.
  • Use custom delimiters for Jinja blocks/comments/variables.
  • Modify all init options for the Jinja environment.
  • Write custom Python loaders that implement a subset of our fully typed abstract loader class

Installation and Usage

The tool is written in Python and can be installed via pip, nix, and docker. It can be used as a CLI tool or as a Python library. Please refer to the installation instructions for details.

In its default configuration, makejinja searches the input folder recursively for files ending in .jinja. It then renders these files and writes them to the output folder, preserving the directory structure. The manpage contains a detailed description of all options and can also be accessed via makejinja --help.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

makejinja-2.1.0.tar.gz (9.5 kB view hashes)

Uploaded Source

Built Distribution

makejinja-2.1.0-py3-none-any.whl (10.8 kB view hashes)

Uploaded Python 3

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