Re: Design for (interactively) customizable DSSSL stylesheets
From: James Clark <[email protected]>
Date: Sat, 29 Mar 1997 15:27:31 +0700
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
|