
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
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
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.