Metadata-Version: 2.1
Name: bootstrap4-nav
Version: 1.0.0
Summary: Bootstrap template support for Django projects
Home-page: https://github.com/justengel-django/django_bootstrap4_nav
Author: Justin Engel
Author-email: jtengel08@gmail.com
License: Proprietary
Download-URL: https://github.com/justengel-django/django_bootstrap4_nav/archive/v1.0.0.tar.gz
Keywords: Django Bootstrap4 Nav CSS
Platform: any
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Framework :: Django :: 2.0
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: django-bootstrap4 (>=1.0.1)

======================
Django Bootstrap4 Nav
======================
This library was created to make django work with some generic bootstrap4 templates. This library uses the basic
functionality from django-bootstrap4. I use it to match templates with my ``django_materialize_nav`` library.


Setup
=====
Install the library.

.. code-block:: python

    # project/settings.py

    INSTALLED_APPS = [
        "bootstrap4_nav",
        ...
    ]


Setup Context Processors
------------------------
Bootstrap4_nav comes with a context processor to use some settings to change the default base styling.

.. code-block:: python

    # Context Processor to work with settings
    TEMPLATES = [
        {
            ...
            'OPTIONS': {
                'context_processors': [
                    ...
                    'bootstrap4_nav.context_processors.get_context',
                ],
            },
        },
    ]


Alternative way to get the standard context for views

.. code-block:: python

    # views.py

    from bootstrap4_nav.context_processors import get_context


    def show_page(request):
        # Get the context with the style settings
        context = get_context(site_name='demo', title='Basic Content')

        context["object"] = "MyObject"
        return render(request, "my_page.html", context)


Style
=====
The base template can be used by extending the materialize base nav.

.. code-block:: html

    {% extends "bootstrap4_nav/base.html" %}


    {% block nav_items %}
        <li class="navbar-item{% if title == 'Page1' %} active{% endif %}"><a class="nav-link" href="/">Page1</a></li>
        <li class="navbar-item{% if title == 'Page2' %} active{% endif %}"><a class="nav-link" href="/">Page2</a></li>
        <li class="navbar-item{% if title == 'Page3' %} active{% endif %}"><a class="nav-link" href="/">Page3</a></li>
    {% endblock %}

    {% block contents %}
    <div>
        <p>My Content goes here</p>
    </div>
    {% endblock %}


Styling controls
----------------

Bootstrap4_nav comes with several style options used in the template context variables listed below.

  * BOOTSTRAP4_SITE_NAME
  * BOOTSTRAP4_TITLE

If you went through the ``Setup Context Processors`` step then you can modify several settings to change the default style.
This is an alternative to manually providing all of the template context variables.


.. code-block:: python

    # settings.py

    BOOTSTRAP4_SITE_NAME = None  # Display this name in the navbar as the main name
    BOOTSTRAP4_TITLE = None  # This is the page title displayed as the browser tab name


