Metadata-Version: 1.0
Name: django-lineage
Version: 0.1
Summary: Simplify navigation styling using the isanscestor template tag
Home-page: https://github.com/marcuswhybrow/django-lineage
Author: Marcus Whybrow
Author-email: pypi@marcuswhybrow.net
License: BSD
Download-URL: https://github.com/marcuswhybrow/django-lineage/downloads
Description: Django Lineage
        ==============
        
        Handling which navigation element is active in a particular template can get a
        bit ugly. Often, creating template blocks to drop an  "active" class on a
        particular tab or list element.
        
        Lineage makes things neater by defining your conditions once, and it
        looks like this:
        
            {% load lineage %}
        
            <ul>
                <li {% ifanscestor 'home' %}class="active"{% endifanscestor %}">
                    <a href="{% url 'home' %}">Home</a>
                </li>
                <li {% ifanscestor 'blog' %}class="active"{% endifanscestor %}">
                    <a href="{% url 'blog' %}">Blog</a>
                </li>
                <li {% ifanscestor 'about' %}class="active"{% endifanscestor %}">
                    <a href="{% url 'about' %}">About</a>
                </li>
            </ul>
        
        Whereas before we might have had the following:
        
        `base.html` template:
        
            <ul>
                <li class="{% block home_class %}{% endblock %}">
                    <a href="{% url 'home' %}">Home</a>
                </li>
                <li class="{% block blog_class %}{% endblock %}">
                    <a href="{% url 'blog' %}">Blog</a>
                </li>
                <li class="{% block about_class %}{% endblock %}">
                    <a href="{% url 'about' %}">About</a>
                </li>
            </ul>
        
        `home.html` template:
        
            {% extends 'base.html' %}
            {% block home_class %}active{% endblock %}
        
        `blog.html` template:
        
            {% extends 'base.html' %}
            {% block blog_class %}active{% endblock %}
        
        `about.html` template:
        
            {% extends 'base.html' %}
            {% block about_class %}active{% endblock %}
        
        Installation
        ------------
        
        Install using pip:
        
            pip install django-lineage
        
        Add to INSTALLED_APPS in your Django settings file:
        
            INSTALLED_APPS = (
                'lineage',
            )
        
        Usage
        -----
        
        First, load Lineage's template library:
        
            {% extends 'base.html'}
            {% load lineage %}
        
        Lineage provides a single template tag `ifanscestor` which acts much like the
        `if`/`endif` template tag:
        
            {% ifanscestor '/arbitrary/path/' %}
                This content is only displayed if the provided
                path matches the start of the current URL
            {% endifanscestor %}
        
        `ifanscestor` can also handle a variable:
        
            {% ifanscestor some_variable %}{% endifanscestor %}
        
        Or even the same arguments used by the `url` template tag to return an absolute
        path given a view function or named pattern.
        
            {% ifanscestor 'core:model_detail' model.pk %}{% endifanscestor %}
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Distributed Computing
