Metadata-Version: 2.1
Name: django-active-link
Version: 0.2.2
Summary: The best and simplest way to highlight active links in your Django app.
Home-page: https://github.com/valerymelou/django-active-link
License: BSD-3-Clause
Keywords: django,active,link,django-active-link,sidebar,navbar
Author: Valery Melou
Author-email: valerymelou@gmail.com
Maintainer: Frederich Pedersen
Maintainer-email: frodo@hobbits.dk
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: test
Project-URL: Bug Tracker, https://github.com/valerymelou/django-active-link/issues
Project-URL: Documentation, https://django-active-link.readthedocs.io/
Project-URL: Repository, https://github.com/valerymelou/django-active-link
Project-URL: codecov, https://codecov.io/gh/valerymelou/django-active-link
Description-Content-Type: text/x-rst

==================
Django Active Link
==================

.. image:: https://badge.fury.io/py/django-active-link.svg
    :target: https://badge.fury.io/py/django-active-link

.. image:: https://pyup.io/repos/github/valerymelou/django-active-link/shield.svg
     :target: https://pyup.io/repos/github/valerymelou/django-active-link/
     :alt: Updates

.. image:: https://travis-ci.org/valerymelou/django-active-link.svg?branch=master
    :target: https://travis-ci.org/valerymelou/django-active-link

.. image:: https://codecov.io/gh/valerymelou/django-active-link/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/valerymelou/django-active-link

The simplest way to highlight active links in your Django app.

Documentation
-------------

The full documentation is at https://django-active-link.readthedocs.io.

Quick start
-----------

Install Django Active Link::

    pip install django-active-link

Add it to your `INSTALLED_APPS`:

.. code-block:: python

    INSTALLED_APPS = (
        ...
        'active_link',
        ...
    )

To use the ``active_link`` template tag you need to load ``active_link_tags`` templatetags library:

.. code-block:: html

    {% load active_link_tags %}

To add an ``active`` CSS class to a link when the request path matches a given view just do something like this.

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name' %}">Menu item</a>

You can even add the active class when the request path matches multiple views. Just pass the view names separated by a double pipe (||) as first argument to the ``active_link`` tag.

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name || view-sub-name' %}">Menu Item</a>

You can also use a custom CSS class:

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name' 'custom-class' %}">Menu item</a>

or:

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name' css_class='custom-class' %}">Menu item</a>

You can also define an inactive custom css class, that is triggered when a link is deemed not active:

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name' 'custom-class' 'not-active' %}">Menu item</a>

or:

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link 'view-name' css_class='custom-class' css_inactive_class='not-active' %}">Menu item</a>

By default ``active_link`` will not perform a strict match. If you want to add the ``active`` class only in case of a strict match pass the ``strict`` argument to the tag:

.. code-block:: html

    <a href="{% url 'view-name' %}" class="{% active_link strict=True %}">Menu item</a>

Replace ``view-name`` with the name of your view (including namespaces).

Settings
--------
You can override the default active class and strict mode with the settings ``ACTIVE_LINK_CSS_CLASS``, ``ACTIVE_LINK_CSS_INACTIVE_CLASS`` and ``ACTIVE_LINK_STRICT``.

============================== ==================================================== =============
Key                            Description                                          Default Value
============================== ==================================================== =============
ACTIVE_LINK_CSS_CLASS          Active class to use.                                 `active`
ACTIVE_LINK_CSS_INACTIVE_CLASS Inactive class to use.
ACTIVE_LINK_STRICT             Designates whether to perform a strict match or not. `False`
============================== ==================================================== =============

For more usage examples, please check the full documentation at https://django-active-link.readthedocs.io.

**IMPORTANT**: Django Active Link requires that the current request object is available in your template's context. This means you must be using a `RequestContext` when rendering your template, and `django.template.context_processors.request` must be in your `TEMPLATE_CONTEXT_PROCESSORS` setting. See https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext for more information.

TODO
----

* Write the documentation
* Clean repository for unneccesary files

Running Tests
-------------

Does the code actually work?

::

    source <YOURVIRTUALENV>/bin/activate
    (myenv) $ pip install poetry
    (myenv) $ poetry install --only test
    (myenv) $ poetry run tox

Credits
-------

Tools used in rendering this package:

*  Cookiecutter_
*  `cookiecutter-djangopackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage

