sitegeist/fluid-tagbuilder

用于提高复杂流体模板可读性的html5标签ViewHelpers

1.0.1 2024-08-28 12:10 UTC

This package is auto-updated.

Last update: 2024-08-28 12:13:18 UTC


README

这是一个尝试使具有大量动态组合HTML标签的复杂Fluid模板更易读的尝试。

免责声明:这不是万能解决方案,仅在适当的情况下使用,绝对不能用于模板中的所有标签!

之前

<button
    class="{class} {f:if(condition: isBold, then: 'bold')} {f:if(condition: isActive, then: 'active')}"
    data-items="{data.items}"
    data-count="{data.count}"
    {f:if(condition: title, then: 'title="{title}"')}
><f:spaceless>
    More content
</f:spaceless></button>

之后

<ft:button
    class="{class}"
    :classList="{
        'bold': isBold,
        'active': isActive
    }"
    :dataList="{data}"
    :spaceless="1"
    title="{title}"
>
    More content
</ft:button>

入门

通过composer安装库 链接

composer require sitegeist/fluid-tagbuilder

... 然后在模板中使用它

<html xmlns:ft="http://typo3.org/ns/Sitegeist/FluidTagbuilder/ViewHelpers" data-namespace-typo3-fluid="true">

特性

  • 支持HTML规范中当前定义的所有标签(见下文)
  • 支持所有当前定义的boolean HTML5属性
    • 如果true:添加required="required"属性
    • 如果false:不添加属性
  • 移除空标签属性
  • :classList="{...}"生成优化的类属性
  • :dataList="{...}"生成数据属性
  • :attributeList="{...}"生成额外的标签属性
  • 使用:spaceless="1"缩短空格

支持的HTML标签

此扩展包括以下HTML5元素的简写 链接

  • a
  • abbr
  • address
  • area
  • article
  • aside
  • audio(带有autplaycontrolsloopmuted作为额外的布尔属性)
  • b
  • base
  • bdi
  • bdo
  • blockquote
  • body
  • br
  • button(带有disabledformnovalidate作为额外的布尔属性)
  • canvas
  • caption
  • cite
  • code
  • col
  • colgroup
  • data
  • datalist
  • dd
  • del
  • details(带有open作为额外的布尔属性)
  • dfn
  • dialog(带有open作为额外的布尔属性)
  • div
  • dl
  • dt
  • em
  • embed
  • fieldset(带有disabled作为额外的布尔属性)
  • figcaption
  • figure
  • footer
  • form(带有novalidate作为额外的布尔属性)
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • head
  • header
  • hgroup
  • hr
  • html
  • i
  • iframe(带有allowfullscreen作为额外的布尔属性)
  • img(带有ismap作为额外的布尔属性)
  • input(带有checkeddisabledformnovalidatemultiplereadonlyrequired作为额外的布尔属性)
  • ins
  • kbd
  • label
  • legend
  • li
  • link(带有disabled作为额外的布尔属性)
  • main
  • map
  • mark
  • math
  • menu
  • meta
  • meter
  • nav
  • noscript
  • object
  • ol(带有reversed作为额外的布尔属性)
  • optgroup(带有disabled作为额外的布尔属性)
  • option(带有disabledselected作为额外的布尔属性)
  • output
  • p
  • param
  • picture
  • pre
  • progress
  • q
  • rp
  • rt
  • ruby
  • s
  • samp
  • script(带 asyncdefernomodule 作为附加的布尔属性)
  • 章节
  • select(带 disabledmultiplerequired 作为附加的布尔属性)
  • 插槽
  • 小号
  • span
  • 粗体
  • 样式
  • 下标
  • 摘要
  • 上标
  • svg
  • 表格
  • 表格体
  • 表格单元格
  • 模板
  • textarea(带 disabledreadonlyrequired 作为附加的布尔属性)
  • 表格页脚
  • 表头单元格
  • 表格头部
  • 时间
  • 标题
  • 表格行
  • track(带 default 作为附加的布尔属性)
  • 下划线
  • 无序列表
  • 变量
  • video(带 autoplaycontrolsloopmutedplaysinline 作为附加的布尔属性)
  • 换行

所有列出的元素都支持以下布尔属性

  • 自动聚焦
  • 隐藏
  • 项作用域