rah / rah_minify
Textpattern CMS 资产压缩器
Requires
- php: >=5.2.0
- leafo/lessphp: 0.3.*
- linkorb/jsmin-php: 1.0.0
- rah/rah_autoload: *
- textpattern/installer: *
- textpattern/lock: 4.6.*
- tubalmartin/cssmin: *@dev
This package is auto-updated.
Last update: 2024-09-15 12:52:06 UTC
README
Packagist | GitHub | Twitter | 捐赠
Rah_minify 是 Textpattern CMS 的一个资产压缩插件。它压缩并预处理平面 JavaScript 和 CSS 文件。Rah_minify 删除注释、不必要的空白和压缩属性值以及变量,将其转换为最简格式,同时保持代码行为不变。
安装
使用 Composer。该插件依赖于一些开发包,因此您需要将一些仓库链接规则添加到您的 composer.json 文件中
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/gocom/YUI-CSS-compressor-PHP-port.git"
}
],
"minimum-stability": "dev"
}
上述内容将降低您最低稳定性到开发版本,并添加到我们分叉的 YUI CSS 压缩器 PHP 版本,由 Túbal Martín 提供。完成后,您可以运行安装程序
$ composer.phar require rah/rah_minify
要求
Rah_minify 的最低要求
- Textpattern 4.5 或更高版本。
首选项
Rah_minify 提供了一些首选项,可用于执行所有必要的配置。所有设置都可以在 高级首选项 中找到,组织在 Minify 部分。以下设置将存在。
公共回调的安全密钥
用于限制对回调 URL 不受欢迎的访问的密钥。这应该设置为长、强大的值,包含数字、字符和符号的组合。
如果设置,则可以使用公共回调 URL 处理和压缩资产。这消除了将网站设置为调试模式或登录 Textpattern 的需要。每次访问回调 URL 时,都会从您的资产创建处理后的文件。
此回调 URL 可以与 cron job 一起使用以执行计划处理作业,或添加到自动化 部署任务 中。回调可以在每次提交或代码更改后的 post-hook 上执行。这样,您就无需手动压缩和编译 JavaScript 或 CSS 代码,或用不需要的文件污染您的存储库。
回调 URL 可能如下所示
http://example.com/?rah_minify=key
其中 key
是在 公共回调的安全密钥 字段中设置的值,而 http://example.com/
是您 Textpattern 网站的路径。
压缩文件列表
此设置设置由 rah_minify 压缩的 JavaScript 和 CSS 文件。设置采用绝对文件系统路径列表,格式为源和目标配对,配对由换行符分隔。
source target
source target [\n...]
其中源是要压缩的文件,目标是压缩文件写入的位置。目标和源路径由一个空格(U+0020)分隔。压缩文件由换行符(单个 UNIX 风格换行符)分隔。所有路径都将相对于 Textpattern 的安装目录(例如,./textpattern
)。
以下代码将压缩位于 assets/src/
目录下的文件,包括 main.js
、extra.js
和 default.css
,并将结果写入父目录 assets
。这些文件将位于网站根目录的 assets
目录中,与包含 textpattern
目录和您的网站 index.php
文件的同一目录。
../assets/src/main.js ../assets/main.js
../assets/src/extra.js ../assets/extra.js
../assets/src/default.css ../assets/default.css
创建快照吗?
如果设置为是,则每次压缩资产文件时都会创建带有时间戳的额外文件。这些文件作为创建文件的版本。这些文件提供了一种优化静态资源缓存的方法。
这些时间戳版本将写入与压缩文件相同的目标目录。版本化文件遵循以下命名模式
{targetName}.{timestamp}.{targetExtension}
其中在 {targetName}
中是目标文件的名称(例如 main.min),{timestamp}
是 Unix 时间戳(例如 1345269546),而 {targetExtension}
是目标文件的扩展名(例如 css 或 js)。包含在文件名中的时间戳与目标文件的修改日期相同。
考虑以下文件对
../assets/src/main.js ../assets/main.js
创建的版本化文件将被命名为 main.1345269546.js
,写入与精简的 main.js
文件相同的父目录 assets
。
设置处理后的文件
待办事项。
可选地从 PHP
待办事项。
扩展决定
处理操作由源资产文件的扩展名决定。以 .css
结尾的文件被处理为 CSS,以 .js
结尾的文件被处理为 JavaScript。如果已安装可选的 LESS PHP 编译器,rah_minify 还可以处理 .less
文件中使用的 LESS 代码。具有不可识别扩展名的文件将被忽略。
合并文件
Rah_minify 还支持文件合并。所有源资产文件都可以作为堆栈处理,其中内容写入单个压缩目标文件。这是如何工作的非常简单。任何具有相同目标路径的文件对都将合并,并将压缩输出写入相同的目标文件。
以下文件配置设置将只写入两个压缩文件,而总共有五个源文件
../js/jquery.plugin.js ../js/main.min.js
../js/main.js ../js/main.min.js
../css/bootstrap.css ../css/main.min.css
../css/jquery.plugin.css ../css/main.min.css
../css/main.css ../css/main.min.css
上面将压缩两个名为 main.min.css
和 main.min.js
的文件。文件将合并并按列表顺序写入目标文件。bootstrap.css
的来源将位于 main.min.css
的顶部,而 main.css
的样式将位于文件末尾。
LESS 支持
要在样式表中启用 LESS 语法支持,您首先需要将 LESS PHP 类导入到 Textpattern 中。首先下载 LESSPHP 并将 lessc.inc.php 上传到您的网站服务器。上传文件后,打开 Textpattern 的配置文件 config.php
并向其中添加以下行
include "/absolute/path/to/lessc.inc.php";
其中 /absolute/path/to/less.inc.php
是您上传的 LESS PHP 类文件的绝对路径。
调试和活动日志
当网站处于调试模式时,Rah_minify 将将日志和调试行写入 Textpattern 的 标签跟踪。查看跟踪可以了解为什么文件处理不正确。由 rah_minify 添加的行看起来如下
[rah_minify: main.min.css is up to date]
由 rah_minify 添加的每一行都适当地以 rah_minify:
开头。
感谢
- 感谢 Douglas Crockford 为 JSMin,以及 Ryan Grove 为其 PHP 版本 做出的贡献。
- YUI CSS 压缩器 的 PHP 版本由 Túbal Martín 实现。
变更日志
版本 0.1 – 即将发布
- 首次发布。