diff options
Diffstat (limited to '')
-rw-r--r-- | wp-includes/blocks/heading.php | 52 | ||||
-rw-r--r-- | wp-includes/blocks/heading/block.json | 70 | ||||
-rw-r--r-- | wp-includes/blocks/heading/style-rtl.css | 6 | ||||
-rw-r--r-- | wp-includes/blocks/heading/style-rtl.min.css | 1 | ||||
-rw-r--r-- | wp-includes/blocks/heading/style.css | 6 | ||||
-rw-r--r-- | wp-includes/blocks/heading/style.min.css | 1 |
6 files changed, 136 insertions, 0 deletions
diff --git a/wp-includes/blocks/heading.php b/wp-includes/blocks/heading.php new file mode 100644 index 0000000..5a7e8db --- /dev/null +++ b/wp-includes/blocks/heading.php @@ -0,0 +1,52 @@ +<?php +/** + * Appending the wp-block-heading to before rendering the stored `core/heading` block contents. + * + * @package WordPress + */ + +/** + * Adds a wp-block-heading class to the heading block content. + * + * For example, the following block content: + * <h2 class="align-left">Hello World</h2> + * + * Would be transformed to: + * <h2 class="align-left wp-block-heading">Hello World</h2> + * + * @param array $attributes Attributes of the block being rendered. + * @param string $content Content of the block being rendered. + * + * @return string The content of the block being rendered. + */ +function block_core_heading_render( $attributes, $content ) { + if ( ! $content ) { + return $content; + } + + $p = new WP_HTML_Tag_Processor( $content ); + + $header_tags = array( 'H1', 'H2', 'H3', 'H4', 'H5', 'H6' ); + while ( $p->next_tag() ) { + if ( in_array( $p->get_tag(), $header_tags, true ) ) { + $p->add_class( 'wp-block-heading' ); + break; + } + } + + return $p->get_updated_html(); +} + +/** + * Registers the `core/heading` block on server. + */ +function register_block_core_heading() { + register_block_type_from_metadata( + __DIR__ . '/heading', + array( + 'render_callback' => 'block_core_heading_render', + ) + ); +} + +add_action( 'init', 'register_block_core_heading' ); diff --git a/wp-includes/blocks/heading/block.json b/wp-includes/blocks/heading/block.json new file mode 100644 index 0000000..7c018f8 --- /dev/null +++ b/wp-includes/blocks/heading/block.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 3, + "name": "core/heading", + "title": "Heading", + "category": "text", + "description": "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", + "keywords": [ "title", "subtitle" ], + "textdomain": "default", + "attributes": { + "textAlign": { + "type": "string" + }, + "content": { + "type": "string", + "source": "html", + "selector": "h1,h2,h3,h4,h5,h6", + "default": "", + "__experimentalRole": "content" + }, + "level": { + "type": "number", + "default": 2 + }, + "placeholder": { + "type": "string" + } + }, + "supports": { + "align": [ "wide", "full" ], + "anchor": true, + "className": true, + "color": { + "gradients": true, + "link": true, + "__experimentalDefaultControls": { + "background": true, + "text": true + } + }, + "spacing": { + "margin": true, + "padding": true, + "__experimentalDefaultControls": { + "margin": false, + "padding": false + } + }, + "typography": { + "fontSize": true, + "lineHeight": true, + "__experimentalFontFamily": true, + "__experimentalFontStyle": true, + "__experimentalFontWeight": true, + "__experimentalLetterSpacing": true, + "__experimentalTextTransform": true, + "__experimentalTextDecoration": true, + "__experimentalWritingMode": true, + "__experimentalDefaultControls": { + "fontSize": true, + "fontAppearance": true, + "textTransform": true + } + }, + "__unstablePasteTextInline": true, + "__experimentalSlashInserter": true + }, + "editorStyle": "wp-block-heading-editor", + "style": "wp-block-heading" +} diff --git a/wp-includes/blocks/heading/style-rtl.css b/wp-includes/blocks/heading/style-rtl.css new file mode 100644 index 0000000..a6bf013 --- /dev/null +++ b/wp-includes/blocks/heading/style-rtl.css @@ -0,0 +1,6 @@ +h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{ + padding:1.25em 2.375em; +} +h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){ + rotate:180deg; +}
\ No newline at end of file diff --git a/wp-includes/blocks/heading/style-rtl.min.css b/wp-includes/blocks/heading/style-rtl.min.css new file mode 100644 index 0000000..1578691 --- /dev/null +++ b/wp-includes/blocks/heading/style-rtl.min.css @@ -0,0 +1 @@ +h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
\ No newline at end of file diff --git a/wp-includes/blocks/heading/style.css b/wp-includes/blocks/heading/style.css new file mode 100644 index 0000000..a6bf013 --- /dev/null +++ b/wp-includes/blocks/heading/style.css @@ -0,0 +1,6 @@ +h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{ + padding:1.25em 2.375em; +} +h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){ + rotate:180deg; +}
\ No newline at end of file diff --git a/wp-includes/blocks/heading/style.min.css b/wp-includes/blocks/heading/style.min.css new file mode 100644 index 0000000..1578691 --- /dev/null +++ b/wp-includes/blocks/heading/style.min.css @@ -0,0 +1 @@ +h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
\ No newline at end of file |