将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在二维数组中获取所有值的组合   java如何在Heroku上运行Flyway迁移?   当Tomcat作为windows服务启动时,其他计算机无法使用java Tomcat应用程序   java SPNEGO获取用户详细信息   java多线程SaxParser解析多个xml文件   如何将十六进制字符串转换为字节。JAVA   java Android:如何在MapBox中添加自定义标记?   java如何从Android广播UDP数据包?   java驱动程序。executeScript()返回简单javascript的NullPointerException   java我们如何在网站上从系统上传文件?   java在JTextArea中剪切和粘贴   java PrimeFacesRequestContext。getCurrentInstance()。为SelectOne菜单重置   java在安卓中动态存储运行时变量   java如何检测“文本内容中发现无效字符”   Java数据结构:错误“无法访问LinkedList”   java合并排序(根据频率排序单词)   java为什么/如何将整数设置为1使while循环工作?   java Maven编译器插件抱怨“未找到SLF4J提供程序”   jakarta ee java锁定文件   java Hibernate会话。update()与update查询?