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.2.tar.gz (6.0 kB view details)

Uploaded Source

File details

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

File metadata

File hashes

Hashes for django-template-analyzer-1.2.tar.gz
Algorithm Hash digest
SHA256 3d48f6dff4ed0779b8183784e3aa67d9bdb598ab45e78506e1deb2e5eac5aa5c
MD5 0b8916f5338eea32a07597c85360960d
BLAKE2b-256 5a02fa76b736c9f40e1a13d3425bf88a4700778e5cbbeb28fa3a0c2afc93e523

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