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

11 KiB
Raw Blame History

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

私有导出项:

  • useCommandContext2023 年 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 的变体,包含多个额外属性:contentRefshouldIframeiframeProps
  • 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 的变体,包含两个额外属性:isCompactshowPopoverHeaderActions
  • 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