csswg/css3-lists Overview.html,1.42,1.43 Overview.src.html,1.84,1.85

Update of /sources/public/csswg/css3-lists
In directory hutz:/tmp/cvs-serv28348

Modified Files:
	Overview.html Overview.src.html 
Log Message:
Rearranged/reworded several things related to generating a representation of a counter value, to make them refer to a central algorithm and make the custom styles properly hook into the set of descriptors.


Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.html,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- Overview.html	19 May 2011 18:16:13 -0000	1.42
+++ Overview.html	19 May 2011 20:34:54 -0000	1.43
@@ -182,16 +182,12 @@
     <ul class=toc>
      <li><a href="#glyph-counters"><span class=secno>8.1. </span> Glyphs</a>
 
-     <li><a href="#complex-counters"><span class=secno>8.2. </span> Complex
-      counter styles</a>
-      <ul class=toc>
-       <li><a href="#ethiopic-numeric"><span class=secno>8.2.1. </span> The
-        &lsquo;<code class=property>ethiopic-numeric</code>&rsquo; counter
-        style</a>
+     <li><a href="#ethiopic-numeric"><span class=secno>8.2. </span> The
+      &lsquo;<code class=property>ethiopic-numeric</code>&rsquo; counter
+      style </a>
 
-       <li><a href="#cjk-counter-styles"><span class=secno>8.2.2. </span> The
-        Chinese longhand counter styles</a>
-      </ul>
+     <li><a href="#cjk-counter-styles"><span class=secno>8.3. </span> The
+      Chinese longhand counter styles </a>
     </ul>
 
    <li><a href="#counter-style"><span class=secno>9. </span> Defining Custom
@@ -993,14 +989,15 @@
     href="#list-style-type"><code
     class=property>list-style-type</code></a>&rsquo; is the name of a counter
     style, then the computed value of the &lsquo;<code
-    class=property>content</code>&rsquo; property is &lsquo;<code
-    class=css>counter(list-item, <a
-    href="#ltcounter-style"><i>&lt;counter-style></i></a>)</code>&rsquo;,
-    where <a href="#ltcounter-style"><i>&lt;counter-style></i></a> is the
+    class=property>content</code>&rsquo; property is
+    <code>&lt;counter-prefix> counter(list-item, &lt;counter-name>)
+    &lt;counter-suffix></code>, where <i>&lt;counter-name></i> is the
     computed value of the &lsquo;<a href="#list-style-type"><code
-    class=property>list-style-type</code></a>&rsquo; property, followed by a
-    string that is the suffix for the counter style in question (which may be
-    empty). <span class=issue>Fix this.</span>
+    class=property>list-style-type</code></a>&rsquo; property and
+    <i>&lt;counter-prefix></i> and <i>&lt;counter-suffix></i> are the values
+    of the <a href="#prefix"><i title=counter-prefix>prefix</i></a> and <a
+    href="#suffix"><i title=counter-suffix>suffix</i></a> descriptors for the
+    counter style with that name.
 
    <li>Otherwise the computed value is &lsquo;<a href="#none"><code
     class=css>none</code></a>&rsquo;.
@@ -1089,6 +1086,14 @@
    require special handling beyond what can be expressed in a stylesheet,
    though. Those counter styles are described in this section.
 
