Skip to main content

A simple Tag to implement Feather Icons in Django

Project description

Django Feather

A simple Tag ({% icon "name" %}) to implement Feather Icons in Django.

Install

Install django-feather using pip and put it into your INSTALLED_APPS:

pip install django-feather

settings.py:

INSTALLED_APPS = [
    # ...
    'django_feather',
    # ...
]

Usage

After installation, the tag can be used just like any other tag:

{% load icon %}

<p>Using a string {% icon "coffee" class="css-class" height="8" width="8" %}</p>
<p>Using a variable {% icon self.icon class="css-class" height="8" width="8" %}</p>

The icon tag will simply take the SVG source from the Feather project, apply additional attributes and return the SVG tag.

Testing

There are a few tests in the tests directory that should test the basic functions of this module. However, as these tests require the package to be build (so that the django_feather.icons module is populated), there are a few important steps to testing:

# Start by building the project
python setup.py build
# There should now be a build/lib directory present

# Make sure that django, pytest and pytest-django are installed:
pip install django pytest pytest-django

# Run the tests
export DJANGO_SETTINGS_MODULE=tests.settings
PYTHONPATH=build/lib:./ pytest tests 

The environment variable PYTHONPATH ensures that django_feather is not imported from the current directory but rather from the build/lib directory.

Performance

django-feather does not read the .svg files each time an icon is rendered. Instead, all the icons are written to a .py file upon build, just like the JavaScript library.
However, other than the JavaScript library, icons are rendered on the server side. This avoids having to call feather.replace() after the page has loaded.

License

Feather is licensed under the MIT License.

django-feather is licensed under the Apache License, Version 2.0:

Copyright 2019-2021 Jonas Drotleff <j.drotleff@desk-lab.de>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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-feather-0.3.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

django_feather-0.3.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file django-feather-0.3.0.tar.gz.

File metadata

  • Download URL: django-feather-0.3.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for django-feather-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ed60fbaed605ee6912a36a7be442d7150e2d48cc46bb40a8d9fc2da162b9c676
MD5 bda7d9cbc170c65db17bd3d0d44284dc
BLAKE2b-256 bd504393350d58e5c527bb34096e6f6c4d14c2ff61c23375c01506721de59f53

See more details on using hashes here.

File details

Details for the file django_feather-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: django_feather-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for django_feather-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc3dcd9f42fa449d947130b31c154df14275edfd2e48909f5ea7f0ec7634badd
MD5 a4e5869a3f2ef1122b2ecb4b7e2e5d2b
BLAKE2b-256 d5d05431b614bf6cb801976217f61d8ff982daa33a5c8ac2bbcead5097ed79f4

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