-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'trunk' into fix/social-mover-orientation
- Loading branch information
Showing
50 changed files
with
2,255 additions
and
2,572 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
<?php | ||
/** | ||
* PHP and WordPress configuration compatibility functions for the Gutenberg | ||
* editor plugin changes related to i18n. | ||
* | ||
* @package gutenberg | ||
*/ | ||
|
||
/** | ||
* Override core's wp_get_word_count_type() introduced in WordPress 6.2. | ||
* Originally, get_word_count_type() method of the WP_Locale class is executed, | ||
* but the process is simulated here. | ||
* | ||
* This function should not be backported to core. | ||
*/ | ||
if ( ! function_exists( 'wp_get_word_count_type' ) ) { | ||
/** | ||
* Retrieves the word count type based on the locale. | ||
* | ||
* @return string Locale-specific word count type. | ||
*/ | ||
function wp_get_word_count_type() { | ||
$word_count_type = _x( 'words', 'Word count type. Do not translate!', 'gutenberg' ); | ||
|
||
// Check for valid types. | ||
if ( 'characters_excluding_spaces' !== $word_count_type && 'characters_including_spaces' !== $word_count_type ) { | ||
// Defaults to 'words'. | ||
$word_count_type = 'words'; | ||
} | ||
return $word_count_type; | ||
} | ||
} | ||
|
||
if ( ! function_exists( 'wp_word_count' ) ) { | ||
/** | ||
* Count words or characters in a provided text string. | ||
* | ||
* @param string $text Text to count elements in. | ||
* @param string $type The type of count. Accepts 'words', 'characters_excluding_spaces', or 'characters_including_spaces'. | ||
* @param array $settings { | ||
* Optional. Array of arguments used to overrides for settings. | ||
* | ||
* @type string $html_regexp Optional. Regular expression to find HTML elements. | ||
* @type string $html_comment_regexp Optional. Regular expression to find HTML comments. | ||
* @type string $space_regexp Optional. Regular expression to find irregular space | ||
* characters. | ||
* @type string $html_entity_regexp Optional. Regular expression to find HTML entities. | ||
* @type string $connector_regexp Optional. Regular expression to find connectors that | ||
* split words. | ||
* @type string $remove_regexp Optional. Regular expression to find remove unwanted | ||
* characters to reduce false-positives. | ||
* @type string $astral_regexp Optional. Regular expression to find unwanted | ||
* characters when searching for non-words. | ||
* @type string $words_regexp Optional. Regular expression to find words by spaces. | ||
* @type string $characters_excluding_spaces_regexp Optional. Regular expression to find characters which | ||
* are non-spaces. | ||
* @type string $characters_including_spaces_regexp Optional. Regular expression to find characters | ||
* including spaces. | ||
* @type array $shortcodes Optional. Array of shortcodes that should be removed | ||
* from the text. | ||
* } | ||
* @return int The word or character count. | ||
*/ | ||
function wp_word_count( $text, $type, $settings = array() ) { | ||
$defaults = array( | ||
'html_regexp' => '/<\/?[a-z][^>]*?>/i', | ||
'html_comment_regexp' => '/<!--[\s\S]*?-->/', | ||
'space_regexp' => '/ | /i', | ||
'html_entity_regexp' => '/&\S+?;/', | ||
'connector_regexp' => "/--|\x{2014}/u", | ||
'remove_regexp' => "/[\x{0021}-\x{0040}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{0080}-\x{00BF}\x{00D7}\x{00F7}\x{2000}-\x{2BFF}\x{2E00}-\x{2E7F}]/u", | ||
'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u", | ||
'words_regexp' => '/\S\s+/u', | ||
'characters_excluding_spaces_regexp' => '/\S/u', | ||
'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u", | ||
'shortcodes' => array(), | ||
); | ||
|
||
$count = 0; | ||
|
||
if ( ! $text ) { | ||
return $count; | ||
} | ||
|
||
$settings = wp_parse_args( $settings, $defaults ); | ||
|
||
// If there are any shortcodes, add this as a shortcode regular expression. | ||
if ( is_array( $settings['shortcodes'] ) && ! empty( $settings['shortcodes'] ) ) { | ||
$settings['shortcodes_regexp'] = '/\\[\\/?(?:' . implode( '|', $settings['shortcodes'] ) . ')[^\\]]*?\\]/'; | ||
} | ||
|
||
// Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'. | ||
if ( 'characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type ) { | ||
$type = 'words'; | ||
} | ||
|
||
$text .= "\n"; | ||
|
||
// Replace all HTML with a new-line. | ||
$text = preg_replace( $settings['html_regexp'], "\n", $text ); | ||
|
||
// Remove all HTML comments. | ||
$text = preg_replace( $settings['html_comment_regexp'], '', $text ); | ||
|
||
// If a shortcode regular expression has been provided use it to remove shortcodes. | ||
if ( ! empty( $settings['shortcodes_regexp'] ) ) { | ||
$text = preg_replace( $settings['shortcodes_regexp'], "\n", $text ); | ||
} | ||
|
||
// Normalize non-breaking space to a normal space. | ||
$text = preg_replace( $settings['space_regexp'], ' ', $text ); | ||
|
||
if ( 'words' === $type ) { | ||
// Remove HTML Entities. | ||
$text = preg_replace( $settings['html_entity_regexp'], '', $text ); | ||
|
||
// Convert connectors to spaces to count attached text as words. | ||
$text = preg_replace( $settings['connector_regexp'], ' ', $text ); | ||
|
||
// Remove unwanted characters. | ||
$text = preg_replace( $settings['remove_regexp'], '', $text ); | ||
} else { | ||
// Convert HTML Entities to "a". | ||
$text = preg_replace( $settings['html_entity_regexp'], 'a', $text ); | ||
|
||
// Remove surrogate points. | ||
$text = preg_replace( $settings['astral_regexp'], 'a', $text ); | ||
} | ||
|
||
// Match with the selected type regular expression to count the items. | ||
preg_match_all( $settings[ $type . '_regexp' ], $text, $matches ); | ||
|
||
if ( $matches ) { | ||
return count( $matches[0] ); | ||
} | ||
|
||
return $count; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"$schema": "https://schemas.wp.org/trunk/block.json", | ||
"apiVersion": 2, | ||
"__experimental": true, | ||
"name": "core/post-time-to-read", | ||
"title": "Time To Read", | ||
"category": "theme", | ||
"description": "Show minutes required to finish reading the post.", | ||
"textdomain": "default", | ||
"usesContext": [ "postId", "postType" ], | ||
"attributes": { | ||
"textAlign": { | ||
"type": "string" | ||
} | ||
}, | ||
"supports": { | ||
"html": false, | ||
"multiple": false | ||
} | ||
} |
Oops, something went wrong.