Re: Generic LIST Element Proposal

Paul Prescod (papresco@calum.csclub.uwaterloo.ca)
Tue, 01 Aug 1995 09:47:30 -0400


Message-Id: <199508011338.JAA09537@calum.csclub.uwaterloo.ca>
Date: Tue, 01 Aug 1995 09:47:30 -0400
To: Ka-Ping Yee <kryee@novice.uwaterloo.ca>,
From: papresco@calum.csclub.uwaterloo.ca (Paul Prescod)
Subject: Re: Generic LIST Element Proposal
Cc: www-html@w3.org

At 08:14 PM 7/31/95 -0400, Ka-Ping Yee wrote:
>
>There will be more resistance due to the added markup for
>producing numbers, unfortunately.  I've often thought that a good way
>around this would be for macros to operate in some way -- shortcuts that
>would let you do things properly in HTML 3.0, with as little typing (or 
>less) than half-baked HTML 2 and/or NHTML hacks.  Perhaps i'll consider
>how to do this more formally when i have some time.

I do not think it is a Good Idea to add macros to HTML if that is what you
are suggesting.  Using macros to _manipulate_ HTML (i.e. at the client end
through a style sheet, or at the server end through a .shtml file), is hunky
dory with me, and that may be what you mean.

>The automatic numbering ability is particularly attractive, 

I haven't been through this proposal in enough detail to say if I like it or
not, yet.  But let me point out that numbering can be done entirely in style
sheets.  SGML formatting tools can have a concept of a "counter" in the
style sheet implementation.  I was thinking about that when I read this:

     "<LI><LIH>Step <NUM SEQNUM=1>. </LIH>Get in boat.
     <LI><LIH>Step <NUM>. </LIH>Untie from dock.
     <LI><LIH>Step <NUM>. </LIH>Put up sail."[1]

The text "Step <NUM>" is really just presentation.  You should be able to do
that in a style sheet:

OL[CLASS=StepList](LI.[CLASS=NUMBERED].text.before) = "Step %counter"

<OL CLASS="StepList">
<LI>Get in boat.
<LI>Untie from dock.
<LI>Put up sail.
</OL>

Perhaps we aren't going to have a powerful enough style sheet to capture
this soon, and it should be done manually.  But I tend to think that
factoring out the redundant text with no informational value is better.

>though i'd
>look for a way to reference numbers previously used.  (For instance,
>if you number a figure with <num id="fig">, how can you make "please
>see Figure 3" appear in the text?  Tricky.  Maybe requires two identifiers?)

SGML supports this already:

'ID Value and ID Reference'

'An ID is assigned to an element by an "ID value" attribute.  Other elements
can refer to it by means of an "ID reference value" attribute.  For example,
a "figure reference" element could have a "referenced element" attribute
whose value would be the ID of th figure referred to.'[2]

For example:

        <LI ID="Untie">Untie from dock.</LI>

        Be careful in <REF ID="Untie">.

Would (with a good style sheet) behave the same as:

        Be careful in <A HREF="#Untie" >Step 5</A>.

Without the redundant word, markup and number.  The style sheet mechanism
would need to specify how references to particular classes are displayed
(assuming it is different). 

This is more complex but reduces the redundancy.  If your organization
decides to change "Step Lists" to "Procedure Lists" a change in the style
sheet will change all instances of "Step x:" to "Procedure x:" and change
all references to them as well.  You can also use this reference facility to
refer to your own ID, if you really had to do something like this (for
instance if your style sheet language does not support before text):

        <LI ID="Untie">Step <REF ID="Untie">:blah</LI> => <B>Step 5:</B> blah

No special case, or special element needed.

I would suggest that this mechanism as a simplification of the proposal
under discussion.  I'm still not sure if I support the proposal, but I think
we can replace that special case tag with a more general one for referring
to either yourself or something else.  Someone could argue that you could
roll this all into <A>, but I'm not prepared to go that far.

You can refer, of course, to chapters, sections etc. as well.

    <H1 CLASS="Chapter" ID="foo">Foobar</H1>    => <H1>Chapter 3: Foobar</H1>

    See also <REF "foo">...                     => See also <A
HREF="foo">Foobar</A>


 Paul Prescod

----------------------------------------------------------
Paul Prescod (papresco@calum.uwaterloo.ca)