+  <p>The counter styles specified in this section have custom <a
+   href="#algorithm"><i title=counter-algorithm>algorithms for generating
+   counter values</i></a>, but are otherwise identical to a counter style
+   defined via the &lsquo;<code class=css>@counter-style</code>&rsquo; rule,
+   described below. For example, an author can reference one of these styles
+   in an &lsquo;<code class=property>override</code>&rsquo; type, reusing the
+   algorithm but swapping out some of the other descriptors.
+
   <h3 id=glyph-counters><span class=secno>8.1. </span> Glyphs</h3>
 
   <p>CSS 2.1 defined three single-glyph counter styles (&lsquo;<code
@@ -1123,23 +1128,8 @@
    <dd>A filled square, similar to ■ U+25A0 BLACK SQUARE.
   </dl>
 
-  <h3 id=complex-counters><span class=secno>8.2. </span> Complex counter
-   styles</h3>
-
-  <p>Nearly all counter styles can be described using the small set of
-   algorithms described by the &lsquo;<a href="#type"><code
-   class=property>type</code></a>&rsquo; descriptor. A small handful, though,
-   require more complex handling which is too specialized to warrant crafting
-   a generalized algorithm to use in &lsquo;<a href="#type"><code
-   class=property>type</code></a>&rsquo;. Instead, their algorithms are
-   described here. Just like a counter style defined with the @counter-style
-   rule, these counter styles can be overridden by creating another
-   @counter-style rule with the same name, or can be used in the &lsquo;<code
-   class=property>override</code>&rsquo; type to alter their descriptors
-   while keeping the algorithms described here.
-
-  <h4 id=ethiopic-numeric><span class=secno>8.2.1. </span> The &lsquo;<code
-   class=property>ethiopic-numeric</code>&rsquo; counter style</h4>
+  <h3 id=ethiopic-numeric><span class=secno>8.2. </span> The &lsquo;<code
+   class=property>ethiopic-numeric</code>&rsquo; counter style</h3>
 
   <p>The Ethiopian numbering system is defined for all positive non-zero
    numbers. The following algorithm converts decimal digits to ethiopic
@@ -1328,8 +1318,8 @@
     U+137B <!-- odd --> U+137A U+136A. <!-- 90 2 --></p>
   </div>
 
-  <h4 id=cjk-counter-styles><span class=secno>8.2.2. </span> The Chinese
-   longhand counter styles</h4>
+  <h3 id=cjk-counter-styles><span class=secno>8.3. </span> The Chinese
+   longhand counter styles</h3>
 
   <p>Chinese, Japanese, and Korean have longhand counter styles, which have a
    structure similar to "one hundred thirteen thousand and twenty-three" in
@@ -1383,9 +1373,6 @@
    <li>If the counter value is 0, the representation is the character for 0
     specified for the given counter style. Skip the rest of this algorithm.
 
-   <li>If the counter value is negative, run the rest of this algorithm with
-    the absolute value of the counter value instead.
-
    <li>Initially represent the counter value as a decimal number. For each
     digit that is not 0, append the appropriate digit marker to the digit.
     The ones digit has no marker.
@@ -1396,12 +1383,6 @@
    <li>Drop any trailing zeros and collapse any remaining zeros into a single
     zero digit.
 
-   <li>For the Korean styles, insert a space (" " U+0020) between each group.
-
-   <li>If the <var>negative flag</var> was set to true earlier in the
-    algorithm, prepend the appropriate negative sign for the given counter
-    style to the string.
-
    <li>Replace the digits 0-9 with the appropriate character for the given
     counter style. Return the resultant string as the representation of the
     counter value.
@@ -1412,8 +1393,10 @@
    href="#fallback-style"><i title=counter-fallback>fallback
    descriptor</i></a> is &lsquo;<code class=css>cjk-decimal</code>&rsquo;,
    the <i title=counter-lower-range>lower range bound descriptor</i> is
-   -9999, and the <i title=counter-upper-range>upper range bound
-   descriptor</i> is 9999.
+   -9999, the <i title=counter-upper-range>upper range bound descriptor</i>
+   is 9999, and the <a href="#negative-sign"><i
+   title=counter-negative>negative sign</i></a> is given in the table of
+   glyphs for each style.
 
   <p>The following tables define the characters used in these styles:
 
@@ -1809,7 +1792,37 @@
    href="#glyphs"><code class=css>glyphs</code></a>&rsquo;, and &lsquo;<a
    href="#additive-glyphs"><code class=css>additive-glyphs</code></a>&rsquo;
    properties, but some counter styles instead have their algorithm
-   explicitly defined.
+   explicitly defined in the <a href="#predefined-counters">Predefined
+   Counter Styles</a> section.
+
+  <p>When asked to <i title=generate-a-counter>generate a counter
+   representation</i> using a particular counter style for a particular
+   counter value, follow these steps:
+
+  <ol>
+   <li>If the counter value is less than the <a href="#lower-range-bound"><i
+    title=counter-lower-bound>lower bound</i></a> or greater than the <a
+    href="#upper"><i title=counter-upper-bound>upper bound</i></a> of the
+    counter style, exit this algorithm and instead <i
+    title=generate-a-counter>generate a counter representation</i> using the
+    counter style's fallback style and the same counter value.
+
+   <li>If the counter value is negative, set the <a
+    href="#negative"><var>negative</var></a> flag and run the rest of this
+    algorithm with the counter value set to its absolute value instead.
+
+   <li>Using the counter value and the <a href="#algorithm"><i
+    title=counter-algorithm>counter algorithm</i></a> for the counter style,
+    generate an initial representation for the counter value.
+
+   <li>If the <a href="#negative"><var>negative</var></a> flag is set, wrap
+    the initial representation in the counter style's <a
+    href="#negative-sign"><i title=counter-negative>negative sign</i></a>, as
+    specified in the section for the <a
+    href="#counter-style-negative">negative descriptor</a>.
+
+   <li>Return the representation.
+  </ol>
 
   <p>The general form of an &lsquo;<code
    class=css>@counter-style</code>&rsquo; rule is:
@@ -1949,10 +1962,6 @@
    <li>If <var>I</var> is 0, append <var>glyph(0)</var> to <var>S</var> and
     return <var>S</var>.
 
-   <li>If <var>I</var> is negative, set <a
-    href="#negative"><var>negative</var></a> to true and <var>I</var> to its
-    absolute value.
-
    <li>While <var>I</var> is not equal to 0:
     <ol>
      <li>Prepend <var>glyph( <var>I</var> mod <var>N</var> )</var> to
@@ -1962,10 +1971,6 @@
       )</code>.
     </ol>
 
