
Security News
libxml2 Maintainer Ends Embargoed Vulnerability Reports, Citing Unsustainable Burden
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
Generate entire directory structures using Jinja templates with support for external data and custom plugins
makejinja
PyPI | Docker | Docs | Example | Jinja reference
Generate entire directory structures using Jinja templates with support for external data and custom plugins.
makejinja can be used to automatically generate files from Jinja templates. It is conceptually similar to Ansible templates since both are built on top of Jinja. However, makejinja is a standalone tool that can be used without Ansible and offers some advanced features like custom plugins.
A popular use case is generating config files for Home Assistant: Using the same Jinja language that Home Assistant's built-in templates use, you can greatly simplify your configuration management. makejinja's custom delimiter support prevents conflicts with Home Assistant's own template syntax, while file-specific data loading enables modular dashboard and automation generation. Our comprehensive Home Assistant example demonstrates dashboard generation with custom plugins, multiple data sources, and advanced template organization.
<% %>
instead of {{ }}
) to avoid conflicts with target file formats like Home Assistant, Kubernetes, or Terraform.The tool is written in Python and can be installed via uv, nix, and docker. It can be used as a CLI tool or as a Python library.
makejinja is available on PyPI and can be installed via uv
:
uv tool install makejinja
makejinja -i ./input -o ./output
makejinja is packaged in nixpkgs.
To use the most recent version, you can run it via nix run
:
nix run github:mirkolenz/makejinja -- -i ./input -o ./output
Alternatively, you can add this repository as an input to your flake and use makejinja.packages.${system}.default
.
We automatically publish an image to the GitHub Container Registry. To use it, mount a directory to the container and pass the options as the command:
docker run --rm -v $(pwd)/data:/data ghcr.io/mirkolenz/makejinja:latest -i /data/input -o /data/output
In its default configuration, makejinja searches the input directory recursively for files ending in .jinja
.
It then renders these files and writes them to the output directory, preserving the directory structure.
Our documentation contains a detailed description of all options and can also be accessed via makejinja --help
.
FAQs
Generate entire directory structures using Jinja templates with support for external data and custom plugins
We found that makejinja demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.