jinja2_registry
jinja2_registry is a convenience library for managing multiple template namespaces with Jinja2
Example
The following Python code sets up a jinja2.Environment and three distinct jinja2.FileSystemLoader objects under a jinja2.PrefixLoader. It then renders a HTML page based on title.html that includes several other files.
from jinja2_registry import Renderer, register_filesystem_loader
register_filesystem_loader('layouts', 'templates/layouts')
register_filesystem_loader('partials', 'templates/partials')
register_filesystem_loader('pages', 'templates/pages')
renderer = Renderer('pages/title.html')
html = renderer.render()
print(html)
The result is rendered from 4 HTML templates, which are located in different directories. In this example, all of the templates are read from the filesystem; however, users may make use of register_loader to attach any standard Jinja2 loader to the registry.
Result
<!DOCTYPE html>
<html>
<head>
<title>new_title</title>
</head>
<body>
<ul>
<li><a href="/content">Content page</a></li>
<li><a href="/title">New title page</a></li>
</ul>
<div>
<p>some_content</p>
</div>
</body>
</html>
The HTML templates are organized into the following structure. Layouts are separated from partials and content. In a production deployment, layouts would likely be stored separately from pages (e.g., in a library), and partials might be automatically generated.
File structure:
templates/
├── layouts
│ └── base.html
├── pages
│ ├── content.html
│ └── title.html
└── partials
└── nav.html
templates/layouts/base.html
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}default_title{% endblock %}</title>
</head>
<body>
{% include "partials/nav.html" %}
<div>
{% block content %}{% endblock %}
</div>
</body>
</html>
templates/partials/nav.html
<ul>
<li><a href="/content">Content page</a></li>
<li><a href="/title">New title page</a></li>
</ul>
templates/pages/content.html
{% extends "layouts/base.html" %}
{% block content %}
<p>some_content</p>
{%- endblock %}
templates/pages/title.html
{% extends "pages/content.html" %}
{% block title %}new_title{% endblock %}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file jinja2-registry-0.1.1.tar.gz.
File metadata
- Download URL: jinja2-registry-0.1.1.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0556bd95e6cd7dfee8e26e426d78409a7b7d4120b2cc3e7fea0bbc3f6717120e
|
|
| MD5 |
64fa039e016d2253fa158dbc57974e2e
|
|
| BLAKE2b-256 |
a20cc216faa4027ebb8f355c3c4f951832ea55817f5cd2ac0ec6c1a7cc109806
|