syntaxProfiles.json
输出配置(Output profiles)用于定义生成的 HTML 内容的外观。例如,当你展开 br 缩写时,Emmet 可能会生成以下标签之一:
<br>— HTML 标记法<br />— XHTML 标记法<br/>— XML 标记法
Emmet 会尝试自动检测当前文档的输出配置。例如,如果文档包含 XHTML 文档类型声明(doctype),它将使用 xhtml 配置,否则使用 html 配置。
但有时你希望强制 Emmet 为指定的语法使用其他配置,或者使用带有特定规则的自定义配置。
在这种情况下,你需要在扩展文件夹中创建一个 syntaxProfiles.json 文件,并为所需的语法指定配置。
该文件的内容是一个简单的键值对字典,其中键是 snippets.json 中定义的语法名称,值是预定义配置的名称(String)或包含配置选项的字典(Object)。
{
// force XHTML profile for HTML syntax
"html": "xhtml",
// create our own profile for XML
"xml": {
"tag_case": "upper",
"attr_quotes": "single"
}
}
预定义配置
html— 默认输出配置。xhtml— 与html相同,但空元素会以闭合斜杠输出:<br />。xml— XML 和 XSL 语法的默认配置:每个标签占一行并带有缩进,空元素以闭合斜杠输出:<br/>。line— 用于输出没有缩进和换行符的展开缩写。在某些编辑器中,它默认应用于 JavaScript 或 Python 等编程语言,以生成有效的字符串。
创建自定义配置
你可以通过指定一个包含以下键的字典来创建自己的输出配置:
tag_case: 生成标签名的大小写,字符串。可选值为upper(大写)、lower(小写)和asis(保持原样)。attr_case: 生成标签的属性名大小写,字符串。可选值为upper、lower和asis。attr_quotes: 属性值周围的引号,字符串。可选值为single(单引号)和double(双引号)。tag_nl: 每个标签是否在新行显示并带有缩进,布尔值。可选值:true(每个标签独占一行)、false(不格式化)和'decide'(字符串;仅块级元素换行)。tag_nl_leaf: 当tag_nl设置为true时,定义叶子块级节点(即没有子节点的节点)内部是否应该有格式化的换行符。indent: 是否在新行中对标签进行缩进,布尔值。inline_break: 需要多少个内联元素才会强制换行,数值。默认值为3。例如,span*2会展开为<span></span><span></span>,但span*3会创建三个<span>元素,每个元素占一行。将此选项设置为0可禁用内联元素的换行。self_closing_tag: 空元素(如br或img)是否应以闭合斜杠输出,布尔值。可选值:true、false和'xhtml'(字符串;以 XHTML 风格输出闭合斜杠,例如<br />)。filters: 自动应用的过滤器列表。