For AI agents: the complete documentation index is available at /annealer/zh/llms.txt, the full documentation bundle is available at /annealer/zh/llms-full.txt, and this page is available as Markdown at /annealer/zh/api/profile.md.
  • 简体中文
  • 配置文件参考

    配置文件是一个 YAML 文件,定义属性顺序、布局规则和样式表选项。内置配置文件位于 crates/annealer/profiles/。

    # yaml-language-server: $schema=https://github.com/logue/annealer/raw/refs/heads/main/crates/annealer/schema/profile.schema.json
    schemaVersion: 1
    name: my-profile
    description: My attribute order.
    
    normalize:
      directiveShorthand: true
    
    layout:
      closingBracketNewline: true
      oneAttributePerLine: true
      selfClosing:
        void: always
      contentNewline: {}
    
    groups:
      - name: global
        match: [id]
      - name: class
        match: [class]
      - name: other
        fallback: true
      - name: events
        match: [on*]
    
    stylesheet:
      declarationOrder: smacss
      vendorPrefix: start
    编辑器支持

    JSON Schema(draft-07)位于 crates/annealer/schema/profile.schema.json。配合上面的 modeline 和 YAML 扩展,VS Code 可以校验并补全配置文件。

    配置文件中任何位置的未知键都会报错,因此拼写错误不会被忽略。

    顶层

    键类型必需说明
    schemaVersion1是配置文件格式版本。
    namestring是配置文件名称。
    descriptionstring供人阅读的简介。
    normalizeobject属性名改写。
    layoutobject起始标签的布局规则。
    groupsarray是按输出顺序排列的属性分组。
    stylesheetobject样式表格式化。省略时样式表保持不变。
    classOrderstring | object静态 class 属性的类顺序。省略时类保持原有顺序。

    normalize

    在分类之前应用的改写。

    键类型默认说明
    directiveShorthandbooleanfalsev-bind:foo → :foo,v-on:click → @click。
    hyphenateComponentPropsbooleanfalse组件标签上的 camelCase 属性名 → kebab-case。原生 SVG/MathML 元素除外。

    layout

    详情参见布局。

    键类型默认说明
    closingBracketNewlinebooleanfalse将多行起始标签的结束括号放在单独一行。
    oneAttributePerLinebooleanfalse多行起始标签中每行一个属性。
    selfClosing.voidalways | never | preservepreserve空元素:<br /> 或 <br>。
    selfClosing.normalalways | never | preservepreserve内容为空的非空元素(<div />)。仅限 Vue 模板。
    selfClosing.componentalways | never | preservepreserve内容为空的组件(<MyComp />)。仅限 Vue 模板。
    contentNewlineobject关闭让多行元素的内容独占一行。{} 表示以默认值开启。
    contentNewline.ignorestring[]pre、textarea、行内元素不处理的元素(连同其内部全部内容)。元素名不区分大小写匹配;组件名精确匹配。
    contentNewline.allowEmptyLinesbooleanfalse保留内容前后的空行。

    groups

    分组按输出顺序列出。必须恰好有一个分组是 fallback,且分组名必须唯一。

    键类型默认说明
    namestring–唯一的分组名。必需。
    matchstring[]–模式:精确名称,或以 * 结尾的前缀。除非 fallback: true,否则必需。
    sortsource | alphabetical | listedsource分组内的顺序:按书写顺序、按键名,或按 match 中的顺序。
    fallbackbooleanfalse接收所有未匹配任何模式的属性。
    spreadSafebooleanfalse此分组中的属性可以跨越 v-bind="object" 展开移动。仅用于编译期指令。

    模式会与规范化并转为小写后的键匹配:foo 对应 foo/:foo/v-bind:foo,@click 对应 v-on:click,#name 对应 v-slot:name,修饰符会被去除。精确名称优先于任何前缀,较长的前缀优先于较短的前缀。参见属性顺序。

    stylesheet

    详情参见样式表。

    键类型默认说明
    declarationOrdersmacss | concentric | alphabetical–属性顺序。未设置时不对声明排序。
    declarationOrderGroupBynon-declaration | non-declaration-and-empty-linenon-declaration-and-empty-line如何将声明划分为分别排序的连续段。默认情况下,空行会结束一段;non-declaration 会跨空行排序,但保留空行位置。
    vendorPrefixalongside | startalongsidestart 会将带厂商前缀的声明按字母顺序放在每段的开头。
    styleAttributebooleanfalse同时对静态 style 属性中的声明排序。

    只会改变声明顺序;空白、引号和其他格式交由格式化工具处理。因此不接受 malva 的格式化选项。

    classOrder

    静态 class 属性中类的顺序(参见类顺序):内置类顺序名(tailwind),或内联书写的类顺序配置文件。CLI 的 --class-order 和 JavaScript 的 classOrder 选项可覆盖它。

    classOrder: tailwind

    类顺序配置文件

    类顺序配置文件是一个独立的 YAML 文件,通过 --class-order 或 classOrder 传入,也可以内联写在配置文件的 classOrder 下。其 JSON Schema 为 crates/annealer/schema/class-order.schema.json;内置的类顺序为 crates/annealer/class-orders/tailwind.yaml。

    键类型默认说明
    schemaVersion1–必需。格式版本。
    namestring–必需。类顺序名称。
    descriptionstring–供人阅读的简介。
    unknownstart | endstart未匹配任何规则的类放在哪里(保持源顺序)。
    removeDuplicatesbooleanfalse删除重复的类,保留第一个。
    importantstring–匹配前从工具类开头或结尾去除的标记(!)。
    arbitraryPropertiesbooleanfalse[property:value] 形式的类设置 property。
    variantsobject–separator(如 :)和 order:按等级排列的变体模式,等级低的在前。一个列表项中的模式具有相同等级。
    propertyOrderstring[]–必需。按输出顺序排列的 CSS 属性。
    valuesmap of pattern list–模式中 {name} 的取值集合。number 为内置。
    rulesarray–必需。match(模式)、properties(取自 propertyOrder)以及可选的 count(声明数量,若不同)。

    带有未匹配任何模式的变体的类视为未知类。规则只能引用 propertyOrder 中列出的属性,否则会报错。