-   <li>If <a href="#negative"><var>negative</var></a> is true, alter
-    <var>S</var> according to the counter style's defined <a
-    href="#negative-sign"><i title=counter-negative>negative sign</i></a>.
-
    <li>Return <var>S</var>.
   </ol>
 
@@ -3915,10 +3920,10 @@
    <li>range, <a href="#range" title=range><strong>9.5.</strong></a>
 
    <li>simp-chinese-formal, <a href="#simp-chinese-formal"
-    title=simp-chinese-formal><strong>8.2.2.</strong></a>
+    title=simp-chinese-formal><strong>8.3.</strong></a>
 
    <li>simp-chinese-informal, <a href="#simp-chinese-informal"
-    title=simp-chinese-informal><strong>8.2.2.</strong></a>
+    title=simp-chinese-informal><strong>8.3.</strong></a>
 
    <li>&lt;string>, <a href="#ltstring"
     title="&lt;string>"><strong>3.</strong></a>
@@ -3926,10 +3931,10 @@
    <li>suffix, <a href="#suffix0" title=suffix><strong>9.4.</strong></a>
 
    <li>trad-chinese-formal, <a href="#trad-chinese-formal"
-    title=trad-chinese-formal><strong>8.2.2.</strong></a>
+    title=trad-chinese-formal><strong>8.3.</strong></a>
 
    <li>trad-chinese-informal, <a href="#trad-chinese-informal"
-    title=trad-chinese-informal><strong>8.2.2.</strong></a>
+    title=trad-chinese-informal><strong>8.3.</strong></a>
 
    <li>type, <a href="#type" title=type><strong>9.1.</strong></a>
   </ul>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- Overview.src.html	19 May 2011 19:10:17 -0000	1.84
+++ Overview.src.html	19 May 2011 20:34:54 -0000	1.85
@@ -653,10 +653,11 @@
 
 		<li>Otherwise, if the computed value of 'list-style-type' is the name
 		of a counter style, then the computed value of the 'content' property 
-		is ''counter(list-item, <i>&lt;counter-style></i>)'', where 
-		<i>&lt;counter-style></i> is the computed value of the 'list-style-type' 
-		property, followed by a string that is the suffix for the counter style 
-		in question (which may be empty). <span class=issue>Fix this.</span></li>
+		is <code>&lt;counter-prefix> counter(list-item, &lt;counter-name>) &lt;counter-suffix></code>, 
+		where <i>&lt;counter-name></i> is the computed value of the 'list-style-type' 
+		property and <i>&lt;counter-prefix></i> and <i>&lt;counter-suffix></i> are
+		the values of the <i title='counter-prefix'>prefix</i> and <i title='counter-suffix'>suffix</i>
+		descriptors for the counter style with that name.</li>
 
 		<li>Otherwise the computed value is ''none''.</li>
 	</ol>
@@ -725,7 +726,13 @@
 	contains a required UA stylesheet which defines a large number of counter styles 
 	using the ''@counter-style'' rule.  A few styles require special handling beyond
 	what can be expressed in a stylesheet, though.  Those counter styles are described
-	in this section.
+	in this section.</p>
+
+	<p>The counter styles specified in this section have custom
+	<i title='counter-algorithm'>algorithms for generating counter values</i>, but are
+	otherwise identical to a counter style defined via the ''@counter-style'' rule, 
+	described below.  For example, an author can reference one of these styles in an
+	'override' type, reusing the algorithm but swapping out some of the other descriptors.</p>
 
 
 <h3 id='glyph-counters'>
@@ -760,19 +767,7 @@
 
 
 
-<h3 id='complex-counters'>
-Complex counter styles</h3>
-
-	<p>Nearly all counter styles can be described using the small set of algorithms
-	described by the 'type' descriptor.  A small handful, though, require more complex
-	handling which is too specialized to warrant crafting a generalized algorithm to
-	use in 'type'.  Instead, their algorithms are described here.  Just like a counter style
-	defined with the @counter-style rule, these counter styles can be overridden by 
-	creating another @counter-style rule with the same name, or can be used in the 
-	'override' type to alter their descriptors while keeping the algorithms described here.</p>
-
-
-<h4 id='ethiopic-numeric'>
+<h3 id='ethiopic-numeric'>
 The 'ethiopic-numeric' counter style</h4>
 
 	<p>The Ethiopian numbering system is defined for all positive non-zero numbers.
