Django Template Analyzer - Extract template nodes from a Django template
Project description
django-template-analyzer
The template_analyzer package offers an API to analyze the Django template structure. It can be used to find nodes of a particular type, e.g. to do automatic detection of placeholder tags.
Supported features
The scanner finds tags in various situations, including:
Extend nodes
Include nodes
Overwritten blocks with new definitions
Blocks with or without {{ block.super }}
Reorganized blocks
Ignoring nodes outside blocks in extending templates
Handling multiple levels of super includes
The returned nodes are provided in a natural ordering, as they would be expected to appear in the outputted page.
While Django offers a template.nodelist.get_nodes_of_type() function, this function does not produce the same results.
API example
from django.template.loader import get_template
from mycms.templatetags.placeholdertags import Placeholder
from template_analyzer.djangoanalyzer import get_node_instances
# Load a Django template
template = get_template("mycms/default-page.html")
# Find all tags in the template:
placeholders = get_node_instances(template, Placeholder)
# Read information from the template tag themselves:
# (this is an example, accessing a custom method on the Placeholder object)
placeholder_names = [p.get_name() for p in placeholders]
Installation
First install the module, preferably in a virtual environment. It can be installed from PyPI:
pip install django-template-analyzer
Or the current folder can be installed:
pip install .
Credits
This package is based on the work of Django CMS.
Many thanks to the contributors of cms/utils/placeholder.py / cms/utils/plugins.py in Django CMS!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-template-analyzer-2.0.tar.gz
.
File metadata
- Download URL: django-template-analyzer-2.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17d9993a2a47b8fa7d7e3182e1f8887a7be63eeaa3ccfd824191b046bbaafb96 |
|
MD5 | 86a570848f2650e812db53dcb083e71a |
|
BLAKE2b-256 | b40a23fc69cdbb229a52a833e84f10689ebdcd33947ea54c28a0e0c2bbf7e817 |
File details
Details for the file django_template_analyzer-2.0-py3-none-any.whl
.
File metadata
- Download URL: django_template_analyzer-2.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 224b9796d16c8a4647d06964c1b8348837a1a4e1a845af79565cca1863c97b94 |
|
MD5 | e8774dd32e730961aa37a9497807a476 |
|
BLAKE2b-256 | c1446b318684138a4c16bd5953665004e9453f6e40537f72ca501bb865307bc2 |