axllent / silverstripe-less
用于将LESS集成到Silverstripe的less.php包装器
3.0.1
2024-01-31 19:43 UTC
Requires
- axllent/silverstripe-minifier: ^2.0
- silverstripe/framework: ^5.0
- wikimedia/less.php: ^4.1
README
特性
- 无缝地将less.php的分支集成到Silverstripe中
- 包含刷新选项(?flush)以重新生成CSS样式表(例如,使用@import强制未检测到的less更改)
- 将处理过的*.css文件写入
assets/_css
并自动修改Requirements
路径 - 允许通过less编译传递自定义全局变量(yaml配置)
- 在
live
模式下自动压缩CSS文件(可能需要初始的?flush
) - 将任何处理过的editor.less文件添加到TinyMCE中(必须在您的前端模板中包含)
需求
- Silverstripe ^5
安装
composer require axllent/silverstripe-less
使用方法
您需要通过完整的LESS文件名引用您的less文件(例如:stylesheet.less
)。
注意:less.php编译器将相对路径(例如:url('../images/logo.png')
)转换为基于您包含文件时提供的路径的url('/themes/site/images/logo.png')
,这意味着在Silverstripe中由于通过(_resources/...
)暴露的目录结构而无法工作。两个最简单的解决方案是
- 在您的less文件中使用变量来提供文件路径(即:不要使用相对路径),或者
- 使用路径中的"_resources"包含您的less文件,例如:
Requirements:css('_resources/themes/site/css/stylesheet.less');
示例
在您的页面控制器中
<?php use SilverStripe\CMS\Controllers\ContentController; use SilverStripe\View\Requirements; class PageController extends ContentController { public function init() { parent::init(); Requirements:css('themes/site/css/stylesheet.less'); } }
或通过模板
<% require themedCSS("layout.less") %>
生成的HTML将自动指向assets/_css
中的处理过的CSS文件,而不是原始的less文件位置,例如
<link rel="stylesheet" type="text/css" href="/assets/_css/themes-site-css-stylesheet.css?m=123456789" />
进一步文档
- Usage.md用于使用示例。
- Configuration.md用于配置选项。
- 查看Changelog