This repository provides a complete set of Jinja macros that are kept up-to-date and 100% compliant with the original HMLR Frontend Nunjucks macros. Porting is intentionally manual rather than automated to make updates simpler than maintaining an automated conversion routine.
The following table shows the version of HMLR Frontend Jinja that you should use for your targeted version of HMLR Frontend:
HMLR Frontend Jinja Version | Target HMLR Frontend Version |
---|---|
2.0.0 | 2.0.0 |
1.1.0 | 1.4.0 |
1.0.0 | 1.1.0 |
0.2.0 | 1.0.0-rc1 |
Any other versions of HMLR Frontend not shown above may still be compatible, but have not been specifically tested and verified.
After running pip install hmlr-frontend-jinja
, ensure that you tell Jinja where to load the templates from using the PackageLoader
as follows:
from flask import Flask
from jinja2 import ChoiceLoader, PackageLoader, PrefixLoader
app = Flask(__name__)
app.jinja_loader = ChoiceLoader(
[
PackageLoader("app"),
PrefixLoader({"hmlr_frontend_jinja": PackageLoader("hmlr_frontend_jinja")}),
]
)
To use a component in your project templates you must import and call the component macro and pass the relevant options, for example:
{%- from 'hmlr_frontend_jinja/components/header/macro.html' import hmlrHeader -%}
{{ hmlrHeader({
'serviceName': "Service name",
'serviceUrl': "#"
}) }}
The options available to each component macro can be found in the original HMLR Design System Components documentation. Since this project is a like-for-like port, the only difference between the Nunjucks examples and their Jinja equivalents is having to quote key names, e.g. 'text'
instead of text
.
We use SemVer for versioning. For the versions available, see the tags on this repository.
We welcome contribution from the community. If you want to contribute to this project, please review the code of conduct and contribution guidelines.
- Matt Shaw (Author and primary maintainer)