What is it ?
A simple Django TemplateTag (named compute_tag_cloud) to help in the creation of tag clouds.
Tiny tutorial
Install the app in your Django project
This should be as simple as
pip install django-nuages-tag
and adding ‘django_nuages_tag’ to your INSTALLED_APPS settings.
Example usage
1. Source data
Given that we have a my_favourite_tools context variable defined like this:
my_favourite_tools = [{'name': 'Python', 'interest': 30},
{'name': 'Django', 'interest': 70},
{'name': 'Ruby', 'interest': 6}]
Note: example shows a simple list, but this also works with a Django QuerySet.
2. Compute the tag cloud
We can now do:
{% load django_nuages_tag %}
{% compute_tag_cloud my_favourite_tools interest font_size 10 100 lin %}
compute_tag_cloud will add a font_size attribute to each element in my_favourite_tools that is contained between 10 and 100 and is representative of the value of interest. The last parameter (lin) asks to use a linear formula to compute this tag cloud. Another option is to use a logarithmic formula (use the log parameter). You should test both options, but log will probably give you better results if there is a large variation in the values you want to compute. NOTE: 0 and negative values will be computed to 0 (with both formulas).
Our source data now looks like:
my_favourite_tools = [{'name': 'Python', 'interest': 30, 'font_size': 43.75},
{'name': 'Django', 'interest': 70, 'font_size': 100},
{'name': 'Ruby', 'interest': 6, 'font_size': 10}]
3. Render the tag cloud
This can be done very easily with the for tag and basic HTML/CSS. For example:
{% for tool in my_favourite_tools %}
<span style="font-size: {{ tool.font_size }}px;"> {{ tool.name }} </span>
{% endfor %}
Notes
compute_tag_cloud can be called multiple times in a row to generate multiple values. We can for example compute the font size (between 10 and 55), but also the margin (between 5 and 28) and the opacity (between 0.7 and 1) of the text with something like:
{% load django_nuages_tag %} {% compute_tag_cloud my_favourite_tools interest font_size 10 55 lin %} {% compute_tag_cloud my_favourite_tools interest margin 5 28 lin %} {% compute_tag_cloud my_favourite_tools interest opacity 0.7 1 lin %} {% for tool in my_favourite_tools %} <span style="font-size: {{ tool.font_size }}px; margin: {{ tool.margin }}px; opacity: {{ tool.opacity }}">{{ tool.name }}</span> {% endfor %}The counter parameter (interest in our example) can be an attribute, a method to be called or a dictionary key.
Metadata
Release files for django-nuages-tag 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-nuages-tag-0.1.3.tar.gz | 6.2 kB | Without provenance | Details for django-nuages-tag-0.1.3.tar.gz |
Release files / django-nuages-tag-0.1.3.tar.gz
| Download URL | django-nuages-tag-0.1.3.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3281395a4369feb8d2a94d0495331c6ec399f4b2f4c576a7f1ae6aef3017004
|
|
BLAKE2b-256 checksum How to use checksums |
fcc9c13f0c6cc3e0f0ef38b8337cd06dbdb6cc722890c27977393f80b919c7aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-nuages-tag 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.