#23185 closed defect (bug) (fixed)
Hyphens surrounded by non-breaking spaces are not texturized
Reported by: | redsweater | Owned by: | wonderboymusic |
---|---|---|---|
Milestone: | 4.0 | Priority: | normal |
Severity: | normal | Version: | 2.8 |
Component: | Formatting | Keywords: | has-patch wptexturize 4.0-early |
Focuses: | Cc: |
Description (last modified by )
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 - Non-breaking spaces around the hyphen.<br> Line 2 - Regular spaces around the hyphen.<br> Line 3 - Non-breaking space before the hyphen.<br> Line 4 -- 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.
Attachments (3)
Change History (16)
#4
@
12 years ago
In 1185/tests:
#6
@
11 years ago
- Milestone changed from Awaiting Review to 3.9
Seems good. Should we also handle  ?
#8
@
11 years ago
This will need to be refreshed after #22692 because the editor currently does not save nbsp as an HTML entity.
#10
@
11 years ago
In miqro-23185.patch:
- The two new regexp patterns allow both and UTF-8 nbsp.
- The one pattern without spaces will never match "xn--".
- Input containing "xn–" is no longer converted to "xn--".
- Unit tests updated.
Note: I will come up with a unit testing case for this and attach it ASAP.