将request.path('/a/b/c/d/')转换为css类名
django-path2css的Python项目详细描述
Author: | Keryn Knight |
---|---|
Version: | 0.2.2 |
Release | Status |
---|---|
stable (0.2.2) | |
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作为最深的命名空间,也将具有 添加了blog和blog-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
上下文处理器
还有一个上下文处理器,可以通过添加^{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 保留所有权利
在满足以下条件的情况下,允许以源代码和二进制格式重新分发和使用(无论是否修改):
- 源代码的重新发布必须保留上述版权声明、此条件列表和以下免责声明。
- 以二进制形式重新分发必须在分发时提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
此软件由著作权人和出资人提供,如“是”,任何明示或默示保证,包括但不限于,适销性和适合特定目的的默示保证。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论其原因如何,也不论其责任理论是否在合同中,严格责任,或侵权行为(包括疏忽或其他)产生于使用本软件时,即使已告知此类损坏的可能性。
django-path2css的更改历史记录
0.2.2
- 修复长描述。
0.2.1
- 将split_onkwarg暴露给{% path2css %}和 {% css4path %}模板标记,允许基于模式进行拆分 而不是/。
0.2.0
- 添加了对搜索静态文件目录以匹配css文件的支持 路径组件,请参见{% css4path %}了解用法。
0.1.1
- 第一个版本-测试传递的模板标记和上下文处理器 所有tox矩阵。