[wp-trac] [WordPress Trac] #23185: Hyphens surrounded by non-breaking spaces are not texturized

WordPress Trac noreply at wordpress.org
Mon Jan 14 01:45:52 UTC 2013


#23185: Hyphens surrounded by non-breaking spaces are not texturized
--------------------------+------------------------------
 Reporter:  redsweater    |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Formatting    |     Version:  2.8
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |
--------------------------+------------------------------
Changes (by SergeyBiryukov):

 * version:  trunk => 2.8


Old description:

> Thanks to Ticket #8161, a single hyphen or double hyphen surounded by
> space is converted to an en-dash or em-dash, respectively.
>
> The problem is this conversion doesn't take place as expected when the
> space immediately before or after the affected hypehns is a non-breaking
> space.
>
> Example paste the following into a post as HTML and view it in a browser
> after texturization:
>
> Line 1&nbsp;-&nbsp;Non-breaking spaces around the hyphen.<br>
> Line 2 - Regular spaces around the hyphen.<br>
> Line 3&nbsp;- Non-breaking space before the hyphen.<br>
> Line 4 --&nbsp;Non-breaking space after the double-hyphen.<br>
> Line 5 -- Regular spaces around the double-hyphen.
>
> Only the lines where "Regular spaces" are around the hyphens get
> converted as expected.Lines 1, 3, and 4 are not converted to match their
> regular-space counterparts.
>
> It's reasonable to use non-breaking spaces in web content and I think
> that for situations where a non-breaking space is used it should imply
> the same kind of texturization for the hyphens as a regular space does.
>
> The attached patch removes the static replacement rules for hyphens and
> adds dynamic rules to meet this expectation. I had to add a dynamic rule
> '--' to prevent it being prematurely converted in the static phase, when
> it was surrounded by appropriate spacing. Since I havd to move that one
> from static to dynamic, it made sense to me to just have all the hyphen-
> conversion behavior in one place in dynamic.

New description:

 Thanks to Ticket #8161, a single hyphen or double hyphen surounded by
 space is converted to an en-dash or em-dash, respectively.

 The problem is this conversion doesn't take place as expected when the
 space immediately before or after the affected hypehns is a non-breaking
 space.

 Example paste the following into a post as HTML and view it in a browser
 after texturization:
 {{{
 Line 1&nbsp;-&nbsp;Non-breaking spaces around the hyphen.<br>
 Line 2 - Regular spaces around the hyphen.<br>
 Line 3&nbsp;- Non-breaking space before the hyphen.<br>
 Line 4 --&nbsp;Non-breaking space after the double-hyphen.<br>
 Line 5 -- Regular spaces around the double-hyphen.
 }}}
 Only the lines where "Regular spaces" are around the hyphens get converted
 as expected.Lines 1, 3, and 4 are not converted to match their regular-
 space counterparts.

 It's reasonable to use non-breaking spaces in web content and I think that
 for situations where a non-breaking space is used it should imply the same
 kind of texturization for the hyphens as a regular space does.

 The attached patch removes the static replacement rules for hyphens and
 adds dynamic rules to meet this expectation. I had to add a dynamic rule
 '--' to prevent it being prematurely converted in the static phase, when
 it was surrounded by appropriate spacing. Since I havd to move that one
 from static to dynamic, it made sense to me to just have all the hyphen-
 conversion behavior in one place in dynamic.

--

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/23185#comment:5>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list