Skip to content

Commit b0fd8a4

Browse files
committed
[css-text-3] Move section for better readability between Phase 1 and Phase 2 sections.
1 parent 4b83157 commit b0fd8a4

File tree

1 file changed

+193
-192
lines changed

1 file changed

+193
-192
lines changed

css-text-3/Overview.bs

Lines changed: 193 additions & 192 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,198 +1402,6 @@ Text Processing</h3>
14021402
white-space-bidirectionality-001.xht
14031403
</wpt>
14041404

1405-
<h4 id="line-break-transform">
1406-
Segment Break Transformation Rules</h4>
1407-
1408-
<p>When 'white-space' is ''pre'', ''pre-wrap'', ''break-spaces'', or ''pre-line'',
1409-
<a>segment breaks</a> are not <a>collapsible</a>
1410-
and are instead transformed into a preserved line feed (U+000A).
1411-
1412-
<wpt pathprefix="/css/CSS2/text/">
1413-
white-space-008.xht
1414-
white-space-processing-016.xht
1415-
white-space-processing-017.xht
1416-
white-space-processing-018.xht
1417-
</wpt>
1418-
1419-
<p>For other values of 'white-space', <a>segment breaks</a> are <a>collapsible</a>.
1420-
Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1421-
is removed.
1422-
Then any remaining <a>segment break</a> is
1423-
either transformed into a space (U+0020) or removed
1424-
depending on the context before and after the break:
1425-
1426-
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1427-
segment-break-transformation-removable-2.html
1428-
segment-break-transformation-removable-4.html
1429-
</wpt>
1430-
1431-
<ul>
1432-
<li>If the character immediately before or immediately after the [=segment break=]
1433-
is the zero-width space character (U+200B), then the break
1434-
is removed, leaving behind the zero-width space.
1435-
1436-
<wpt>
1437-
white-space/seg-break-transformation-016.html
1438-
white-space/seg-break-transformation-017.html
1439-
white-space/seg-break-transformation-018.html
1440-
white-space/seg-break-transformation-019.html
1441-
</wpt>
1442-
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1443-
segment-break-transformation-removable-1.html
1444-
segment-break-transformation-removable-3.html
1445-
</wpt>
1446-
<li>Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1447-
the character before and after the [=segment break=] is
1448-
<code>Fullwidth</code>, <code>Wide</code>, or <code>Halfwidth</code>
1449-
(not <code>Ambiguous</code>),
1450-
and neither side is Hangul,
1451-
then the [=segment break=] is removed.
1452-
1453-
<wpt>
1454-
white-space/seg-break-transformation-001.html
1455-
white-space/seg-break-transformation-002.html
1456-
white-space/seg-break-transformation-003.html
1457-
white-space/seg-break-transformation-004.html
1458-
white-space/seg-break-transformation-005.html
1459-
white-space/seg-break-transformation-006.html
1460-
white-space/seg-break-transformation-007.html
1461-
white-space/seg-break-transformation-008.html
1462-
white-space/seg-break-transformation-009.html
1463-
white-space/seg-break-transformation-010.html
1464-
white-space/seg-break-transformation-011.html
1465-
white-space/seg-break-transformation-012.html
1466-
white-space/seg-break-transformation-014.html
1467-
white-space/seg-break-transformation-015.html
1468-
</wpt>
1469-
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1470-
segment-break-transformation-rules-001.html
1471-
segment-break-transformation-rules-002.html
1472-
segment-break-transformation-rules-003.html
1473-
segment-break-transformation-rules-004.html
1474-
segment-break-transformation-rules-005.html
1475-
segment-break-transformation-rules-006.html
1476-
segment-break-transformation-rules-007.html
1477-
segment-break-transformation-rules-008.html
1478-
segment-break-transformation-rules-009.html
1479-
segment-break-transformation-rules-010.html
1480-
segment-break-transformation-rules-011.html
1481-
segment-break-transformation-rules-012.html
1482-
segment-break-transformation-rules-013.html
1483-
segment-break-transformation-rules-014.html
1484-
segment-break-transformation-rules-015.html
1485-
segment-break-transformation-rules-016.html
1486-
segment-break-transformation-rules-017.html
1487-
segment-break-transformation-rules-018.html
1488-
segment-break-transformation-rules-019.html
1489-
segment-break-transformation-rules-020.html
1490-
segment-break-transformation-rules-021.html
1491-
segment-break-transformation-rules-022.html
1492-
segment-break-transformation-rules-023.html
1493-
segment-break-transformation-rules-024.html
1494-
segment-break-transformation-rules-025.html
1495-
segment-break-transformation-rules-026.html
1496-
segment-break-transformation-rules-027.html
1497-
segment-break-transformation-rules-028.html
1498-
segment-break-transformation-rules-029.html
1499-
segment-break-transformation-rules-030.html
1500-
segment-break-transformation-rules-031.html
1501-
segment-break-transformation-rules-032.html
1502-
segment-break-transformation-rules-033.html
1503-
segment-break-transformation-rules-034.html
1504-
segment-break-transformation-rules-035.html
1505-
segment-break-transformation-rules-036.html
1506-
segment-break-transformation-rules-037.html
1507-
segment-break-transformation-rules-038.html
1508-
segment-break-transformation-rules-039.html
1509-
segment-break-transformation-rules-040.html
1510-
segment-break-transformation-rules-041.html
1511-
segment-break-transformation-rules-042.html
1512-
segment-break-transformation-rules-043.html
1513-
segment-break-transformation-rules-044.html
1514-
segment-break-transformation-rules-045.html
1515-
segment-break-transformation-rules-046.html
1516-
segment-break-transformation-rules-047.html
1517-
segment-break-transformation-rules-048.html
1518-
segment-break-transformation-rules-049.html
1519-
</wpt>
1520-
<li>Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1521-
is <a for=writing-system>Chinese</a>, <a for=writing-system>Japanese</a>, or Yi,
1522-
and the character before or after the [=segment break=]
1523-
is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1524-
and has an <a>East Asian Width property</a> of <code>Ambiguous</code>,
1525-
and the character on the other side of the [=segment break=] is
1526-
<code>Fullwidth</code>, <code>Wide</code>, or <code>Halfwidth</code>,
1527-
and not Hangul,
1528-
then the [=segment break=] is removed.
1529-
1530-
<wpt>
1531-
writing-system/writing-system-segment-break-001.html
1532-
</wpt>
1533-
<li>Otherwise, the [=segment break=] is converted to a space (U+0020).
1534-
</ul>
1535-
1536-
<p>
1537-
For this purpose,
1538-
Emoji (Unicode property <code>Emoji</code>)
1539-
with an <a>East Asian Width property</a> of
1540-
<code>Wide</code> or <code>Neutral</code>
1541-
are treated as having an <a>East Asian Width property</a> of
1542-
<code>Ambiguous</code>.
1543-
1544-
<p class="note">Note: The white space processing rules have already
1545-
removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1546-
take place.</p>
1547-
1548-
<div class="example">
1549-
The purpose of the segment break transformation rules
1550-
(and white space collapsing in general)
1551-
is to “unbreak” text that has been
1552-
<a href="#white-space-processing">broken into segments</a>
1553-
to make the document source code easier to work with.
1554-
In languages that use word separators, such as English and Korean,
1555-
“unbreaking” a line requires joining the two lines with a [=space=].
1556-
1557-
<figure>
1558-
<pre>
1559-
Here is an English paragraph
1560-
that is broken into multiple lines
1561-
in the source code so that it can
1562-
more easily read in a text editor.
1563-
</pre>
1564-
<p>Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1565-
<figcaption>
1566-
Eliminating a line break in English requires maintaining a [=space=] in its place.
1567-
</figcaption>
1568-
</figure>
1569-
1570-
In languages that have no word separators, such as Chinese,
1571-
“unbreaking” a line requires joining the two lines with no intervening space.
1572-
1573-
<figure>
1574-
<pre>
1575-
这个段落是呢么长,
1576-
在一行写不行。最好
1577-
用三行写。
1578-
</pre>
1579-
<p>这个段落是呢么长,在一行不行。最好用三行写。</p>
1580-
<figcaption>
1581-
Eliminating a line break in Chinese requires eliminating any intervening [=white space=].
1582-
</figcaption>
1583-
</figure>
1584-
1585-
The segment break transformation rules thus use adjacent context
1586-
to either transform the segment break into a space
1587-
or eliminate it entirely.
1588-
</div>
1589-
1590-
<p class="feedback issue">Comments on how well these rules would work in practice would
1591-
be very much appreciated, particularly from people who work with
1592-
Thai and similar scripts.
1593-
Note that browser implementations do not currently follow these rules consistently
1594-
(although IE does in some cases transform the break,
1595-
and Firefox follows the first two bullet points).</p>
1596-
15971405
<h4 id="white-space-phase-2">Phase II: Trimming and Positioning</h4>
15981406

