将request.path('/a/b/c/d/')转换为css类名

django-path2css的Python项目详细描述


Author:Keryn Knight
Version:0.2.2
ReleaseStatus
stable (0.2.2)travis_stable
mastertravis_master

它的功能

一个小的django包,用于将请求的url呈现为一系列css类名, 这样就可以只使用css来定位站点的各个部分。

它还可以查找特定于路径的css文件,并为您输出这些文件。

生成类名

例如,假设您的所有博客文章都在/blog/下,那么您可以这样做:

{% load path2css %}
<body class="{% path2css request.path %}">...</body>

随后,转到/blog//blog/post//blog/post/comments/等 将把blogcss类添加到主体中,然后可以使用:

body.blog {...}
body.blog-post {...}
body.blog-post-comments {...}

请注意,blog post comments作为最深的命名空间,也将具有 添加了blogblog-post类。

请求特定的css文件

如果您有类似于/blog/post/4/的url,请使用{% css4path %}标记 允许您加载特定于层次结构的css文件:

{% load path2css %}
<head>
{% css4path request.path %}

可能输出以下内容:

<link href="/static/css/blog.css" rel="stylesheet" type="text/css" />
<link href="/static/css/blog-post-4.css" rel="stylesheet" type="text/css" />

…如果这些文件存在于一个静态目录中。在上面的例子中, 我没有创建blog-post.css文件,因此模板标记知道 加载它进行输出,因为它将是404。它应该只包括文件 确实存在。

这允许您将css文件划分为不同的部分,如 我们过去常常做的网站往往是手工制作和不同的 在不可避免的上升之前,各段有不同的外观和感觉。 CMS使事情变得更加均匀。

安装

如果稳定版本在pypi上:

pip install django-path2css==0.2.2

模板标记

如果您已经在使用将要生成的类名,{% path2css %} 接受一个prefix=x和/或suffix=y参数,以便您可以重新命名 不破坏现有的风格:

{% path2css '/blog/post/' prefix='path-' %}
{% path2css '/blog/post/' suffix='-area' %}
{% path2css '/blog/post/' prefix='pre_' suffix='_post' %}

{% css4path %}采用相同的prefix/suffix参数,并且 还接受可选的directory,其默认值为css

上下文处理器

还有一个上下文处理器,可以通过添加^{tt19}来使用$ 到您现有的列表中。它的作用与{% path2css %}相同,没有 前缀/后缀参数。

支持的django版本

测试是针对django 1.8到1.10以及python 2.7、3.3、3.4和3.5运行的。

路线图

如果我需要它,可以使用 window.location.path或者其他什么东西……还有潜在的桥梁 我想是棱角分明吧?

许可证

FreeBSD。在存储库的根目录和任何存档中都应该有一个LICENSE文件。


版权所有(c)2016,Keryn Knight 保留所有权利

在满足以下条件的情况下,允许以源代码和二进制格式重新分发和使用(无论是否修改):

  1. 源代码的重新发布必须保留上述版权声明、此条件列表和以下免责声明。
  2. 以二进制形式重新分发必须在分发时提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。

此软件由著作权人和出资人提供,如“是”,任何明示或默示保证,包括但不限于,适销性和适合特定目的的默示保证。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论其原因如何,也不论其责任理论是否在合同中,严格责任,或侵权行为(包括疏忽或其他)产生于使用本软件时,即使已告知此类损坏的可能性。


django-path2css的更改历史记录

0.2.2

  • 修复长描述。

0.2.1

  • split_onkwarg暴露给{% path2css %}{% css4path %}模板标记,允许基于模式进行拆分 而不是/

0.2.0

  • 添加了对搜索静态文件目录以匹配css文件的支持 路径组件,请参见{% css4path %}了解用法。

0.1.1

  • 第一个版本-测试传递的模板标记和上下文处理器 所有tox矩阵。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取所有链接并使用SeleniumWebDriver逐个单击这些链接   java中数组列表的arraylist移位元素   java如何存储具有不同类型参数的元素   java不能使用List<Future<?>>当从不同位置调用时,在方法参数中   java我应该如何修复代码以避免测试代码出错?   安卓 PreferenceFragment java。lang.RuntimeException   java在运行emulator时发现错误   java取消多个AsyncTask回调的有效方法是什么?如果中途满足条件,这些回调将在将来返回?   有没有办法在运行时将方法动态分配给Java类?   java如何将propertyfile与GlassFish一起使用   如何在PHP中使用bcrypt对密码进行哈希处理?   Java和UDP web服务器   java JPA允许EntityListeners执行JPA操作吗?   java执行do while语句时不会产生错误   java无法在edittext中显示数据库中的数据   java Tomcat中活动会话的数量   java在何处使用@SuppressWarnings(“requestfactory”)   netty连接中的java HornetQ异常