OriaTheme
GitHub

API 参考 · 编辑领域

@oriatheme/editor-core

无 DOM、Storage 或框架依赖的草稿、字段元数据、智能阶梯、诊断、预览与提交会话。

包与运行环境

纯领域逻辑;只有 preview/save 方法接收由使用方创建的 Runtime。

bash
pnpm add @oriatheme/editor-core

选择使用方项目已有的一种包管理器和 lockfile;示例只使用 package root export,不要从 src、dist 或 registry template 深层导入。

Exports

出口签名描述
describeTokenContract(contract?) => readonly TokenFieldDescriptor[]稳定的合同订单字段元数据。
describeToken(path, contract?) => TokenFieldDescriptor | undefined查找一个编辑器字段。
getTokenModeScope(path) => 'shared' | 'mode'返回标准标记编辑范围。
deriveSmartScale(input: SmartScaleInput) => readonly DerivedTokenValue[]扩展面向设计师的大师价值。
preserveScaleOverrides(derived, current, customized) => readonly DerivedTokenValue[]保留明确定制的叶子。
createThemeEditorIdentity(source, existingThemes) => CloneIdentity为预设编辑创建稳定的未使用标识。
createThemeEditorSession(options) => ThemeEditorSession创建独立于框架的草稿会话。

ThemeEditorSession

出口签名描述
getSnapshot / subscribe() => ThemeEditorSnapshot / (listener) => unsubscribe读取或观察不可变的编辑器状态。
setName / setToken / setTokens(...) => void按名称、一个标记或一组原子更改草稿。
removeToken / resetToken / resetMode / resetAll(...) => void取消设置或恢复拔模值。
replaceFromJson / exportJson(json) => ImportResult / () => stringAtomically import a draft or serialize it.
preview(runtime, mode?) => ThemeEditorPreviewResult预览仅完成有效的修订。
save(runtime) => ThemeEditorSaveResult验证、创建/更新自定义主题或报告冲突。
reload / destroy(theme) => void / () => void采用外部版本或释放会话资源。

重要类型与边界

ThemeEditorOptions 需要 source,编辑 preset 时需要 identity。ThemeEditorSaveResult 的失败原因是 validation 或 conflict;ThemeEditorPreviewResult 的失败返回 issues。不要在 React/Vue 或页面层复制草稿状态机。