carbon / eel
为Neos.io提供的一些Eel助手
Requires
- php: ^8.1
- behat/transliterator: ^1.2
- gehrisandro/tailwind-merge-php: ^1.0
- matthiasmullie/minify: ^1.3
- neos/flow: ^7.0 || ^8.0 || ^9.0
- dev-master
- 2.15.2
- 2.15.1
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- v1.x-dev
- 1.13.3
- 1.13.2
- 1.13.1
- 1.13.0
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- 0.5.2
- 0.5.1
- 0.5.0
- dev-old_namespace
This package is auto-updated.
Last update: 2024-09-13 11:59:32 UTC
README
Carbon.Eel 包为Neos CMS
BEM 助手
生成 BEM 类。修饰符属性可以是字符串(用于一个修饰符)、数组(例如 ['one', 'two']
),或者带有键和值的数组。如果你有一个带有键和值的数组(如 Fusion 数据结构)并且值是 true
,则使用键的名称作为修饰符。
block
(字符串,必需) 块的名称element
(字符串) 元素的名称,可选modifiers
(字符串|array) 修饰符的名称,可选
BEM.array(block, element, modifiers)
到 Carbon.Array.BEM(block, element, modifiers)
的快捷方式
BEM.string(block, element, modifiers)
到 Carbon.String.BEM(block, element, modifiers)
的快捷方式
BEM.modifier(class, modifiers)
生成包含 BEM 类的字符串。修饰符属性可以是字符串(用于一个修饰符)、数组(例如 ['one', 'two']
),或者带有键和值的数组。如果你有一个带有键和值的数组(如 Fusion 数据结构)并且值是 true
,则使用键的名称作为修饰符。
class
(字符串,必需) 类的名称modifiers
(字符串|array) 修饰符的名称,可选
返回 字符串
数组助手
Carbon.Array.BEM(block, element, modifiers)
生成包含 BEM 类的数组。修饰符属性可以是字符串(用于一个修饰符)、数组(例如 ['one', 'two']
),或者带有键和值的数组。如果你有一个带有键和值的数组(如 Fusion 数据结构)并且值是 true
,则使用键的名称作为修饰符。
block
(字符串,必需) 块的名称element
(字符串) 元素的名称,可选modifiers
(字符串|array) 修饰符的名称,可选
返回 数组
Carbon.Array.chunck(array, length, preserveKeys)
将数组分割成包含 length
个元素的数组。最后一个块可能包含少于 length
个元素。
array
(数组,必需) 要处理的数组length
(整数,必需) 每个块的大小preserveKeys
(布尔值) 当设置为true
时,将保留键。默认为false
,将按数字重新索引块
Carbon.Array.join(array, separator)
使用给定的分隔符递归地连接给定的数组。
${Carbon.Array.join(array, ',')}
array
(数组) 应处理的数组separator
(字符串,可选) 之间的分隔符默认为,
返回 转换后的数组作为字符串
Carbon.Array.extractSubElements(array, preserveKeys)
此方法将子元素提取到父级别。
一个类型为的输入数组
[
element1 => [
0 => 'value1'
],
element2 => [
0 => 'value2'
1 => 'value3'
],
将被转换为
[
0 => 'value1'
1 => 'value2'
2 => 'value3'
]
array
(数组) 应处理的数组preserveKeys
(布尔值,可选) 选项是否保留键,默认为false
返回 转换后的数组
Carbon.Array.intersect(array1, array2, array_)
array1
(可迭代|混合) 第一个数组或值array2
(可迭代|混合) 第二个数组或值array_
(可迭代|混合,可选) 可选的变量列表,包含额外的数组/值
返回一个数组,包含所有在所有参数中出现的 array1
的值。
Carbon.Array.length(array)
此方法计算给定数组或可计数对象中的元素数量。如果不是可计数对象,则返回 0
。
count = ${Carbon.Array.length(countable)}
Carbon.Array.hasKey(array, key)
返回一个布尔值,表示数组是否包含指定的键
bool = ${Carbon.Array.hasKey(array, key)}
Carbon.Array.hasValue(array, value)
返回一个布尔值,表示数组是否包含指定的值
bool = ${Carbon.Array.hasValue(array, value)}
Carbon.Array.getValueByPath(array, path)
通过指定的路径返回嵌套数组的值。
value = ${Carbon.Array.getValueByPath(array, path)}
Carbon.Array.setValueByPath(array, path, value)
通过指定的路径在嵌套数组或对象中设置给定的值。
array = ${Carbon.Array.setValueByPath(subject, path, value)}
Carbon.Array.check(variable)
检查一个变量是否可迭代且有项目
返回 变量或 null
(如果它是空的或不可迭代的)
Carbon.Array.isCountable(variable)
检查给定的变量是否可计数
返回 true
或 false
Carbon.Array.sortByItem(array, key, direction)
array
(iterable|mixed) 要排序的数组key
(string) 要排序数组的键direction
(string, optional)ASC
或DESC
。排序方向
返回 排序后的数组
日期助手
Carbon.Date.secondsUntil(string)
返回给定偏移量之前的秒数。在 @cache
条目的 maximumLifetime
中非常有用。
string
(string) 从午夜开始的时间偏移量,格式为DateInterval
dateinerval
(boolean, optional) 如果应该使用区间或解析 $offset,则默认为true
在这个例子中,我们通过添加 0 小时的偏移量在午夜清除缓存。
@cache { mode = 'cached' maximumLifetime = ${Carbon.Date.secondsUntil('PT0H')} ... }
要获取到下一年的秒数,可以这样做
secondUntilNextYear = ${Carbon.Date.secondsUntil('first day of January next year', false)}
返回 秒数间隔(整数)
Carbon.Date.timeToDateInterval(string)
将时间持续时间(1:00)转换为 DateInterval
返回 作为 DateInterval 的持续时间
文件内容助手
Carbon.FileContent.path(string)
返回路径的文件内容。静默失败。
示例
Carbon.FileContent.path('resource://Foo.Bar/Private/Assets/Logo.svg') Carbon.FileContent.path('Foo.Bar/Private/Assets/Logo.svg')
string
(string) 文件的路径
返回 文件的内容
Carbon.FileContent.pathHash(string, length)
从路径的文件内容中返回哈希值。静默失败。
示例
Carbon.FileContent.pathHash('resource://Foo.Bar/Private/Assets/Logo.svg') == 1d62f5a5 Carbon.FileContent.pathHash('Foo.Bar/Private/Assets/Logo.svg', 20) == 1d62f5a55ad5e304d60d
string
(string) 文件的路径length
(integer, optional) 哈希值的长度,默认为8
。最大值为40
返回 文件内容的哈希值
Carbon.FileContent.resource(resource)
返回持久化资源的文件内容。静默失败。
示例
Carbon.FileContent.resource(q(node).property('file'))
resource
(resource) 要读取的持久化资源
返回 文件的内容
Carbon.FileContent.resourceHash(resource, length)
从持久化资源的文件内容中返回哈希值。静默失败。
示例
resource
(resource) 要读取的持久化资源length
(integer, optional) 哈希值的长度,默认为8
。最大值为40
返回 文件内容的哈希值
Tailwind 助手
Tailwind.merge(mixed1, mixed2, mixedN)
此助手允许您合并多个 Tailwind CSS 类,并自动解决它们之间的冲突而无需烦恼。将所有参数评估为 className 并根据需要应用条件。将字符串和数组合并为一个字符串,用空格分隔唯一值。
评估 eel 助手的所有参数并应用以下规则
- 假值:(
null
、''
、[]
、{}
)不会被渲染 - 数组:所有标量且为真值的项都会被渲染为 className
- 对象:具有为真值的键会被渲染为 className
- 标量:被转换为字符串并渲染为 class-name
它基于 tailwind-merge-php。
示例
返回 合并后的字符串
配置
如果您未进行任何额外配置即使用Tailwind CSS,您可以直接使用Eel辅助工具。此处请停止阅读。
如果您正在使用自定义Tailwind配置,可能还需要配置Eel辅助工具以正确合并类。
默认情况下,它已配置为,如果以下所有条件都适用于您的Tailwind配置,您仍然可以使用它
- 仅使用不与其他Tailwind类名冲突的颜色名称
- 仅通过基于数字的Tailwind类名进行数值上的偏差
- 仅使用不与默认字体重量类冲突的字体族类
- 对于其他所有内容,坚持使用默认Tailwind配置
如果这些点中的某些不适用于您,您需要自定义配置。
以下示例展示了如何添加自定义的very-large
字体大小
Carbon: Eel: tailwindMergeConfig: classGroups: 'font-size': - text: ['very-large']
您还可以启用不同的验证器,以使一切更加简便。例如,如果您使用Tailwind OKLCH 插件,您可以设置如下
Carbon: Eel: tailwindMergeConfig: classGroups: 'fill-lightness': - 'fill-lightness-offset': ['INTEGER_VALIDATOR', 'ARBITRARY_NUMBER_VALIDATOR'] 'border-lightness': - 'border-lightness-offset': ['INTEGER_VALIDATOR', 'ARBITRARY_NUMBER_VALIDATOR'] 'text-lightness': - 'text-lightness-offset': ['INTEGER_VALIDATOR', 'ARBITRARY_NUMBER_VALIDATOR'] 'bg-lightness': - 'bg-lightness-offset': ['INTEGER_VALIDATOR', 'ARBITRARY_NUMBER_VALIDATOR']
如果您想使用某个验证器,只需将其更改为大写常量并将其作为字符串添加。例如,如果您想使用TshirtSizeValidator
,只需将TSHIRT_SIZE_VALIDATOR
添加到列表中。
合并服务使用其自己的缓存
Carbon_Eel_Tailwind
。确保在修改配置时清除缓存。
AlpineJS 辅助工具
AlpineJS.object(arg1, arg2, ..argN)
为AlpineJS指令x-data
生成对象。支持嵌套数组。您也可以使用Json.stringify()
做到同样的事情,但这个函数更短,因为AlpineJS接受对象,并且更容易编写和阅读。
示例
...arguments
数组
返回 作为字符串的JavaScript对象
AlpineJS.function(name, arg1, arg2, ..argN)
为AlpineJS生成函数调用。更多信息。支持嵌套数组。在命名数组({first:1,second:null}
)中,null
将被过滤掉,但在列表数组([1,null]
)和平值中则会保留。
示例
name
(字符串) 函数的名称(例如x-data
,x-on:click
等)...arguments
(混合) 函数的选项
返回 x-data函数调用的字符串
AlpineJS.magic(name, arg1, arg2, ..argN)
为AlpineJS生成魔法函数调用。支持嵌套数组。在命名数组({first:1,second:null}
)中,null
将被过滤掉,但在列表数组([1,null]
)和平值中则会保留。
示例
name
(字符串) 魔法的名称。如果没有以$
开头,它将自动添加前缀。...arguments
(混合) 函数的选项
返回 魔法函数调用的字符串
AlpineJS.expression(value)
使用此方法在AlpineJS.object
、AlpineJS.function
或AlpineJS.magic
辅助工具中传递JavaScript表达式。
示例
字符串辅助工具
Carbon.String.BEM(block, element, modifiers)
生成包含 BEM 类的字符串。修饰符属性可以是字符串(用于一个修饰符)、数组(例如 ['one', 'two']
),或者带有键和值的数组。如果你有一个带有键和值的数组(如 Fusion 数据结构)并且值是 true
,则使用键的名称作为修饰符。
block
(字符串,必需) 块的名称element
(字符串) 元素的名称,可选modifiers
(字符串|array) 修饰符的名称,可选
返回 字符串
Carbon.String.urlize(string)
生成给定字符串的缩略名
示例
string
(字符串) 要转换的字符串
返回 转换后的字符串
Carbon.String.minifyJS(javascript)
压缩JavaScript以便更快地交付给客户端。
javascript
(字符串,必需) 要压缩的JavaScript
返回 压缩后的JavaScript
Carbon.String.minifyCSS(css)
压缩CSS以便更快地交付给客户端。
css
(字符串,必需) 要压缩的CSS
返回 压缩后的CSS
Carbon.String.toPascalCase(string)
将字符串转换为 PascalCase
。
示例
string
(字符串) 要转换的字符串
返回 转换后的字符串
Carbon.String.toCamelCase(string)
将字符串转换为 camelCase
。
示例
string
(字符串) 要转换的字符串
返回 转换后的字符串
Carbon.String.convertCamelCase(string, separator)
将 CamelCaseStrings
转换为 hyphen-case-strings
示例
string
(字符串) 要转换的字符串separator
(字符串,可选)单词之间的分隔符默认为-
返回 转换后的字符串
Carbon.String.convertToString(input, separator)
辅助函数,确保返回一个字符串。
示例
input
(字符串,数组)要转换的字符串或数组separator
(字符串,可选)单词之间的分隔符,默认为空白字符
返回 转换后的字符串
Carbon.String.nl2br(string, separator)
将所有换行符替换为 <br>
。
示例
string
(字符串)要转换的字符串separator
(字符串,可选)单词之间的分隔符,默认为<br>
返回 转换后的字符串
Carbon.String.removeNbsp(string)
将非换行空格和双空格替换为普通空格。
示例
string
(字符串)要转换的字符串
返回 转换后的字符串
Carbon.String.classNames(mixed1, mixed2, mixedN)
将所有参数作为 classNames 渲染,如果需要则应用条件。将字符串和数组合并为一个字符串,具有唯一值,用空格分隔。
评估 eel 助手的所有参数并应用以下规则
- 假值:(
null
、''
、[]
、{}
)不会被渲染 - 数组:所有标量且为真值的项都会被渲染为 className
- 对象:具有为真值的键会被渲染为 className
- 标量:被转换为字符串并渲染为 class-name
示例
返回 合并后的字符串
Carbon.String.splitIntegerAndString(string)
将字符串拆分为整数和字符串数组。对动画很有用。
示例
string
(字符串)要拆分的字符串
返回 将字符串拆分为整数和字符串的数组
Carbon.String.phone(phoneNumber, defaultCountryCode, prefix)
辅助函数,将电话号码转换为适用于链接的兼容格式
示例
phoneNumber
(字符串)要转换的电话号码defaultCountryCode
(字符串,可选)默认国家代码,例如'+41'
prefix
(字符串,可选)电话号码前缀,默认为'tel:'
返回 优化后的电话号码
Carbon.String.isValidEmail(emailAddress)
检查字符串是否为有效的电子邮件地址
示例
emailAddress
(字符串)要检查的字符串
Carbon.String.replaceOnce(string, search, replace)
辅助函数,替换字符串的第一个出现。
示例
string
(字符串)正在搜索和替换的字符串search
(字符串)要搜索的值replace
(字符串,可选)替换找到的搜索值的替换值
返回替换一次后的字符串
数字辅助函数
Carbon.Number.format(number, decimals, dec_point, thousands_sep)
使用分组千位格式化数字。如果 decimals
设置为 null
,则返回所需的小数位数。
number
(浮点数,必需)正在格式化的数字decimals
(整数,可选)设置小数位数,默认为null
dec_point
(字符串,可选)修饰符的名称默认为.
thousands_sep
(字符串,可选)修饰符的名称默认为,
Carbon.Number.formatLocale(number, decimals, locale)
使用分组千位格式化本地化数字。如果 decimals
设置为 null
,则返回所需的小数位数。
number
(浮点数,必需)正在格式化的数字decimals
(整数,可选)设置小数位数,默认为null
locale
(字符串,可选)字符串区域 - 例如(de_DE|en|ru_RU)
Carbon.Number.decimalDigits(number)
获取小数位数。
number
(浮点数,必需)正在格式化的数字
Carbon.Number.pxToRem(value, fallback)
将像素值转换为 rem
value
(数字 | 字符串,必需)要转换的值fallback
(数字 | 字符串,可选)如果value
为false
或null
,则返回回退值
示例
返回一个包含转换值的字符串
后端辅助函数
Carbon.Backend.language()
返回界面语言
Carbon.Backend.translate(id, originalLabel, arguments, source, package, quantity, locale)
获取 id 或原始标签的翻译值(界面语言)。如果仅设置了 id 且包含翻译简写字符串,则根据该简写进行翻译。
在其他所有情况下:如果翻译标签中存在占位符,则替换所有占位符与相应值。
id
(字符串)用于查找翻译的 id(XLIFF 中的 trans-unit id)originalLabel
(字符串,可选)原始翻译值(未翻译的源字符串)arguments
(数组,可选)要插入到占位符中的数值索引或命名字符串的数组source
(字符串,可选)包含翻译的文件名package
(字符串,可选)目标包密钥quantity
(混合,可选)用于查找复数形式的数字(浮点数或整数),使用null
不使用复数形式locale
(字符串,可选)要使用的区域标识符(使用接口语言则为NULL)
返回翻译后的标签或源标签/ID密钥
安装
Carbon.Eel可以通过packagist获取。只需运行
composer require carbon/eel
致谢
一些Eel辅助函数受到了punkt.de的启发或复制