跳转到主要内容

将轻量级懒加载器lazysizes集成到Plone中。

项目描述

生命,宇宙,以及一切

此包将lazysizes(一个轻量级的懒加载器)集成到Plone中。

lazysizes是一个快速、SEO友好且可自动初始化的懒加载器,用于图像(包括响应式图像picture/srcset)、iframe、脚本/小部件等。它还通过区分视图中至关重要的元素和接近视口的元素来优先处理资源,从而使感知性能更快。

使用本包,您可以在页面加载时间上减少高达80%,页面大小减少75%,请求次数减少50%。

大部分无害

https://img.shields.io/pypi/v/collective.lazysizes.svg https://img.shields.io/travis/collective/collective.lazysizes/master.svg https://img.shields.io/codacy/grade/13edd837b059493ab64d8186f5fe6cf4.svg https://img.shields.io/coveralls/collective/collective.lazysizes/master.svg

以下是一些使用 collective.lazysizes 的网站

只要我们进行过测试,lazysizes 似乎不会干扰像 Googlebot 这样的爬虫对图像的索引。

有想法吗?发现了错误?请通过 提交支持工单 告诉我们。

别慌

安装

要在基于 buildout 的安装中启用此包

  1. 编辑您的 buildout.cfg 并将 collective.lazysizes 添加到要安装的 eggs 列表中

[buildout]
...
eggs =
    collective.lazysizes

更新配置后,您需要运行 “bin/buildout”,这将负责更新您的系统。

前往 Plone 网站的“站点设置”页面并点击“插件”链接。

勾选 collective.lazysizes 旁边的复选框,然后点击“激活”按钮。

它是如何工作的

此包向转换链中添加了一个转换器,以将 lazysizes 集成到 Plone。

转换器会查找内容中的所有 <img><iframe><blockquote> 标签,并执行以下操作

  • 追加一个 lazyload

  • 如果该标签是 <img>,则将 src 属性转换为 data-src 并用一个灰色方块代替它以保持有效的 HTML 代码(此占位符使用数据 URI 方案加载,以避免对服务器的额外请求)

  • 如果该标签是 <iframe>,则将 src 属性转换为 data-src

  • 如果该标签是 <blockquote> 且包含 推文,则添加一个 data-twitter 属性并删除与 Twitter 小部件相关的 <script> 标签以避免无用请求

这些转换可以应用于所有用户或仅适用于匿名用户。

看吧!没有资源注册表

此插件在处理 Plone 中的静态资源方面采用了一种非常主观的方法。我们已弃用资源注册表,转而采用更简单的方法:在 plone.htmlhead 中添加一个视图小部件。这简化了在多个 Plone 版本之间的维护,并避免了相关资源的捆绑。

开发

我们在本包中使用 webpack 处理静态资源。 webpack 处理 SCSS 和 JS 文件,压缩生成的 CSS 和 JS,并优化所有图像。

要贡献,您应该在其中一个壳中启动实例,并在另一个壳中启动 webpack 监视器,使用以下命令

$ bin/watch-lazysizes

然后转到 webpack/app 文件夹并编辑 SCSS 和 JS 文件;webpack 监视器将自动在正确位置创建最终资源。

还添加了其他命令以处理更复杂的场景。

以下命令将在系统 PATH 中设置 buildout 节点安装,这样您就可以像在他们的文档中描述的那样使用 webpack

$ bin/env-lazysizes

以下命令生成 JS 和 CSS 而不进行压缩步骤(可以用于以人类可读的方式检查正在生成的代码)。

$ bin/debug-lazysizes

以下命令重新构建静态文件并退出(而不是继续监视更改)。

$ bin/build-lazysizes

分享并享受

collective.lazysizes 的实现离不开以下人士的贡献:

您可以在 GitHub 上找到更新后的包贡献者列表。

Simples Consultoria 赞助开发。

变更日志

4.1.6 (2019-03-12)

  • 更新 lazysizes 至 v4.1.6。[hvelarde]

  • 支持 Plone 5.2 和 Python 3。[hvelarde]

  • 取消对 Plone 5.0 的明确支持。[hvelarde]

  • 代码清理。[hvelarde]