15991407
<p>Then, the entire block is rendered.
@@ -1870,6 +1678,199 @@ Text Processing</h3>
18701678
when measuring the line’s contents for fit.
18711679
</div>
18721680

1681+
1682+
<h4 id="line-break-transform">
1683+
Segment Break Transformation Rules</h4>
1684+
1685+
<p>When 'white-space' is ''pre'', ''pre-wrap'', ''break-spaces'', or ''pre-line'',
1686+
<a>segment breaks</a> are not <a>collapsible</a>
1687+
and are instead transformed into a preserved line feed (U+000A).
1688+
1689+
<wpt pathprefix="/css/CSS2/text/">
1690+
white-space-008.xht
1691+
white-space-processing-016.xht
1692+
white-space-processing-017.xht
1693+
white-space-processing-018.xht
1694+
</wpt>
1695+
1696+
<p>For other values of 'white-space', <a>segment breaks</a> are <a>collapsible</a>.
1697+
Any collapsible <a>segment break</a> immediately following another collapsible <a>segment break</a>
1698+
is removed.
1699+
Then any remaining <a>segment break</a> is
1700+
either transformed into a space (U+0020) or removed
1701+
depending on the context before and after the break:
1702+
1703+
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1704+
segment-break-transformation-removable-2.html
1705+
segment-break-transformation-removable-4.html
1706+
</wpt>
1707+
1708+
<ul>
1709+
<li>If the character immediately before or immediately after the [=segment break=]
1710+
is the zero-width space character (U+200B), then the break
1711+
is removed, leaving behind the zero-width space.
1712+
1713+
<wpt>
1714+
white-space/seg-break-transformation-016.html
1715+
white-space/seg-break-transformation-017.html
1716+
white-space/seg-break-transformation-018.html
1717+
white-space/seg-break-transformation-019.html
1718+
</wpt>
1719+
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1720+
segment-break-transformation-removable-1.html
1721+
segment-break-transformation-removable-3.html
1722+
</wpt>
1723+
<li>Otherwise, if the <a>East Asian Width property</a> [[!UAX11]] of both
1724+
the character before and after the [=segment break=] is
1725+
<code>Fullwidth</code>, <code>Wide</code>, or <code>Halfwidth</code>
1726+
(not <code>Ambiguous</code>),
1727+
and neither side is Hangul,
1728+
then the [=segment break=] is removed.
1729+
1730+
<wpt>
1731+
white-space/seg-break-transformation-001.html
1732+
white-space/seg-break-transformation-002.html
1733+
white-space/seg-break-transformation-003.html
1734+
white-space/seg-break-transformation-004.html
1735+
white-space/seg-break-transformation-005.html
1736+
white-space/seg-break-transformation-006.html
1737+
white-space/seg-break-transformation-007.html
1738+
white-space/seg-break-transformation-008.html
1739+
white-space/seg-break-transformation-009.html
1740+
white-space/seg-break-transformation-010.html
1741+
white-space/seg-break-transformation-011.html
1742+
white-space/seg-break-transformation-012.html
1743+
white-space/seg-break-transformation-014.html
1744+
white-space/seg-break-transformation-015.html
1745+
</wpt>
1746+
<wpt pathprefix="/css/vendor-imports/mozilla/mozilla-central-reftests/text3/">
1747+
segment-break-transformation-rules-001.html
1748+
segment-break-transformation-rules-002.html
1749+
segment-break-transformation-rules-003.html
1750+
segment-break-transformation-rules-004.html
1751+
segment-break-transformation-rules-005.html
1752+
segment-break-transformation-rules-006.html
1753+
segment-break-transformation-rules-007.html
1754+
segment-break-transformation-rules-008.html
1755+
segment-break-transformation-rules-009.html
1756+
segment-break-transformation-rules-010.html
1757+
segment-break-transformation-rules-011.html
1758+
segment-break-transformation-rules-012.html
1759+
segment-break-transformation-rules-013.html
1760+
segment-break-transformation-rules-014.html
1761+
segment-break-transformation-rules-015.html
1762+
segment-break-transformation-rules-016.html
1763+
segment-break-transformation-rules-017.html
1764+
segment-break-transformation-rules-018.html
1765+
segment-break-transformation-rules-019.html
1766+
segment-break-transformation-rules-020.html
1767+
segment-break-transformation-rules-021.html
1768+
segment-break-transformation-rules-022.html
1769+
segment-break-transformation-rules-023.html
1770+
segment-break-transformation-rules-024.html
1771+
segment-break-transformation-rules-025.html
1772+
segment-break-transformation-rules-026.html
1773+
segment-break-transformation-rules-027.html
1774+
segment-break-transformation-rules-028.html
1775+
segment-break-transformation-rules-029.html
1776+
segment-break-transformation-rules-030.html
1777+
segment-break-transformation-rules-031.html
1778+
segment-break-transformation-rules-032.html
1779+
segment-break-transformation-rules-033.html
1780+
segment-break-transformation-rules-034.html
1781+
segment-break-transformation-rules-035.html
1782+
segment-break-transformation-rules-036.html
1783+
segment-break-transformation-rules-037.html
1784+
segment-break-transformation-rules-038.html
1785+
segment-break-transformation-rules-039.html
1786+
segment-break-transformation-rules-040.html
1787+
segment-break-transformation-rules-041.html
1788+
segment-break-transformation-rules-042.html
1789+
segment-break-transformation-rules-043.html
1790+
segment-break-transformation-rules-044.html
1791+
segment-break-transformation-rules-045.html
1792+
segment-break-transformation-rules-046.html
1793+
segment-break-transformation-rules-047.html
1794+
segment-break-transformation-rules-048.html
1795+
segment-break-transformation-rules-049.html
1796+
</wpt>
1797+
<li>Otherwise, if the <a>writing system</a> of the <a>segment break</a>
1798+
is <a for=writing-system>Chinese</a>, <a for=writing-system>Japanese</a>, or Yi,
1799+
and the character before or after the [=segment break=]
1800+
is punctuation or a symbol (Unicode <a>general category</a> P* or S*)
1801+
and has an <a>East Asian Width property</a> of <code>Ambiguous</code>,
1802+
and the character on the other side of the [=segment break=] is
1803+
<code>Fullwidth</code>, <code>Wide</code>, or <code>Halfwidth</code>,
1804+
and not Hangul,
1805+
then the [=segment break=] is removed.
1806+
1807+
<wpt>
1808+
writing-system/writing-system-segment-break-001.html
1809+
</wpt>
1810+
<li>Otherwise, the [=segment break=] is converted to a space (U+0020).
1811+
</ul>
1812+
1813+
<p>
1814+
For this purpose,
1815+
Emoji (Unicode property <code>Emoji</code>)
1816+
with an <a>East Asian Width property</a> of
1817+
<code>Wide</code> or <code>Neutral</code>
1818+
are treated as having an <a>East Asian Width property</a> of
1819+
<code>Ambiguous</code>.
1820+
1821+
<p class="note">Note: The white space processing rules have already
1822+
removed any [=tabs=] and [=spaces=] after the [=segment break=] before these checks
1823+
take place.</p>
1824+
1825+
<div class="example">
1826+
The purpose of the segment break transformation rules
1827+
(and white space collapsing in general)
1828+
is to “unbreak” text that has been
1829+
<a href="#white-space-processing">broken into segments</a>
1830+
to make the document source code easier to work with.
1831+
In languages that use word separators, such as English and Korean,
1832+
“unbreaking” a line requires joining the two lines with a [=space=].
1833+
1834+
<figure>
1835+
<pre>
1836+
Here is an English paragraph
1837+
that is broken into multiple lines
1838+
in the source code so that it can
1839+
more easily read in a text editor.
1840+
</pre>
1841+
<p>Here is an English paragraph that is broken into multiple lines in the source code so that it can be more easily read in a text editor.</p>
1842+
<figcaption>
1843+
Eliminating a line break in English requires maintaining a [=space=] in its place.
1844+
</figcaption>
1845+
</figure>
1846+
1847+
In languages that have no word separators, such as Chinese,
1848+
“unbreaking” a line requires joining the two lines with no intervening space.
1849+
1850+
<figure>
1851+
<pre>
1852+
这个段落是呢么长,
1853+
在一行写不行。最好
1854+
用三行写。
1855+
</pre>
1856+
<p>这个段落是呢么长,在一行不行。最好用三行写。</p>
1857+
<figcaption>
1858+
Eliminating a line break in Chinese requires eliminating any intervening [=white space=].
1859+
</figcaption>
1860+
</figure>
1861+
1862+
The segment break transformation rules thus use adjacent context
1863+
to either transform the segment break into a space
1864+
or eliminate it entirely.
1865+
</div>
1866+
1867+
<p class="feedback issue">Comments on how well these rules would work in practice would
1868+
be very much appreciated, particularly from people who work with
1869+
Thai and similar scripts.
1870+
Note that browser implementations do not currently follow these rules consistently
1871+
(although IE does in some cases transform the break,
1872+
and Firefox follows the first two bullet points).</p>
1873+
18731874
<h3 id="tab-size-property" caniuse="css3-tabsize" oldids="tab-size">
18741875
Tab Character Size: the 'tab-size' property</h3>
18751876

0 commit comments

Comments
 (0)