跳转到主要内容

一个简单的Django模板标签(compute_tag_cloud),用于帮助创建标签云。

项目描述

这是什么?

这是一个简单的Django模板标签(名为compute_tag_cloud),用于帮助创建标签云。

简要教程

在您的Django项目中安装应用程序

这应该像这样简单

pip install django-nuages-tag

并将‘django_nuages_tag’添加到您的INSTALLED_APPS设置中。

示例用法

1. 源数据

假设我们有一个my_favourite_tools上下文变量,如下定义:

my_favourite_tools = [{'name': 'Python', 'interest': 30},
                      {'name': 'Django', 'interest': 70},
                      {'name': 'Ruby', 'interest': 6}]

注意:示例显示了一个简单的列表,但这也可以与Django QuerySet一起使用

2. 计算标签云

现在我们可以这样做

{% load django_nuages_tag %}

{% compute_tag_cloud my_favourite_tools interest font_size 10 100 lin %}

compute_tag_cloud将为包含在10到100之间且代表interest值的my_favourite_tools中的每个元素添加一个font_size属性。最后一个参数(lin)要求使用线性公式计算此标签云。另一种选择是使用对数公式(使用log参数)。您应该测试这两种选项,但log可能为您提供更好的结果,如果您要计算具有很大差异的值。注意:0和负值将使用两种公式都计算为0。

我们的源数据现在看起来像这样

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. 渲染标签云

这可以通过使用for标签和基本的HTML/CSS非常容易地完成。例如

{% for tool in my_favourite_tools %}
  <span style="font-size: {{ tool.font_size }}px;"> {{ tool.name }} </span>
{% endfor %}

注意

  • compute_tag_cloud可以连续多次调用以生成多个值。例如,我们可以计算字体大小(在10和55之间),但也可以计算文本的边距(在5和28之间)和透明度(在0.7和1之间),如下所示

    {% 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 %}
  • counter参数(在我们的示例中为interest)可以是一个属性,一个要调用的方法或一个字典键。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源代码分发

django-nuages-tag-0.1.3.tar.gz (6.2 kB 查看哈希值)

上传时间 源代码

支持者