4.1.4 (2018-10-11)

  • 升级 lazysizes 至 v4.1.4。[hvelarde]

  • 将 webpack 的 output.libraryTarget 设置为 var,并且不导入 lazysizes 的 UMD 版本,以避免在 Plone 5 中出现 Mismatched anonymous define() module 错误(参考 #67)。[thet, rodfersou]

  • 更新巴西葡萄牙语和西班牙语翻译。[hvelarde]

4.1.2 (2018-10-01)

  • 将 webpack 的 output.libraryExport 设置为 default 以避免 Mismatched anonymous define() module 错误(修复 #67)。[rodfersou, hvelarde]

  • 升级 lazysizes 至 v4.1.2。[thet]

  • 将浏览器层添加到 collective.lazysizes.resources 视图注册中;这避免了在包尚未安装时显示视图(修复 #69)。[erral]

4.1.1.1 (2018-09-10)

  • 在执行升级步骤 v10 时避免 ImportError(修复 #63)。[hvelarde]

4.1.1 (2018-09-06)

  • 弃用资源注册;现在我们使用 plone.htmlhead 中的视图来加载 JavaScript 代码。这简化了在多个 Plone 版本中维护扩展。[hvelarde]

  • 升级 lazysizes 至 v4.1.1。[hvelarde]

  • 添加 lazysizes 打印插件;此插件将在检测到打印时自动揭示所有元素,即使指定的懒加载图像不在视口中(修复 #50)。[thet, hvelarde]

  • 删除未使用的 collective.lazysizes.ImageScales 词汇表。[hvelarde]

  • 使用 webpack 处理静态资源。[rodfersou]

  • 在从配置文件版本 3 升级时避免 ValueError(修复 #46)。[hvelarde]

4.0.1 (2017-11-20)

  • 升级 lazysizes 至 v4.0.1。Twitter 插件现在兼容 CommonJS。[hvelarde]

  • 要求 plone.app.registry >=1.5。参考 #42 [erral]

3.1 (2017-10-02)

  • 添加德语翻译。[thet]

  • 添加显式 i18n 消息 ID,而不是基于翻译字符串的隐式依赖。[thet]

  • 修复 Plone 5 兼容性问题。[thet]

  • 扩展卸载配置文件以包含更多注销操作。[thet]

  • 修复黑名单 XPath 选择器以匹配直接设置类的元素。[thet]

  • 添加配置选项以启用对认证用户的懒加载。[hvelarde]

  • 在升级过程中避免可能覆盖 css_class_blacklist。[hvelarde]

  • 在升级步骤注册过程中避免可能的 ConfigurationConflictError。[hvelarde]

3.0.0 (2017-03-09)

  • 更新 lazySizes 至 v3.0.0。[hvelarde]

  • 删除 respimg polyfill 插件。[hvelarde]

  • 修复在记录器上出现的 UnicodeEncodeError。[hvelarde]

2.0.5rc1 (2016-10-28)

  • 清理配置工具;由于计划在未来将预期的功能纳入 Plone 的核心,因此已删除 image_candidates 字段(请参阅 PLIP 1483)。[hvelarde]

  • 删除对 five.grok 的依赖。[hvelarde]

  • 更新 lazysizes 至 v2.0.5。[hvelarde]

  • 固定 Products.ResourceRegistries 的版本 >=2.2.12 以修复升级步骤。[rodfersou, hvelarde]

2.0.0b1 (2016-08-11)

  • lazysizes已升级到版本2.0.0,我们现在使用AMD模块(关闭#20)。[rodfersou]

  • 如果Twitter的嵌入代码被修改,不要抛出异常(关闭#17)。[hvelarde]

1.5.0b1 (2016-05-25)

  • 嵌入的推文现在也实现了懒加载(关闭#15)。[aFarkas, rodfersou, hvelarde]

  • 该软件包现在与Plone 5.0和Plone 5.1兼容。[hvelarde]

1.5.0a1 (2016-04-07)

  • 使用data URI方案为图像占位符以节省一个额外的请求(关闭#8)。[hvelarde]

  • 增加了巴西葡萄牙语和西班牙语的翻译。[hvelarde]

  • 更好地处理没有src属性的标签;记录带有请求URL的错误消息(关闭#11)。[hvelarde]

  • 该软件包现在与Plone 5兼容。[hvelarde]

  • 删除对Products.CMFQuickInstallerTool的依赖。[hvelarde]

  • 更新lazysizes和respimg polyfill扩展到v1.5.0。[hvelarde]

1.4.0a1 (2016-02-23)

  • 添加选项以列出不会进行懒加载处理的类标识符。直接应用该类到<img><iframe>元素,或其父元素,将跳过(关闭#5)。[rodfersou, hvelarde]

  • 更新lazysizes和respimg polyfill扩展到v1.4.0。[hvelarde]

  • 使用空白图像代替旋转图标作为占位符。[hvelarde]

  • 日志现在使用debug级别而不是info。[hvelarde]

1.0a1 (2016-01-05)

  • 初始版本。

项目详情


下载文件

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

源分发

collective.lazysizes-4.1.6.tar.gz (68.4 kB 查看散列值)

上传时间

构建分发

collective.lazysizes-4.1.6-py2-none-any.whl (121.5 kB 查看散列值)

上传时间 Python 2

由以下支持