Re: Design for (interactively) customizable DSSSL stylesheets

Subject: Re: Design for (interactively) customizable DSSSL stylesheets
From: James Clark <jjc@xxxxxxxxxx>
Date: Sat Mar 29 03:38:35 1997 EST
At 11:05 28/03/97 -0500, Paul Prescod wrote:

>I think that James' idea would work fine as the DSSSL equivalent. It
>isn't clear to me where he is proposing the *parameter values* of those
>parameters should go: on a command line, in a %usermods;, in a file
>pre-pended to the DSSSL script? It matters, because it would change how
>the script itself is written: 
>
>Does it need to import %usermods;? 
>Does it need to be missing a DOCTYPE so that the relevant values can be
>prepended? 
>Is it rather a fully valid DSSSL spec. with "default values" in a
>special section that is erased and changed? 
>Is it a fully valid DSSSL spec *except* that certain things are not
>defined?

The customization would go in a separate file like this:

<!doctype style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
<!entity base system "docbook.dsl" cdata dsssl>
]>
<style-specification use=x>
(define %visual-acuity% "large-type")
</style-specification>
<external-specification id=x document=base>

I think this sort of approach could be extended to allow a user friendly
style-sheet creation mechanism.  You would have a hand-written library of
DSSSL definitions.  These would include:

- - procedures that can be used on the RHS of construction rules (things like
$component$ or $paragraph$ in Jon's Docbook style sheet)

- - definitions of variables that are used by those procedures

- - procedures for numbering, cross-referencing and so on

Associated with this library would be a library description encoded in SGML
or XML which would describe the procedures and variables provided by the
library in a manner which would allow a style sheet editor to provide a user
friendly interface for creating a stylesheet that used the library. The
stylesheet created (and edited) by the stylesheet editor would have a very
restricted format: it would override variable definitions in the library,
and it would have element rules whose construction rules just called
procedures in the library.

James

Current Thread