gutenbergdocs/docs/private-apis.md

340 lines
11 KiB
Markdown
Raw Normal View History

2025-10-21 17:33:45 +00:00
### `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