Skip to content

dududko/rules_minijinja

Repository files navigation

Bazel rules for minijinja

Bazel rules for rendering minijinja templates. Minijinja is a powerful and minimal template engine for Rust, compatible with Jinja2 syntax.

Installation

Using Bzlmod (Bazel 6+)

Add to your MODULE.bazel:

bazel_dep(name = "rules_minijinja", version = "<version>")

To use a commit rather than a release, you can use archive_override:

bazel_dep(name = "rules_minijinja", version = "")

archive_override(
    module_name = "rules_minijinja",
    urls = "https://github.com/dududko/rules_minijinja/archive/<commit>.tar.gz",
    strip_prefix = "rules_minijinja-<commit>",
    # integrity = "sha256-...",  # optional
)

Using WORKSPACE

Workspace mode is not supported.

See the release notes for version-specific installation instructions and sha256 checksums.

Usage

Basic Example

load("@rules_minijinja//minijinja:defs.bzl", "minijinja_template")

minijinja_template(
    name = "greeting",
    template = "greeting.txt.j2",
    out = "greeting.txt",
    substitutions = {
        "name": "World",
        "language": "English",
    },
)

With Data Files

minijinja_template(
    name = "config",
    template = "config.yaml.j2",
    out = "config.yaml",
    data = ["context.json"],
    substitutions = {
        "version": "1.0.0",
    },
)

Advanced: Code Generation

See the color palette example for a complete demonstration of using minijinja templates to generate Python code from YAML specifications.

Running minijinja-cli Directly

You can run the minijinja-cli binary directly using:

bazel run @rules_minijinja//minijinja -- <args>

Documentation

  • Examples - Usage examples
  • E2E Tests - End-to-end test cases demonstrating various use cases

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

Bazel rules for rendering jinja2 templates using minijinja.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published