Skip to content
目录

单元格类型

切勿误会,这里并非指代表格单元格内数据本身的类型,而是强调单元格解析后按照什么类型去操作图层。

例如:文本类型,图片类型,颜色类型,字体类型等等。

约束方式

受到 typescriptrust 启发,我们在表格解析的过程中引入了 类型约束,这样可以帮助用户在插入数据之前就能发现一些错误。

在表格解析中,类型约束是以列为单位的,换句话说,同一列的单元格必须满足同一种类型约束,具体原因可参考 表单结构

你可以通过显式标注隐式推断 两种方式对单元格类型进行约束

显式标注

出于尊重,我认为设计师应当对自己的行为负责。因此,用户可以在单元格中显式声明类型约束。

用户只需要在表头内用中括号包裹类型声明,例如:

md
// 表头
[text] 名称 ---> [text] 为类型声明 ---> 此列数据将会被解析成文本类型
[image] cover ---> [image] 为类型声明 ---> ...图片类型
[color] 配色 ---> [color] 为类型声明 ---> ...颜色类型
[font_name] 字体 ---> [font_name] 为类型声明 ---> ...字体类型

WARNING

  • 类型声明必须在表头(也就是第一行数据)内声明,否则将会被编译器忽略
  • 大小写不敏感
  • 空格不敏感
  • 如果声明多个,只会取第一个类型

隐式推断

如果用户没有在表头内声明类型约束,那么编译器将会根据表格 第二行 数据内容进行推断,例如

md
// 第二行数据
'rgba(38, 174, 96, 0.5)'  ---> 会被推断为颜色类型
'font-[宋体]-(常规体)'    ---> ...字体类型
'text-12px' ---> ...字号类型
'op-0.5' ---> ...不透明度类型

具体的隐形推断规则请看具体类型介绍

WARNING

  • 显示声明会覆盖隐式推断出类型约束,因此,如果你想要使用隐式推断,你需要在表头中删除类型声明。
  • 如果推断出多个,只会取第一个类型

约束结果

无论是显式声明还是隐式推断,最终都会得到一个类型约束结果,这个结果会影响到后续的解析过程。

用户可以在 重命名图层 页面找到当前表格的类型约束结果(每一种约束都对应一种图层操作,为方便观察其图标也与设计软件保持一致)。

如果表格内容有修改,请点击左下角的 同步表格字段 按钮,重新解析单元格类型。

同步数据

约束类型

先一次性给出所有类型的名称与对应声明关键字,后面再依次讲解。

类型约束显式声明隐式推断
文本text默认匹配
图片 image允许任意格式的图片链接
颜色 colorhex,rgb,rgba,hsl,hsla
隐藏图层 displayblock | hidden
透明度 opacityop-
尺寸 sizew- | h- | wh-
圆角 radiusround- | rd-
旋转 rotaterotate-
位置 positiontop- | left-
字体 font_namefont-[xx]-(xx)
字号 font_sizetext-
行高 line_heightleading-
字间距 letter_spacingtracking-
文本对齐 text_aligntext-left | text_right | text-center | text-justify
文本垂直对齐 text_vertical_alignalign-top | align-middle | align-bottom
段落间距 paragraph_spacingspace-
组件 component不允许隐式推断,必须显示声明
组件变体 variant不允许隐式推断,必须显示声明

文本

拥有此约束类型的单元格解析后会用来填充文本图层的文字内容。

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为文本类型

md
[text] bookname
[Text] price

如果在表头没有发现显式声明,也无法根据第二行内容隐性推导类型约束,解析器会默认此列单元格为文本类型。

图片

此约束类型的单元格解析后会用来填充图层的背景图片。

图片必须是以链接的形式存在,如果不是,请求会自动忽略。

尽管设计软件对图片类型有所约束,例如MG仅支持类型为 png | jpeg | gif | webp的图片填充图层。但我们并不对图片类型进行限制, 只要是合法的图片链接,都可以填充图层。

TIP

部分设计软件图片上传频次受限,实际使用中如遇到图片替换失败的情况,可以稍作等待后再次尝试。

以下表头内容均为有效显示声明,标识此列单元格为图片类型

md
[image] avatar
[Image] banner

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为图片类型

md
https://i.postimg.cc/m216j2gV/girl-10.jpg
https://i.postimg.cc/pVJjNtGX/avatar-girl-10.png
https://img.alicdn.com/imgextra/i2/O1CN01FF1t1g1Q3PDWpSm4b_!!6000000001920-55-tps-508-135.svg

WARNING

再次提醒,解析器只会根据每一列第二行单元格中的内容进行隐式推断

颜色

此约束类型的单元格解析后会用来填充图层的背景颜色或者文本颜色

解析器同时支持 hexrgbahsl 多种格式颜色。

INFO

得益于tinyColor的良好兼容性,解析器支持的颜色格式比较多,具体请参考tinyColor

以下表头内容均为有效显示声明,标识此列单元格为颜色类型

md
[color] background
[Color] color

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为颜色类型

md
#f00 // hex short
#26ae60, //hex
#26ae6090,// hex with alpha
rgb(38, 174, 96), // rgb
rgba(38, 174, 96, 0.5), // rgb with alpha
hsl(150, 60%, 40%), // hsl
hsla(150, 60%, 40%, 0.5) // hsl with alpha

WARNING

  • 不支持颜色名称,例如redgreen
  • 不支持没有 # 的十六进制颜色,例如f0026ae60

隐藏图层

此约束类型的单元格解析后会用来控制图层的显示或者隐藏

以下表头内容均为有效显示声明,标识此列单元格为隐藏图层类型

