In `wptexturize()`, allow dashes before and after curly quotes. Example: This is what she said---"Wow that is cool."
Adds unit tests. Props adamsilverstein, miqrogroove. Fixes #20342. Built from https://develop.svn.wordpress.org/trunk@28726 git-svn-id: http://core.svn.wordpress.org/trunk@28540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
3d3c166f11
commit
4c067bd327
|
@ -91,8 +91,8 @@ function wptexturize($text) {
|
||||||
$cockney = $cockneyreplace = array();
|
$cockney = $cockneyreplace = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$static_characters = array_merge( array( '---', '...', '``', '\'\'', ' (tm)' ), $cockney );
|
$static_characters = array_merge( array( '...', '``', '\'\'', ' (tm)' ), $cockney );
|
||||||
$static_replacements = array_merge( array( $em_dash, '…', $opening_quote, $closing_quote, ' ™' ), $cockneyreplace );
|
$static_replacements = array_merge( array( '…', $opening_quote, $closing_quote, ' ™' ), $cockneyreplace );
|
||||||
|
|
||||||
$spaces = wp_spaces_regexp();
|
$spaces = wp_spaces_regexp();
|
||||||
|
|
||||||
|
@ -113,9 +113,9 @@ function wptexturize($text) {
|
||||||
$dynamic[ '/\'(?=\d)/' ] = $apos;
|
$dynamic[ '/\'(?=\d)/' ] = $apos;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Single quote at start, or preceded by (, {, <, [, ", or spaces.
|
// Single quote at start, or preceded by (, {, <, [, ", -, or spaces.
|
||||||
if ( "'" !== $opening_single_quote ) {
|
if ( "'" !== $opening_single_quote ) {
|
||||||
$dynamic[ '/(?<=\A|[([{<"]|' . $spaces . ')\'/' ] = $opening_single_quote;
|
$dynamic[ '/(?<=\A|[([{<"\-]|' . $spaces . ')\'/' ] = $opening_single_quote;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apostrophe in a word. No spaces or double apostrophes.
|
// Apostrophe in a word. No spaces or double apostrophes.
|
||||||
|
@ -133,9 +133,9 @@ function wptexturize($text) {
|
||||||
$dynamic[ '/(?<=\d)\'/' ] = $prime;
|
$dynamic[ '/(?<=\d)\'/' ] = $prime;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Double quote at start, or preceded by (, {, <, [, or spaces, and not followed by spaces.
|
// Double quote at start, or preceded by (, {, <, [, -, or spaces, and not followed by spaces.
|
||||||
if ( '"' !== $opening_quote ) {
|
if ( '"' !== $opening_quote ) {
|
||||||
$dynamic[ '/(?<=\A|[([{<]|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
|
$dynamic[ '/(?<=\A|[([{<\-]|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Any remaining double quotes.
|
// Any remaining double quotes.
|
||||||
|
@ -149,6 +149,7 @@ function wptexturize($text) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dashes and spaces
|
// Dashes and spaces
|
||||||
|
$dynamic[ '/---/' ] = $em_dash;
|
||||||
$dynamic[ '/(?<=' . $spaces . ')--(?=' . $spaces . ')/' ] = $em_dash;
|
$dynamic[ '/(?<=' . $spaces . ')--(?=' . $spaces . ')/' ] = $em_dash;
|
||||||
$dynamic[ '/(?<!xn)--/' ] = $en_dash;
|
$dynamic[ '/(?<!xn)--/' ] = $en_dash;
|
||||||
$dynamic[ '/(?<=' . $spaces . ')-(?=' . $spaces . ')/' ] = $en_dash;
|
$dynamic[ '/(?<=' . $spaces . ')-(?=' . $spaces . ')/' ] = $en_dash;
|
||||||
|
|
Loading…
Reference in New Issue