@@ -902,7 +897,7 @@
 		U+136A. <!-- 90 2 --></p>
 	</div>
 
-<h4 id='cjk-counter-styles'>
+<h3 id='cjk-counter-styles'>
 The Chinese longhand counter styles</h4>
 
 	<p>Chinese, Japanese, and Korean have longhand counter styles, which have 
@@ -949,9 +944,6 @@
 		<li>If the counter value is 0, the representation is the character for 0
 		specified for the given counter style.  Skip the rest of this algorithm.</li>
 
-		<li>If the counter value is negative, run the rest of this algorithm 
-		with the absolute value of the counter value instead.</li>
-
 		<li>Initially represent the counter value as a decimal number.  For each 
 		digit that is not 0, append the appropriate digit marker to the digit.  
 		The ones digit has no marker.</li>
@@ -962,10 +954,6 @@
 		<li>Drop any trailing zeros and collapse any remaining zeros into a single
 		zero digit.</li>
 
-		<li>If the <var>negative flag</var> was set to true earlier in the 
-		algorithm, prepend the appropriate negative sign for the given counter
-		style to the string.</li>
-
 		<li>Replace the digits 0-9 with the appropriate character for the given
 		counter style.  Return the resultant string as the representation of the
 		counter value.</li>
@@ -974,8 +962,9 @@
 	<p>For all of these counter styles, the <i title='counter-suffix'>suffix descriptor</i>
 	is "、" U+3001, the <i title='counter-fallback'>fallback descriptor</i> is
 	''cjk-decimal'', the <i title='counter-lower-range'>lower range bound descriptor</i> 
-	is -9999, and the <i title='counter-upper-range'>upper range bound descriptor</i> 
-	is 9999.</p>
+	is -9999, the <i title='counter-upper-range'>upper range bound descriptor</i> 
+	is 9999, and the <i title='counter-negative'>negative sign</i> is given in the table
+	of glyphs for each style.</p>
 
 	<p>The following tables define the characters used in these styles:</p>
 
@@ -1250,7 +1239,30 @@
 	
 	<p>The algorithm is usually specified implicitly by a combination of the ''type'',
 	''glyphs'', and ''additive-glyphs'' properties, but some counter styles
-	instead have their algorithm explicitly defined.</p>
+	instead have their algorithm explicitly defined in the 
+	<a href='#predefined-counters'>Predefined Counter Styles</a> section.</p>
+
+	<p>When asked to <i title='generate-a-counter'>generate a counter representation</i>
+	using a particular counter style for a particular counter value, follow these steps:</p>
+
+	<ol>
+		<li>If the counter value is less than the <i title='counter-lower-bound'>lower bound</i>
+		or greater than the <i title='counter-upper-bound'>upper bound</i> of the counter
+		style, exit this algorithm and instead <i title='generate-a-counter'>generate a counter representation</i>
+		using the counter style's fallback style and the same counter value.</li>
+
+		<li>If the counter value is negative, set the <var>negative</var> flag and
+		run the rest of this algorithm with the counter value set to its absolute value instead.</li>
+
+		<li>Using the counter value and the <i title='counter-algorithm'>counter algorithm</i> 
+		for the counter style, generate an initial representation for the counter value.</li>
+
+		<li>If the <var>negative</var> flag is set, wrap the initial representation in the
+		counter style's <i title='counter-negative'>negative sign</i>, as specified in
+		the section for the <a href='#counter-style-negative'>negative descriptor</a>.</li>
+
+		<li>Return the representation.</li>
+	</ol>
 
 	<p>The general form of an ''@counter-style'' rule is:</p>
 
@@ -1370,9 +1382,6 @@
 		<li>If <var>I</var> is 0, append <var>glyph(0)</var> to 
 		<var>S</var> and return <var>S</var>.</li>
 
-		<li>If <var>I</var> is negative, set <var>negative</var> to
-		true and <var>I</var> to its absolute value.</li>
-
 		<li>While <var>I</var> is not equal to 0:
 
 			<ol>
@@ -1383,9 +1392,6 @@
 			</ol>
 		</li>
 
-		<li>If <var>negative</var> is true, alter <var>S</var> according to the
-		counter style's defined <i title='counter-negative'>negative sign</i>.</li>
-
 		<li>Return <var>S</var>.</li>
 	</ol>
 

Received on Thursday, 19 May 2011 20:34:58 UTC