跳转到主要内容

Gutenberg 私有 API

本文概述 Gutenberg 包公开的私有 API。这些 API 用于实现 Gutenberg 编辑器(文章编辑器、站点编辑器、核心区块等)的部分功能,但未向插件和主题开发者或自定义 Gutenberg 集成的开发者公开。

本文档旨在展示我们拥有多少私有 API,以及如何利用 @wordpress/* 系列包提供的库和框架,使用这些 API 构建 Gutenberg 编辑器应用。

data

注册表有两个私有方法:

  • privateActionsOf
  • privateSelectorsOf

每个存储都有一个用于注册私有选择器/操作的私有 API:

  • privateActions
  • registerPrivateActions
  • privateSelectors
  • registerPrivateSelectors

blocks

core/blocks 存储

私有操作:

  • addBlockBindingsSource
  • removeBlockBindingsSource
  • addBootstrappedBlockType
  • addUnprocessedBlockType

私有选择器:

  • getAllBlockBindingsSources
  • getBlockBindingsSource
  • getBootstrappedBlockType
  • getSupportedStyles
  • getUnprocessedBlockTypes
  • hasContentRoleAttribute

组件

私有导出项:

  • __experimentalPopoverLegacyPositionToPlacement
  • ComponentsContext
  • Tabs
  • Theme
  • Menu
  • kebabCase

命令

私有导出项:

  • 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
  • ImageSettingsPanel
  • TypographyPanel
  • 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:在 #58916 和 #60327(2024 年 2 月和 3 月)中添加了额外属性 readOnly。
  • PrivateInserterLibrary:在 #62130(2024 年 5 月)中添加了额外属性 onPatternCategorySelection。
  • reusableBlocksSelectKey
  • PrivateBlockPopover:有两个额外属性,__unstableContentRef 和 __unstablePopoverSlot。
  • PrivatePublishDateTimePicker:公共 PublishDateTimePicker 的版本,具有两个额外属性:isCompact 和 showPopoverHeaderActions。
  • useSpacingSizes
  • useBlockDisplayTitle
  • __unstableBlockStyleVariationOverridesWithConfig
  • setBackgroundStyleDefaults
  • sectionRootClientIdKey
  • __unstableCommentIconFill
  • __unstableCommentIconToolbarFill

core/block-editor 存储

私有操作:

  • __experimentalUpdateSettings:公共 updateSettings 操作的版本,会过滤掉某些私有/实验性设置。
  • clearBlockRemovalPrompt
  • clearRequestedInspectorTab
  • deleteStyleOverride
  • ensureDefaultBlock
  • expandBlock
  • hideBlockInterface
  • modifyContentLockBlock
  • privateRemoveBlocks
  • requestInspectorTab
  • resetZoomLevel
  • setBlockRemovalRules
  • setInsertionPoint
  • setLastFocus
  • setOpenedBlockSettingsMenu
  • setStyleOverride
  • setZoomLevel
  • showBlockInterface
  • startDragging
  • stopDragging
  • stopEditingAsBlocks

私有选择器:

  • getAllPatterns
  • getBlockRemovalRules
  • getBlockSettings
  • getBlockStyles
  • getBlockWithoutAttributes
  • getClosestAllowedInsertionPoint
  • getClosestAllowedInsertionPointForPattern
  • getContentLockingParent
  • getEnabledBlockParents
  • getEnabledClientIdsTree
  • getExpandedBlock
  • getInserterMediaCategories
  • getInsertionPoint
  • getLastFocus
  • getLastInsertedBlocksClientIds
  • getOpenedBlockSettingsMenu
  • getParentSectionBlock
  • getPatternBySlug
  • getRegisteredInserterMediaCategories
  • getRemovalPromptData
  • getRequestedInspectorTab
  • getReusableBlocks
  • getSectionRootClientId
  • getStyleOverrides
  • getTemporarilyEditingAsBlocks
  • getTemporarilyEditingFocusModeToRevert
  • getZoomLevel
  • hasAllowedPatterns
  • isBlockInterfaceHidden
  • isBlockSubtreeDisabled
  • isDragging
  • isResolvingPatterns
  • isSectionBlock
  • isZoomOut

core-data

私有导出:

  • useEntityRecordsWithPermissions

core 存储

私有操作:

  • receiveRegisteredPostMeta
  • editMediaEntity

私有选择器:

  • getBlockPatternsForPostType
  • getEntityRecordPermissions
  • getEntityRecordsPermissions
  • getNavigationFallbackId
  • getRegisteredPostMeta
  • getUndoManager

patterns(该包创建于 2023 年 8 月,没有公开导出项,所有内容均为私有)

私有导出项:

  • OverridesPanel
  • CreatePatternModal
  • CreatePatternModalContents
  • DuplicatePatternModal
  • isOverridableBlock
  • useDuplicatePatternProps
  • RenamePatternModal
  • PatternsMenuItems
  • RenamePatternCategoryModal
  • PatternOverridesControls
  • ResetOverridesControl
  • PatternOverridesBlockControls
  • useAddPatternCategory
  • PATTERN_TYPES
  • PATTERN_DEFAULT_CATEGORY
  • PATTERN_USER_CATEGORY
  • EXCLUDED_PATTERN_SOURCES
  • PATTERN_SYNC_TYPES

core/patterns 存储库

私有操作:

  • convertSyncedPatternToStatic
  • createPattern
  • createPatternFromFile
  • setEditingPattern

私有选择器:

  • isEditingPattern

区块库

私有导出:

  • BlockKeyboardShortcuts

router(仅限私有导出)

私有导出:

  • useHistory
  • useLocation
  • RouterProvider

core-commands(仅限私有导出)

私有导出:

  • useCommands

编辑器

私有导出项:

  • CreateTemplatePartModal
  • BackButton
  • EntitiesSavedStatesExtensible
  • Editor
  • 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
  • setIsReady
  • showBlockTypes
  • unregisterEntityAction

私有选择器:

  • getEntityActions
  • getInserter
  • getInserterSidebarToggleRef
  • getListViewToggleRef
  • getPostBlocksByName
  • getPostIcon
  • hasPostMetaChanges
  • isEntityReady

edit-post

core/edit-post 存储

私有选择器:

  • getEditedPostTemplateId

edit-site

core/edit-site 存储

私有操作:

  • registerRoute
  • setEditorCanvasContainerView

私有选择器:

  • getRoutes
  • getEditorCanvasContainerView