gutenbergdocs/private-apis.md
2025-10-22 01:33:45 +08:00

340 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### `core/edit-post` 存储库
私有选择器:
- `getEditedPostTemplateId`
## edit-site
### `core/edit-site` 存储库
私有操作:
- `registerRoute`
- `setEditorCanvasContainerView`
私有选择器:
- `getRoutes`
- `getEditorCanvasContainerView`
# Gutenberg 私有 API
本文概述了 Gutenberg 包暴露的私有 API。这些 API 用于实现 Gutenberg 编辑器(文章编辑器、站点编辑器、核心区块及其他功能)的组成部分,但未向插件和主题开发者或自定义 Gutenberg 集成的开发者公开。
本文档旨在展示我们拥有多少私有 API以及如何利用 `@wordpress/*` 系列包提供的库和框架来构建 Gutenberg 编辑器应用。
## data
注册器包含两个私有方法:
- `privateActionsOf`
- `privateSelectorsOf`
每个存储库均提供用于注册私有选择器/操作的私有 API
- `privateActions`
- `registerPrivateActions`
- `privateSelectors`
- `registerPrivateSelectors`
## blocks
### `core/blocks` 存储库
私有操作:
- `addBlockBindingsSource`
- `removeBlockBindingsSource`
- `addBootstrappedBlockType`
- `addUnprocessedBlockType`
私有选择器:
- `getAllBlockBindingsSources`
- `getBlockBindingsSource`
- `getBootstrappedBlockType`
- `getSupportedStyles`
- `getUnprocessedBlockTypes`
- `hasContentRoleAttribute`
## components
私有导出项:
- `__experimentalPopoverLegacyPositionToPlacement`
- `ComponentsContext`
- `Tabs`
- `Theme`
- `Menu`
- `kebabCase`
## commands
私有导出项:
- `useCommandContext`2023 年 5 月通过 #50543 添加)
### `core/commands` 存储库
私有操作:
- `setContext`(与 `useCommandContext` 同时添加)
## preferences
私有导出项2024 年 1 月通过 #57639 添加):
- `PreferenceBaseOption`
- `PreferenceToggleControl`
- `PreferencesModal`
- `PreferencesModalSection`
- `PreferencesModalTabs`
仅有一个公开导出的组件!
- `PreferenceToggleMenuItem`
## block-editor
私有导出项:
- `AdvancedPanel`
- `BackgroundPanel`
- `BorderPanel`
- `ColorPanel`
- `DimensionsPanel`
- `FiltersPanel`
- `GlobalStylesContext`
- `ImageSettingsPanel`
- `TypographyPanel`
- `areGlobalStyleConfigsEqual`
- `getBlockCSSSelector`
- `getBlockSelectors`
- `getGlobalStylesChanges`
- `getLayoutStyles`
- `toStyles`
- `useGlobalSetting`
- `useGlobalStyle`
- `useGlobalStylesOutput`
- `useGlobalStylesOutputWithConfig`
- `useGlobalStylesReset`
- `useHasBackgroundPanel`
- `useHasBorderPanel`
- `useHasBorderPanelControls`
- `useHasColorPanel`
- `useHasDimensionsPanel`
- `useHasFiltersPanel`
- `useHasImageSettingsPanel`
- `useHasTypographyPanel`
- `useSettingsForBlockElement`
- `ExperimentalBlockCanvas`:公共 `BlockCanvas` 的变体,包含多个额外属性:`contentRef`、`shouldIframe`、`iframeProps`。
- `ExperimentalBlockEditorProvider`:公共 `BlockEditorProvider` 的变体,过滤掉若干私有/实验性设置。另请参阅 `__experimentalUpdateSettings`
- `getDuotoneFilter`
- `getRichTextValues`
- `PrivateQuickInserter`
- `extractWords`
- `getNormalizedSearchTerms`
- `normalizeString`
- `PrivateListView`
- `ResizableBoxPopover`
- `BlockInfo`
- `useHasBlockToolbar`
- `cleanEmptyObject`
- `BlockQuickNavigation`
- `LayoutStyle`
- `BlockRemovalWarningModal`
- `useLayoutClasses`
- `useLayoutStyles`
- `DimensionsTool`
- `ResolutionTool`
- `TabbedSidebar`
- `TextAlignmentControl`
- `usesContextKey`
- `useFlashEditableBlocks`
- `useZoomOut`
- `globalStylesDataKey`
- `globalStylesLinksDataKey`
- `selectBlockPatternsKey`
- `requiresWrapperOnCopy`
- `PrivateRichText`:额外属性 `readOnly`#58916#603272024 年 2 月和 3 月)添加。
- `PrivateInserterLibrary`:额外属性 `onPatternCategorySelection`#621302024 年 5 月)添加。
- `reusableBlocksSelectKey`
- `PrivateBlockPopover`:包含两个额外属性 `__unstableContentRef``__unstablePopoverSlot`
- `PrivatePublishDateTimePicker`:公共 `PublishDateTimePicker` 的变体,包含两个额外属性:`isCompact` 和 `showPopoverHeaderActions`
- `useSpacingSizes`
- `useBlockDisplayTitle`
- `__unstableBlockStyleVariationOverridesWithConfig`
- `setBackgroundStyleDefaults`
- `sectionRootClientIdKey`
- `__unstableCommentIconFill`
- `__unstableCommentIconToolbarFill`
### `core/block-editor` 存储库
私有操作:
- `__experimentalUpdateSettings`:公共 `updateSettings` 操作的实验版本,用于过滤部分私有/实验性设置。
- `clearBlockRemovalPrompt`:清除区块移除提示
- `deleteStyleOverride`:删除样式覆盖
- `ensureDefaultBlock`:确保默认区块存在
- `expandBlock`:展开区块
- `hideBlockInterface`:隐藏区块界面
- `modifyContentLockBlock`:修改内容锁定区块
- `privateRemoveBlocks`:私有移除区块
- `resetZoomLevel`:重置缩放级别
- `setBlockRemovalRules`:设置区块移除规则
- `setInsertionPoint`:设置插入点
- `setLastFocus`:设置最后焦点
- `setOpenedBlockSettingsMenu`:设置已打开的区块设置菜单
- `setStyleOverride`:设置样式覆盖
- `setZoomLevel`:设置缩放级别
- `showBlockInterface`:显示区块界面
- `startDragging`:开始拖拽
- `stopDragging`:停止拖拽
- `stopEditingAsBlocks`:停止以区块形式编辑
私有选择器:
- `getAllPatterns`:获取所有模式
- `getBlockRemovalRules`:获取区块移除规则
- `getBlockSettings`:获取区块设置
- `getBlockStyles`:获取区块样式
- `getBlockWithoutAttributes`:获取无属性区块
- `getClosestAllowedInsertionPoint`:获取最近允许插入点
- `getClosestAllowedInsertionPointForPattern`:获取模式最近允许插入点
- `getContentLockingParent`:获取内容锁定父级
- `getEnabledBlockParents`:获取启用区块父级
- `getEnabledClientIdsTree`获取启用的客户端ID树
- `getExpandedBlock`:获取已展开区块
- `getInserterMediaCategories`:获取插入器媒体分类
- `getInsertionPoint`:获取插入点
- `getLastFocus`:获取最后焦点
- `getLastInsertedBlocksClientIds`获取最后插入区块客户端ID
- `getOpenedBlockSettingsMenu`:获取已打开区块设置菜单
- `getParentSectionBlock`:获取父级区块区域
- `getPatternBySlug`:通过别名获取模式
- `getRegisteredInserterMediaCategories`:获取已注册插入器媒体分类
- `getRemovalPromptData`:获取移除提示数据
- `getReusableBlocks`:获取可重用区块
- `getSectionRootClientId`获取区域根客户端ID
- `getStyleOverrides`:获取样式覆盖
- `getTemporarilyEditingAsBlocks`:获取临时以区块形式编辑状态
- `getTemporarilyEditingFocusModeToRevert`:获取待恢复的临时编辑焦点模式
- `getZoomLevel`:获取缩放级别
- `hasAllowedPatterns`:检查是否存在允许模式
- `isBlockInterfaceHidden`:检查区块界面是否隐藏
- `isBlockSubtreeDisabled`:检查区块子树是否禁用
- `isDragging`:检查是否正在拖拽
- `isResolvingPatterns`:检查是否正在解析模式
- `isSectionBlock`:检查是否为区域区块
- `isZoomOut`:检查是否处于缩小状态
## core-data
私有导出:
- `useEntityRecordsWithPermissions`:带权限的实体记录钩子
### `core` 存储库
私有操作:
- `receiveRegisteredPostMeta`:接收已注册文章元数据
- `editMediaEntity`:编辑媒体实体
私有选择器:
- `getBlockPatternsForPostType`:获取文章类型区块模式
- `getEntityRecordPermissions`:获取实体记录权限
- `getEntityRecordsPermissions`:获取实体记录集权限
- `getNavigationFallbackId`获取导航回退ID
- `getRegisteredPostMeta`:获取已注册文章元数据
- `getUndoManager`:获取撤销管理器
## patterns2023年8月创建的包无公开导出所有内容均为私有
私有导出:
- `OverridesPanel`:覆盖面板
- `CreatePatternModal`:创建模式模态框
- `CreatePatternModalContents`:创建模式模态框内容
- `DuplicatePatternModal`:复制模式模态框
- `isOverridableBlock`:检查是否为可覆盖区块
- `hasOverridableBlocks`:检查是否存在可覆盖区块
- `useDuplicatePatternProps`:复制模式属性钩子
- `RenamePatternModal`:重命名模式模态框
- `PatternsMenuItems`:模式菜单项
- `RenamePatternCategoryModal`:重命名模式分类模态框
- `PatternOverridesControls`:模式覆盖控件
- `ResetOverridesControl`:重置覆盖控件
- `PatternOverridesBlockControls`:模式覆盖区块控件
- `useAddPatternCategory`:添加模式分类钩子
- `PATTERN_TYPES`:模式类型
- `PATTERN_DEFAULT_CATEGORY`:模式默认分类
- `PATTERN_USER_CATEGORY`:模式用户分类
- `EXCLUDED_PATTERN_SOURCES`:排除的模式来源
- `PATTERN_SYNC_TYPES`:模式同步类型
- `PARTIAL_SYNCING_SUPPORTED_BLOCKS`:支持部分同步的区块
### `core/patterns` 存储库
私有操作:
- `convertSyncedPatternToStatic`:将同步模式转换为静态
- `createPattern`:创建模式
- `createPatternFromFile`:从文件创建模式
- `setEditingPattern`:设置编辑模式
私有选择器:
- `isEditingPattern`:检查是否正在编辑模式
## block-library
私有导出:
- `BlockKeyboardShortcuts`:区块键盘快捷键
## router仅私有导出
私有导出:
- `useHistory`:历史记录钩子
- `useLocation`:位置钩子
- `RouterProvider`:路由提供者
## core-commands仅私有导出
私有导出:
- `useCommands`:命令钩子
## editor
私有导出:
- `CreateTemplatePartModal`:创建模板部件模态框
- `BackButton`:返回按钮
- `EntitiesSavedStatesExtensible`:可扩展实体保存状态
- `Editor`:编辑器
- `EditorContentSlotFill`:编辑器内容插槽填充
- `GlobalStylesProvider`:全局样式提供者
- `mergeBaseAndUserConfigs`:合并基础与用户配置
- `PluginPostExcerpt`:插件文章摘要
- `PostCardPanel`:文章卡片面板
- `PreferencesModal`:偏好设置模态框
- `usePostActions`:文章操作钩子
- `ToolsMoreMenuGroup`:工具更多菜单组
- `ViewMoreMenuGroup`:视图更多菜单组
- `ResizableEditor`:可调整大小编辑器
- `registerCoreBlockBindingsSources`:注册核心区块绑定源
- `interfaceStore`:界面存储库
- `ActionItem`:操作项
- `ComplementaryArea`:补充区域
- `ComplementaryAreaMoreMenuItem`:补充区域更多菜单项
- `FullscreenMode`:全屏模式
- `InterfaceSkeleton`:界面骨架
- `PinnedItems`:固定项目
### `core/editor` 存储库
私有操作:
- `createTemplate`:创建模板
- `hideBlockTypes`:隐藏区块类型
- `registerEntityAction`:注册实体操作
- `registerPostTypeActions`:注册文章类型操作
- `removeTemplates`:移除模板
- `revertTemplate`:恢复模板
- `saveDirtyEntities`:保存未保存实体
- `setCurrentTemplateId`设置当前模板ID
- `setIsReady`:设置就绪状态
- `showBlockTypes`:显示区块类型
- `unregisterEntityAction`:取消注册实体操作
私有选择器:
- `getEntityActions`:获取实体操作
- `getInserter`:获取插入器
- `getInserterSidebarToggleRef`:获取插入器侧边栏切换引用
- `getListViewToggleRef`:获取列表视图切换引用
- `getPostBlocksByName`:通过名称获取文章区块
- `getPostIcon`:获取文章图标
- `hasPostMetaChanges`:检查文章元数据是否有变更
- `isEntityReady`:检查实体是否就绪
## edit-post