sitegeist / slipstream
将任何HTML标签传输到文档的另一个位置。主要用于CSS和JS
Requires
- neos/flow: ^8.0 || ^9.0 || dev-master
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
Suggests
- flowpack/fullpagecache: Cache full Neos page responses
- sitegeist/monocle: An living-styleguide for Neos that is based on the actual fusion-code
README
呈现融合的头部要求
"量子滑流通过聚焦的量子场穿透量子壁垒,超越了正常的扭曲壁垒。"
slipstream包允许通过为所需的标签添加唯一的属性来定义具有呈现融合的头部要求。它们随后被去重并移动到目标位置。这允许直接通过呈现融合组件定义额外的JS和CSS要求。
作者与赞助商
- Martin Ficzel - ficzel@sitegeist.de
本包的开发和公开发布得到了我们雇主sitegeist的慷慨赞助。
使用方法
您可以通过添加data-slipstream
属性来标记任何要移动到文档头部的HTML片段。
<script data-slipstream src="yourCustomScript.js"></script> <div>your component</div>
slipstream中间件将解析整个页面并检测所有这些标签。然后,这些标签将从原始位置移除,并附加到头部。每个标签只添加一次,所以如果多个组件需要相同的JS,则只添加到指定位置的一个。
通过使用XPath定义data-slipstream
属性,可以更改目标。
<script data-slipstream="//body" src="yourCustomScript.js"></script> <div>your component</div>
要向给定目标添加标签,您可以添加data-slipstream-prepend
属性。
<script data-slipstream="//body" data-slipstream-prepend src="yourCustomScriptAfterOpenendBody.js"></script> <script data-slipstream data-slipstream-prepend src="yourCustomScriptAfterOpenendHead.js"></script>
当启用设置Sitegeist.Slipstream.debugMode
时,HTML注释将被渲染以标记标签被移除和插入的位置。默认情况下,这将在开发环境中启用。如果启用设置Sitegeist.Slipstream.removeSlipstreamAttributes
,则将从slipstream中删除属性。默认情况下,这将在开发环境中禁用。
内部工作原理和性能
slipstream HTTP中间件将修改所有具有活动X-Slipstream: Enabled
HTTP头部的响应。此头部已经添加到Neos.Neos:Page和Sitegeist.Monocle:Preview.Page中,因此这将为Neos和Monocle直接工作。您必须为其他控制器添加头部X-Slipstream: Enabled
。
由于响应体被解析和修改,这给每个请求添加了一点点性能惩罚。然而,该包旨在与Flowpack.FullpageCache一起工作,后者将缓存整个结果,从而减轻轻微的性能不足。
安装
Sitegeist.Slipstream可通过packagist获取,运行composer require sitegeist/slipstream
。
我们使用语义版本控制,因此每次重大更改都会增加主版本号。
贡献
我们乐于接受贡献。请发送给我们pull请求。