silbinarywolf/silverstripe-stampycss

此包已被废弃,不再维护。未建议替代包。

一个将CSSCrush PHP预处理器与Silverstripe集成的模块。

安装: 9

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 0

分支: 1

类型:silverstripe-module

1.0.2 2016-12-26 06:12 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:27:52 UTC


README

使用Silverstripe需求后端添加对CrushCSS的支持。此模块附带CSSCrush,与Requirements_Backend解耦,以便您可以将其与自己的定制解决方案集成。

stampy

快速安装

  1. 将模块放入根目录
  2. 在您的 _config.php 中放入以下内容
Requirements::set_backend(new Stampy\Requirements_Backend());

启用源映射

  1. 更新您的YML,以便生成源映射文件
Stampy\CSSCrush:
  options:
  	source_map: true
  1. 更新您的 assets/.htaccess 以允许 "map" 文件扩展名。从类似以下内容更改
Deny from all
<FilesMatch "\.(?i:html|htm|xhtml|js|css|bmp|png|gif|jpg|jpeg|ico|pcx|tif|tiff|au|mid|midi|mpa|mp3|ogg|m4a|ra|wma|wav|cda|avi|mpg|mpeg|asf|wmv|m4v|mov|mkv|mp4|ogv|webm|swf|flv|ram|rm|doc|docx|dotx|dotm|txt|rtf|xls|xlsx|xltx|xltm|pages|ppt|pptx|potx|potm|pps|csv|cab|arj|tar|zip|zipx|sit|sitx|svg|gz|tgz|bz2|ace|arc|pkg|dmg|hqx|jar|xml|pdf|gpx|kml)$">
	Allow from all
</FilesMatch>

到以下内容

Deny from all
<FilesMatch "\.(?i:html|htm|xhtml|js|css|bmp|png|gif|jpg|jpeg|ico|pcx|tif|tiff|au|mid|midi|mpa|mp3|ogg|m4a|ra|wma|wav|cda|avi|mpg|mpeg|asf|wmv|m4v|mov|mkv|mp4|ogv|webm|swf|flv|ram|rm|doc|docx|dotx|dotm|txt|rtf|xls|xlsx|xltx|xltm|pages|ppt|pptx|potx|potm|pps|csv|cab|arj|tar|zip|zipx|sit|sitx|svg|gz|tgz|bz2|ace|arc|pkg|dmg|hqx|jar|xml|pdf|gpx|kml|map)$">
	Allow from all
</FilesMatch>

扩展CSS Crush

使用CSSCrush,您可以为预处理器添加自定义函数。

Stampy\CSSCrush:
  extensions:
    [CSSCrushExtension]
<?php 

class CSSCrushExtension extends \Extension {
	public function onInit() {
		csscrush_add_function('px2vw', array($this, 'px2vw'));
		csscrush_add_function('px2vh', array($this, 'px2vh'));
	}

	public function px2vw(array $arguments, $context) {
		if (!isset($arguments[1])) {
			throw InvalidArgumentException(__FUNCTION__.' requires 2 parameters.');
		}
		$dimen = (int)$arguments[0];
		$screenDimen = (int)$arguments[1];
		$result = ($dimen / $screenDimen) * 100;
		return $result.'vw';
	}

	public function px2vh(array $arguments, $context) {
		if (!isset($arguments[1])) {
			throw InvalidArgumentException(__FUNCTION__.' requires 2 parameters.');
		}
		$dimen = (int)$arguments[0];
		$screenDimen = (int)$arguments[1];
		$result = ($dimen / $screenDimen) * 100;
		return $result.'vh';
	}
}

配置

Stampy\CSSCrush:
  options:
    plugins:
      - 'px2em'

路线图

  • 向CSSCrush添加 'updateOptions' 扩展。主要是为了您可以使用来自SiteConfig或类似的变量。这将需要更改选项系统,以便只在 /dev/build 或 post-flush 时存储选项,以确保与缓存的兼容性。

鸣谢

CSS Crush 2.4.x by Peteboere 版本: https://github.com/peteboere/css-crush/commit/9dc087f64371c772a2aa36284623185e76ed8c50