跳转到主要内容

此软件包允许主题开发者为Plone网站添加LESS样式表。

项目描述

简介

此软件包允许主题开发者为Plone网站添加LESS样式表。

LESS

LESS 通过变量、混入、操作和函数等动态行为扩展了 CSS。LESS 可在客户端(Chrome、Safari、Firefox)和服务器端运行。

您可以在 https://lesscss.org.cn/ 找到有关 LESS 的更多信息。

与 Plone 的集成

此包复制了 portal_css 行为,并将其扩展到满足客户端和服务器端 LESS 资源编译方法。

它向门户添加了一个 portal_less 工具,启用导入/导出 GS 配置文件 lessregistry.xml,并覆盖了默认的 Products.ResourceRegistries 视图,通过添加 标签的 LESS 资源部分。

添加 LESS 资源

此包旨在与用户定义的 Plone 主题包一起使用。作为开发者,您可以包含尽可能多的 LESS 资源来构建您的主题。您可以使用名为 lessregistry.xml 的 GS 配置文件添加 LESS 资源。语法是从 cssregistry.xml 配置文件复制的。

<?xml version="1.0"?>
<object name="portal_less" meta_type="LESS Stylesheets Registry">
  <stylesheet title="++bootstrap++less/bootstrap.less" authenticated="False"
    enabled="on" id="++bootstrap++less/bootstrap.less" rendering="link"/>
</object>

控制面板

您可以通过访问位于网站设置的 LESS 资源配置小部件来管理 LESS 资源编译的方式。默认情况下,客户端 LESS 资源编译模式和压缩已启用。

客户端编译

客户端编译在(主题)开发模式下使用。

collective.lesscss 将使用标准方法进行客户端编译,使用 less.js(v1.3,在撰写本文时)并在 portal_css 资源之后公开 LESS 资源

<link rel="stylesheet/less" type="text/css" href="styles.less">
<!-- Here goes the rest of portal_javascript resources -->
<script src="less.js" type="text/javascript"></script>

服务器端编译

建议在生产模式下使用服务器端编译的 LESS 资源。通过取消选中此选项,网站将服务器端编译它们为 CSS 资源,并启用它们上的可变缓存。

重要说明:服务器端编译需要在您的主题包中通过 plone.resource 包声明资源!示例

<plone:static
  directory="resources/less"
  type="bootstrap"
  name="less"
  />

此外,如果您没有使用 plone.app.theming 开发主题,您应该在您的主题中创建此类(例如,traversal.py)以声明您正在使用的资源类型

from plone.resource.traversal import ResourceTraverser

class BootstrapTraverser(ResourceTraverser):
"""The theme traverser.

Allows traveral to /++bootstrap++<name> using ``plone.resource`` to fetch
things stored either on the filesystem or in the ZODB.
"""
name = 'bootstrap'

然后通过 zcml 声明适配器

<adapter
name="bootstrap"
for="* zope.publisher.interfaces.IRequest"
provides="zope.traversing.interfaces.ITraversable"
factory=".traversal.BootstrapTraverser"
/>

因此,您现在应该可以通过访问来访问资源目录中的资源

https://127.0.0.1/Plone/++bootstrap++less/

Twitter Bootstrap 集成

您可以在 https://github.com/sneridagh/example.bootstrap 上查看此包,以获取有关如何将 LESS 资源集成到您的主题包中的完整示例。

贡献者

  • Victor Fernandez de Alba [sneridagh],作者

  • Sebastian Jordan [seppeljordan]

  • Leonardo J. Caballero G. [macagua]

  • Laurent Lasudry [laulaz]

变更日志

2.0.3 (2020-04-06)

  • 允许浏览器在 portal_less 不在调试模式下时缓存编译后的 CSS(compiled_styles.css)[laulaz]

  • 更新了西班牙语翻译 [macagua]

  • 更新了 Gettext 文件 [macagua]

  • 为该包[macagua]添加了更多关键词和字符串分类器项,并更新了其他项。

2.0.2 (2017-12-12)

  • 如果portal_less中选中了debugmode,则不要缓存lesscss。[bsuttor]

2.0.1 (2017-05-17)

  • 在LESS编译之前始终对CSS字符串进行编码以避免错误。[laulaz]

  • 如果编译失败,则不要显示信息消息。[laulaz]

2.0 (2017-03-21)

  • 直接使用python包lesscpy而不是调用脚本(#8)。这允许在服务器端编译时移除Node.js。[laulaz]

  • 添加(可选)LESS文件的压缩。代码基于https://github.com/collective/collective.lesscss/pull/9,但直接使用lessc脚本(而不是cleancss)并带有压缩选项。[laulaz]

  • 当文件之间存在引用时,改进服务器端编译。我们需要一起编译资源,因为否则编译器将在文件之间对未知变量引用失败。[laulaz]

  • 添加西班牙语翻译。[macagua]

  • 添加有关i18n的更多改进。[macagua]

  • 为i18ndude添加Bash脚本。[macagua]

1.3 (2014-07-02)

  • 更新到nodejs v0.10.29。[seppeljordan]

  • 重构服务器端编译,现在应该可以使用已注册的LESS资源。[seppeljordan]

1.2 (2014-03-19)

  • 更新到lessjs 1.7.0。[jaroel]

1.1 (2014-03-11)

  • 更新nodejs到版本0.10.26。[seppeljordan]

  • 更新less.js版本到1.6.3。[jaroel]

1.0b2 (2012-04-14)

  • 修复pypi分发。[sneridagh]

1.0b1 (2012-04-13)

  • 从CSSRegistry继承portal_less。[sneridagh]

  • 导入/导出GS配置文件。[sneridagh]

  • 添加一个视图,用于包含less文件。[sneridagh]

  • 在portal_javascripts中注册less.js。[sneridagh]

  • 提供全局配置,包括服务器端/客户端转换。[sneridagh]

  • 提供文档化的buildout以安装nodejs以在服务器端编译文件。[sneridagh]

  • 使用memoize使缓存结果。[sneridagh]

  • 使用Twitter的bootstrap源进行测试。[sneridagh]

项目详情


下载文件

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

源分发

collective.lesscss-2.0.3.tar.gz (67.5 kB 查看散列)

上传时间

支持者