axllent/silverstripe-less

用于将LESS集成到Silverstripe的less.php包装器

安装次数: 2,080

依赖项: 0

建议者: 0

安全: 0

星标: 6

关注者: 5

分支: 4

公开问题: 0

类型:silverstripe-vendormodule

3.0.1 2024-01-31 19:43 UTC

This package is auto-updated.

Last update: 2024-08-30 01:49:33 UTC


README

一个用于将less.php集成到LESS中的包装器。

特性

  • 无缝地将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/...)暴露的目录结构而无法工作。两个最简单的解决方案是

  1. 在您的less文件中使用变量来提供文件路径(即:不要使用相对路径),或者
  2. 使用路径中的"_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" />

进一步文档