Re: Processing instructions for style tweaks?

Keith M. Corbett (kmc@specialform.com)
Thu, 01 Dec 1994 09:45:44 -0400


>There's a lot of talk about new elements, attributes, entities, and
>even new data formats to control style and presentation of HTML
>documents.

Of the initiatives you mentioned, I too prefer DSSL-Lite - based on very
limited exposure to it - maybe because I'm partial to Lisp, and I hate
FOSIS. Your proposal is ideally suited for lightweight or "hacker" use, the
audience you were concerned about in the first place.

"Joe Homepage" will not be the primary user of PIs or style sheets, there
are more adventurous types out there, typically building corporate pages,
many of them frustrated graphic designers. They will grok DSSLL and love it.

Notwithstanding all of J.Clark's and P.Grosso's very helpful comments -
which point to nearer and farther visions of The World To Come - PIs are
something that can be added to HTML now, transparently, and used by
processing applications now. PIs have clear advantages (over hacking up
structure) for processing SGML programmatically, especially for interchange
systems that work "behind the scenes".

People most concerned about authoring will find style sheet mechanisms more
user-friendly, but they will gravitate away from dumb editors toward good
GUIS anyway. Presumably the WYSIWYG SGML editors would lead in supporting DSSL.

[Q: I've heard Panorama will support DSSL-Lite, so presumably HoTMetaL will.
But there was some earlier discussion about registering and distributing
public style sheet entities. Can these approaches be combined in any way?]

Back to PIs - they work more generally if we can use marked sections. Eg:

<!entity % DSSL "INCLUDE">
<ul>
<li> xlkjdlfkj
<![ %DSSL; [ <? (space-before: 12pt) >]]>
<li> ablkjasdf

[I think we've all agreed to place PIs *after* element start tags (and
typically before content). This works with sgmls to associate them with the
proper element.]

Also, consider the use of parameter entities for different systems. Some
processing apps (like my HyView) use PIs for other systems (like Interleaf). Eg:

<!entity % DSSL "INCLUDE">
<!entity % INTERLEAF "IGNORE">
<!entity sp-1 "">
<![ %DSSL; [
<!entity sp-1 "<?(space-before: 12pt)"> ]]>
<![ %INTERLEAF; [
<!entity sp-1 "<?(cmpn-space-before 1)"> ]]>
<ul>
<li> xlkjdlfkj
&sp-1;
<li> ablkjasdf

Terry O'Reilly wrote:

>In a more elaborate scheme the label might point to a nonadjacent
>element:
> <? DSSSL:child:2 (space-before: 12pt)>
> <? DSSSL:child:3 (space-before: 12pt)>
>or some such.

I think his label idea (quite excellent it seems) can be accomodated, 'tho
rather laboriously, by tagging the entity declarations:

<!entity % DSSL "INCLUDE">
<!entity % INTERLEAF "IGNORE">
<!entity sp-1 "">
<![ %DSSL; [
<!entity sp-1 "<?DSSLL:child:1 (space-before: 12pt)"> ]]>
<![ %INTERLEAF; [
<!entity sp-1 "<?DSSLL:child:1(cmpn-space-before 1)"> ]]>
<ul>
&sp-1;
<li> xlkjdlfkj
<li> ablkjasdf

Comments?

-kmc