文件格式
Sketch 文档存储为包含 JSON 编码数据的 ZIP 压缩文件。该文件格式最初在 Sketch 43 中引入,允许更好的第三方集成。动态生成 Sketch 文档,无需在 Sketch 中打开即可读取或修改它们。
存档中的 JSON 文件描述文档数据,并包含一些二进制资产,例如位图图像和文档预览。要在命令行上解压缩文档,请使用 unzip
。
unzip document.sketch
使用 zip
存档文档文件夹的内容。
zip -r -X document.sketch *
文件夹结构
meta.json
包含有关文档本身的元数据(页面和画板列表、用于保存文件的 Sketch 版本、使用的字体等)。它等同于运行 sketchtool metadata
命令在文件上获得的输出。
document.json
包含文档所有页面的公共数据,如共享样式,以及到 pages
文件夹中 JSON 文件的链接。
user.json
包含文件的用户元数据,例如每个页面的画布视口和缩放级别、应用程序的 UI 元数据(如面板尺寸等)以及文档是否已上传到 Sketch Cloud。
pages
文件夹
每个文档页面包含一个 JSON 文件。每个文件都以类似于在文件上运行 sketchtool dump
命令获得的格式描述页面的内容。
images
文件夹
images
文件夹包含文档中使用的所有位图,以其原始比例(因此,如果用户导入了一个 1000x1000px 的图像,然后将其大小调整为 200x200px,则会存储完整的 1000x1000px 文件)。
previews
文件夹
包含用户最后编辑的页面的预览图像。如果页面的尺寸小于 2048x2048,则会以全尺寸存储,否则将其缩放以适合 2048x2048 的正方形。
自定义数据
为了存储不属于 Sketch 文档结构的数据,可以为每个文档和图层设置一个特殊的字段 userInfo
对象。
{
"userInfo": {
"com.example.custom.value": {
"comment": "Looking great 👏"
}
}
}
您还可以使用 Sketch JavaScript API 设置自定义数据。请注意,这些值将为当前插件或脚本标识符设置。
const settings = require('sketch/settings')
let document = require('sketch/dom').Document
settings.setDocumentSettingForKey(document, 'comment', 'Done!')
let layer = context.selection[0]
settings.setLayerSettingForKey(layer, 'comment', 'Looking great 👏')