md
[display] hide
[Display] show

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为隐藏图层类型

md
block
hidden

TIP

参考CSS中的 display:nonedisplay:block 属性, 详见windicss

透明度

此约束类型的单元格解析后会用来控制图层的透明度

以下表头内容均为有效显示声明,标识此列单元格为图层透明度类型

md
[opacity] 0.5
[Opacity] 0.8

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为图层透明度类型

md
op-20
op-0.2
op-50%
Op-22.22%

TIP

  • 如果后面数值部分为小数,解析器会自动转换为百分比,例如op-0.2会被解析为op-20%
  • 如果透明度数值明显不合理,例如 op-222222,解析器放弃透明度解析,视为文本类型约束

尺寸

此约束类型的单元格解析后会用来控制图层的长宽大小

以下表头内容均为有效显示声明,标识此列单元格为尺寸类型

md
[size] 大小
[Size] 规格

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为尺寸类型

md
w-12
h-12px
wh-12

你可以单独声明宽度或者高度,比如w-12px h-10px,也可一起声明 wh-12px,解析器会自动识别。

倘若你在表头显示标注了size,解析器会尽最大努力寻找单元格内的数值,并轮流将此映射为图层宽度和高度。 例如

markdown
100 --> 等同于 w-100
100px --> 等同于 w-100px

100 200 --> 等同于 w-100 h-200
100px 200px --> 等同于 w-100px h-200px

100 200 300 --> 等同于 w-300 h-200
100px 200px 300px 400px --> 等同于 w-300px h-400px

如果解析器在单元格内同时遇到标准格式字段与强制转换字段,解析器会优先使用标准字段,例如

markdown
w-20 200 --> 等同于 w-20
w-20px h-12px 30 40 --> 等同于 w-20px h-12px

TIP

本不用考虑如此复杂,但鉴于这是文档,所以我还是选择写了下来,希望能帮助你更好的理解这个解析器。

圆角

此约束类型的单元格解析后会用来控制图层的圆角

以下表头内容均为有效显示声明,标识此列单元格为圆角类型

md
[radius] 圆角
[Radius] 圆角

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为圆角类型

md
rd-12
rounded-12px

TIP

暂不支持四个角的圆角设置,后续版本会考虑支持

旋转

此约束类型的单元格解析后会用来控制图层的旋转角度

以下表头内容均为有效显示声明,标识此列单元格为旋转类型

md
[rotate] 旋转
[Rotate] 旋转

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为旋转类型

md
rotate-12
rotate-20deg

位置

此约束类型的单元格解析后会用来控制图层相对位置

以下表头内容均为有效显示声明,标识此列单元格为位置类型

md
[position] 位置
[Position] 位置

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为位置类型

md
top-12
top-12px
left-12
left-12px

TIP

并不支持right bottom,这两个属性在设计软件中很少使用,所以暂不支持。

字体

设计软件中,你必须同时指定字体的字体名称字体样式,所以此约束类型的单元格解析后会用来控制图层的字体名称字体样式

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为字体类型

md
[font_name] 主页样式
[Font_name] 书本内容样式

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为字体类型

md
font-[宋体]-(常规体)
font-[苹方-简]-(常规体)
font-[Noto Sans Duployan]-(Regular)

字号

此约束类型的单元格解析后会用来控制图层的字号

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为字号类型

md
[font_size] 字号
[Font_size] 字号

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为字号类型

md
font-12
font-12px

行高

此约束类型的单元格解析后会用来控制文本图层的行高

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为行高类型

md
[line_height] 行高
[Line_height] 行高

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为行高类型

md

leading-12
leading-12px

TIP

如果你不熟悉 leading, 可以查阅windicss的文档

字间距

此约束类型的单元格解析后会用来控制文本图层的文字间距

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为字间距类型

md
[letter_spacing] 字间距
[Letter_spacing] 字间距

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为字间距类型

md
tracking-12
tracking-12px

TIP

如果你不熟悉 tracking, 可以查阅windicss的文档

文本对齐

此约束类型的单元格解析后会用来控制文本图层的水平对齐方向

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为文本对齐类型

md
[text_align] 文本对齐
[Text_align] 文本对齐

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为文本对齐类型

md
text-left
text-center
text-right
text-justify

TIP

如果你不熟悉 text-align, 可以查阅windicss的文档

文本垂直对齐

此约束类型的单元格解析后会用来控制文本图层的垂直对齐方向

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为文本垂直对齐类型

md
[text_vertical_align] 文本
[Text_vertical_align] 文本

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为文本垂直对齐类型

md
align-top
align-middle
align-bottom

TIP

如果你不熟悉 vertical-align, 可以查阅windicss的文档

段落间距

此约束类型的单元格解析后会用来控制文本图层的段落间距

操作对象仅限于文本图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为段落间距类型

md
[paragraph_spacing] 段落间距
[Paragraph_spacing] 段落间距

以下单元格的内容均为有效隐式推断,解析器可以推断出此列单元格为段落间距类型

md
space-12
space-12px

组件

此约束类型的单元格解析后会用来修改实例图层对应的原始组件

操作对象仅限于实例图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为组件类型

md
[component] 书本
[Component] 书本

WARNING

此类型不允许隐式推断,必须显示声明。

组件变体

此约束类型的单元格解析后会用来修改实例图层对应的原始组件变体

操作对象仅限于实例图层,如果强制操作其他图层,请求会自动忽略。

以下表头内容均为有效显示声明,标识此列单元格为组件变体类型

md
[variant] 卡片种类
[variant] 卡片种类

WARNING

此类型不允许隐式推断,必须显示声明。

Released under the GPL License.