中文描述:一个蟒蛇脚本
css-class-names的Python项目详细描述
css类名
用于css类名条件生成的python脚本。由节点包classnames执行。
为什么?
nodeclassnames
包在React/JSX
和一般javascript前端开发方面帮助了我很多。在使用django
和jinja2
模板时,我确实遗漏了一些类似的东西,所以,我决定创建这个包。
用法
您可以通过调用参数为:
的函数来添加css类名- 字符串
- 数字:浮点数或整数(允许0)
- 序列:列表或元组
- 词典
fromcss_class_namesimportclass_namesclass_names('header','is-visible')# 'header is-visible'class_names(['is-visible','text-uppercase'])# 'is-visible text-uppercase'class_names((100001000,'clear'))# '100001000 clear'class_names('header',{'header--is-fixed':True,'header--is-blue':False})# 'header header--is-fixed'
条件指令
字典可用于有条件地使用表达式连接类名:
fromcss_class_namesimportclass_nameserrors=['Some error']class_names('alert',{'alert-danger':errors,'alert-success':noterrors,'small':True})# 'alert alert-danger'class_names('client',{'client-{}'.format(client.id):client,'disable':notclient.active()})# 'client client-989'
不包括falsy值
将忽略错误值(0除外)和不支持的类型:
fromcss_class_namesimportclass_namesclass_names([],'',False,{},0,object(),lambdax:x,None)# '0'
剥去并压平
字符串是条带化的,序列是递归展平的:
fromcss_class_namesimportclass_namesclass_names([' header ',[' green ',' small ']])# 'header green small'
重复数据消除
可以使用dedupe
参数对名称进行重复数据消除:
fromcss_class_namesimportclass_namesclass_names('cart','is-open','is-logged',{'is-logged':True},dedupe=True)# 'cart is-open is-logged'
前缀
可以使用prefix
参数添加类名前缀。当需要类命名空间或使用BEM方法时,这非常有用:
fromcss_class_namesimportclass_namesclass_names('head','head--is-empty',{'head--is-large':True},prefix='mysite-')# 'mysite-head mysite-head--is-empty mysite-head--is-large'
开发
克隆存储库后,创建一个virtualenv并使用Makefile
命令来setup
开发需求和运行测试:
make setup make lint make test make watch # run tests when code changes make coverage