Skip to main content

Django Template Analyzer - Extract template nodes from a Django template

Project description

Introduction

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 template_analyzer.djangoanalyzer import get_node_instances
from mycms.templatetags.placeholdertags import Placeholder

template = get_template("mycms/default-page.html")

placeholders = get_node_instances(template, Placeholder)
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 .

Changelog

Version 1.1: added Django 1.4 compatibility. Version 1.0: initial release.

Credits

  • This package is based on the work of Django CMS.

  • Many thanks to the contributors of cms/utils/plugins.py in Django CMS!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-template-analyzer-1.1.0.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file django-template-analyzer-1.1.0.tar.gz.

File metadata

File hashes

Hashes for django-template-analyzer-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0af283aad3f785b0291731505b06bb10cbb7e93c3bb9424c0e26db3b9b7e0b5b
MD5 3e3960254a67c19d772f2f0d3f23c2c4
BLAKE2b-256 a51193e5a27eba1bf047f9510abb0a74b2d85ea1de6e2ba22c2806e9ab52daad

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page