From: Norman Walsh Date: Thu, 6 Sep 2001 14:14:01 +0000 (+0000) Subject: Merge V2-branch back onto the trunk; I'm abandoning V1-branch and V2-branch henceforth X-Git-Tag: release/1.79.1~6^2~6286 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=219b796ffe1a471a58d295da83de9af80f0e9873;p=docbook-dsssl Merge V2-branch back onto the trunk; I'm abandoning V1-branch and V2-branch henceforth --- diff --git a/website/.cvsignore b/website/.cvsignore new file mode 100644 index 000000000..f93fd96dc --- /dev/null +++ b/website/.cvsignore @@ -0,0 +1,2 @@ +website.dtd +WhatsNew diff --git a/website/Makefile b/website/Makefile new file mode 100644 index 000000000..dfaad989f --- /dev/null +++ b/website/Makefile @@ -0,0 +1,59 @@ +include ../cvstools/Makefile.incl +ZIPVER= +MERGEVER= +NEWVER= + +.PHONY : distrib clean + +all: website.dtd + make -C extensions all + make -C extensions jars + +website.dtd: website-custom.dtd forms.mod + $(FLATTEN) $< > $@ + +distrib: + $(CVS2LOG) -w +ifeq ($(MERGEVER),) + $(MERGELOGS) > WhatsNew +else + $(MERGELOGS) -v $(MERGEVER) > WhatsNew +endif + +newversion: +ifeq ($NEWVER),) + $(NEXTVERSION) +else + $(NEXTVERSION) -v $(NEWVER) +endif + make distrib + +zip: distrib +ifeq ($(ZIPVER),) + @echo You must specify ZIPVER for the zip target +else + make -C example clean + make -C example TEXTONLY=1 clean + rm -rf /tmp/website-$(ZIPVER) + rm -f /tmp/tar.exclude + rm -f /tmp/website-$(ZIPVER).tar.gz + rm -f /tmp/website-$(ZIPVER).zip + mkdir /tmp/website-$(ZIPVER) + touch /tmp/tar.exclude + find . -print | grep /CVS$$ | cut -c3- >> /tmp/tar.exclude + find . -print | grep /CVS/ | cut -c3- >> /tmp/tar.exclude + find . -print | grep .classes | cut -c3- >> /tmp/tar.exclude + find . -print | grep .cvskeep | cut -c3- >> /tmp/tar.exclude + find . -print | grep "~$$" | cut -c3- >> /tmp/tar.exclude + find . -type f -name "#*" | cut -c3- >> /tmp/tar.exclude + find . -type f -name ".cvsignore" | cut -c3- >> /tmp/tar.exclude + find . -type f -name "Makefile*" | cut -c3- >> /tmp/tar.exclude + find . -type f -name "README.CVS" | cut -c3- >> /tmp/tar.exclude + tar cf - * --exclude-from /tmp/tar.exclude | (cd /tmp/website-$(ZIPVER); tar xf -) + cd /tmp && tar cf - website-$(ZIPVER) | gzip > website-$(ZIPVER).tar.gz + cd /tmp && zip -rpD website-$(ZIPVER).zip website-$(ZIPVER) + rm -f tar.exclude +endif + +clean: + make -C example clean diff --git a/website/README b/website/README index 3d61b9be3..9ef696494 100644 --- a/website/README +++ b/website/README @@ -1,16 +1,7 @@ -README for the Website DTD V1.10 +README for the Website DTD V2.0b1 Website is an XML DTD for building, er, web sites. -Manifest --------- - -README - This readme file -VERSION - The version number -website.dtd - The DTD, a customization layer on top of DocBook XML -example/ - An example website -xsl/ - XSL stylesheets for converting the Website DTD to HTML - DTD Installation ---------------- @@ -20,14 +11,12 @@ catalogs, so this may be irrelevant for you). Please use the following formal public identifier to identify this DTD: - "-//Norman Walsh//DTD Website V1.10//EN" + "-//Norman Walsh//DTD Website V2.0b1//EN" For example: - + XSL Installation ---------------- @@ -37,25 +26,11 @@ Place the XSL files in this distribution somewhere on your machine. Use --- -Process your Website documents with one of the following stylesheets -using your favorite XSLT processor: - - website.xsl produces a flat-text website - tabular.xsl produces a tabular website with navigation in the - left-hand column and page contents in the right-hand - column. - - Both of these stylesheets produce a monolithic file that must be - chunked. The chunk control files and libraries included in this - distribution simplify this process, if you are using the chunk.pl - file included in the DocBook XSL Stylesheet distribution. - - chunk-website.xsl produces a flat-text website, chunked by XSLT - chunk-tabular.xsl produces a tabular website, chunked by XSLT +There are several ways to process the website XML files to produce an +HTML website. - In order for the chunking process to succeed, all necessary - subdirectories must be created before you begin running the - XSLT engine. The chunking versions support XT, Saxon, and Xalan. +For more detailed instructions, see +http://docbook.sourceforge.net/release/website/example/ Copyright --------- diff --git a/website/VERSION b/website/VERSION index c044b1a32..58f68e418 100644 --- a/website/VERSION +++ b/website/VERSION @@ -1 +1 @@ -1.10 +2.0b1+ diff --git a/website/autolayout.dtd b/website/autolayout.dtd new file mode 100644 index 000000000..5726a4045 --- /dev/null +++ b/website/autolayout.dtd @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/example/.cvsignore b/website/example/.cvsignore new file mode 100644 index 000000000..322bbb344 --- /dev/null +++ b/website/example/.cvsignore @@ -0,0 +1,5 @@ +autolayout.xml +*.html +depends.tabular +depends.textonly + diff --git a/website/example/Makefile b/website/example/Makefile index 032b7a483..4b08b9824 100644 --- a/website/example/Makefile +++ b/website/example/Makefile @@ -1,26 +1,47 @@ PROC=saxon -PROCOPT= +PROCOPT=-q +TABSTYLE=../xsl/tabular.xsl +WEBSTYLE=../xsl/website.xsl +TABCHUNK=../xsl/chunk-tabular.xsl +WEBCHUNK=../xsl/chunk-website.xsl +DESTPATH=. +TEXTONLY=0 +USETIDY=1 .PHONY : clean -all: test +all: + make website + make TEXTONLY=1 website -test: - xjparse website.xml -ifeq ($(PROC),xt) - $(PROC) $(PROCOPT) website.xml ../xsl/xtchunk-website.xsl +ifeq ($(TEXTONLY),0) +STYLESHEET=$(TABSTYLE) +STYLECHUNK=$(TABCHUNK) +STYLEOPT= +include depends.tabular else - $(PROC) $(PROCOPT) website.xml ../xsl/chunk-website.xsl +STYLESHEET=$(WEBSTYLE) +STYLECHUNK=$(WEBCHUNK) +STYLEOPT=filename-prefix=txt +include depends.textonly endif -tabular: - xnsgmls -sv -c /share/doctypes/catalog website.xml -ifeq ($(PROC),xt) - $(PROC) $(PROCOPT) website.xml ../xsl/xtchunk-tabular.xsl -else - $(PROC) $(PROCOPT) website.xml ../xsl/chunk-tabular.xsl -endif +autolayout.xml: layout.xml + xjparse $(filter-out autolayout.xml,$^) + $(PROC) $(PROCOPT) $< ../xsl/autolayout.xsl $@ + make depends -clean: - rm -f *.html subdir/*.html +chunk: autolayout.xml + $(PROC) $(PROCOPT) autolayout.xml $(STYLECHUNK) - output-root=$(DESTPATH) + +%.html: autolayout.xml + xjparse $(filter-out autolayout.xml,$^) + $(PROC) $(PROCOPT) $(filter-out autolayout.xml,$^) $(STYLESHEET) $@ $(STYLEOPT) +ifeq ($(USETIDY),1) + -tidy -iq -latin1 -mn $@ +endif +depends: autolayout.xml + xjparse $< + $(PROC) $(PROCOPT) $< ../xsl/makefile-dep.xsl depends.tabular + $(PROC) $(PROCOPT) $< ../xsl/makefile-dep.xsl depends.textonly prefix=txt diff --git a/website/example/about.xml b/website/example/about.xml index 8237b8070..5795821ab 100644 --- a/website/example/about.xml +++ b/website/example/about.xml @@ -1,40 +1,11 @@ + - + About the Test Home Page About the Test Home Page -This collection of pages is built from a single SGML -document using -Jade and a -customization of the DSSSL -DocBook Stylesheet -for HTML. - -Why? -There are a number of compelling reasons to maintain these pages in -SGML rather than HTML. - -First and foremost, they provide a test environment for the -HTML stylesheet. Ok, maybe that's not compelling to you, but it's compelling -to me ;-). - -Traditional printed documents are desirable for several of -these pages. -Using a more structurally rich format to represent the documents makes -it possible to produce print as well as online versions. - -All of the intra-document linking is automatic. -The SGML system provides validation for the inra-document links, so -there is no danger of broken links. (Links to external pages still have to -be validated by an external program.) - -Migrating these pages to XML and/or future versions of HTML -will only require a new or updated style sheet. No pages will have to be recoded. -And the pages will conform to whatever output format is required, with no -possibility of random human error. - - - +This collection of pages is built from a set of XML +documents using XSLT. diff --git a/website/example/build-ext.xml b/website/example/build-ext.xml new file mode 100644 index 000000000..92e580a7c --- /dev/null +++ b/website/example/build-ext.xml @@ -0,0 +1,38 @@ + +]> + + + + +Building with XSLT +Using XSLT +Building with XSLT Extensions + + +The alternative to using +make is to use XSLT extension functions. Naturally this will +only be possible if you're using a processor for which the extensions +have been implemented. The Website distribution includes extensions +for Xalan and Saxon. + + +Create your webpages and your layout.xml +file. + +Use XSLT to create autolayout.xml. +Do this by processing your layout.xml with the +autolayout.xsl stylesheet. + + +Use XSLT to build the website: process the +autolayout.xml file with the +chunk-tabular.xsl stylesheet. That should build your +website. + + +You can use the output-root parameter to direct +where the result documents are produced. + + + diff --git a/website/example/build-make.xml b/website/example/build-make.xml new file mode 100644 index 000000000..095c439e1 --- /dev/null +++ b/website/example/build-make.xml @@ -0,0 +1,63 @@ + + + + + +Building with Make +Using Make +Building with Make + + +The following instructions work with recent versions of GNU Make; +you may have to tweak them a bit if you're using some other version of +make. + + + +Create your webpages and your layout.xml +file. + +Create a skeletal Makefile like this: + + + + +You'll have to change the PROC setting and +the command-lines used to run the processor. + + +Create an empty file called +depends.tabular. + + +Run make depends. + + +Run make. That should build your +website. + + + + diff --git a/website/example/build-textonly.xml b/website/example/build-textonly.xml new file mode 100644 index 000000000..36fa1cb5a --- /dev/null +++ b/website/example/build-textonly.xml @@ -0,0 +1,24 @@ + + + + + +Building Text-only Websites +Text-only +Building Text-onlyt Websites + + +The tabular.xsl and +chunk-tabular.xsl stylesheets produce a two-column +tabular website. If you wish to produce a purely text-only presentation +more suitable for text-only or audio browsing, use the +website.xsl or +chunk-website.xsl stylesheets. + +It's possible to generate both tabular and text-only presentations +in the same directory(ies). Use the filename-prefix +parameter to put a prefix (such as txt) +on the text-only versions (or put a prefix on the tabular versions, +if you prefer). + + diff --git a/website/example/building.xml b/website/example/building.xml new file mode 100644 index 000000000..e3ce102ea --- /dev/null +++ b/website/example/building.xml @@ -0,0 +1,13 @@ + + + + + +Building the HTML Pages +Building +Building strategies + + +dummy page + + diff --git a/website/example/custom.xml b/website/example/custom.xml new file mode 100644 index 000000000..df51130f4 --- /dev/null +++ b/website/example/custom.xml @@ -0,0 +1,54 @@ + + + + + +Customizing the Stylesheets +Customization +Stylesheet customization instructions + + +You can customize the stylesheets for your particular website +by making a driver like this: + + + + + + + + +]]> + +If you use the tabular style, you'll discover that the +Website home page has two ugly features: "home.navhead" and +"home.navhead.upperright". + +In order to remove these, you have to write a custom stylesheet +that puts the text (or whatever) you want on the homepage in those +locations. Your stylesheet should look like this: + + + + + + + + + + +home.navhead + + + +home.navhead.upperright + + + +]]> + + \ No newline at end of file diff --git a/website/example/example.css b/website/example/example.css index 9a1430da3..2324f0866 100644 --- a/website/example/example.css +++ b/website/example/example.css @@ -1,3 +1,6 @@ +body { + } + .navhomehead { padding-top: 0; margin-bottom: 0; padding-bottom: 0; @@ -25,6 +28,9 @@ .navfoot a:link { color: black; } .navfoot a:visited { color: black; } +pre.programlisting { font-size: 80%; + } + span.footdate { color: black; font-size: 70%; font-family: Arial, sans-serif; diff --git a/website/example/graphics/arrow.gif b/website/example/graphics/arrow.gif new file mode 100644 index 000000000..126f9228d Binary files /dev/null and b/website/example/graphics/arrow.gif differ diff --git a/website/example/graphics/banner.png b/website/example/graphics/banner.png index 4772bd558..c4a202caf 100644 Binary files a/website/example/graphics/banner.png and b/website/example/graphics/banner.png differ diff --git a/website/example/graphics/blank.gif b/website/example/graphics/blank.gif new file mode 100644 index 000000000..839cf03b9 Binary files /dev/null and b/website/example/graphics/blank.gif differ diff --git a/website/example/graphics/homebanner.png b/website/example/graphics/homebanner.png index 78fb18091..9aac7b0c0 100644 Binary files a/website/example/graphics/homebanner.png and b/website/example/graphics/homebanner.png differ diff --git a/website/example/graphics/navicons/arrow/current/leaf.gif b/website/example/graphics/navicons/arrow/current/leaf.gif new file mode 100644 index 000000000..126f9228d Binary files /dev/null and b/website/example/graphics/navicons/arrow/current/leaf.gif differ diff --git a/website/example/graphics/navicons/arrow/current/open.gif b/website/example/graphics/navicons/arrow/current/open.gif new file mode 100644 index 000000000..126f9228d Binary files /dev/null and b/website/example/graphics/navicons/arrow/current/open.gif differ diff --git a/website/example/graphics/navicons/arrow/current/pointer.gif b/website/example/graphics/navicons/arrow/current/pointer.gif new file mode 100644 index 000000000..839cf03b9 Binary files /dev/null and b/website/example/graphics/navicons/arrow/current/pointer.gif differ diff --git a/website/example/graphics/navicons/arrow/other/closed.gif b/website/example/graphics/navicons/arrow/other/closed.gif new file mode 100644 index 000000000..839cf03b9 Binary files /dev/null and b/website/example/graphics/navicons/arrow/other/closed.gif differ diff --git a/website/example/graphics/navicons/arrow/other/leaf.gif b/website/example/graphics/navicons/arrow/other/leaf.gif new file mode 100644 index 000000000..839cf03b9 Binary files /dev/null and b/website/example/graphics/navicons/arrow/other/leaf.gif differ diff --git a/website/example/graphics/navicons/arrow/other/open.gif b/website/example/graphics/navicons/arrow/other/open.gif new file mode 100644 index 000000000..839cf03b9 Binary files /dev/null and b/website/example/graphics/navicons/arrow/other/open.gif differ diff --git a/website/example/graphics/navicons/folder/current/leaf.gif b/website/example/graphics/navicons/folder/current/leaf.gif new file mode 100644 index 000000000..f3dc640c1 Binary files /dev/null and b/website/example/graphics/navicons/folder/current/leaf.gif differ diff --git a/website/example/graphics/navicons/folder/current/open.gif b/website/example/graphics/navicons/folder/current/open.gif new file mode 100644 index 000000000..2ffa26e5e Binary files /dev/null and b/website/example/graphics/navicons/folder/current/open.gif differ diff --git a/website/example/graphics/navicons/folder/current/pointer.gif b/website/example/graphics/navicons/folder/current/pointer.gif new file mode 100644 index 000000000..9ee6ce594 Binary files /dev/null and b/website/example/graphics/navicons/folder/current/pointer.gif differ diff --git a/website/example/graphics/navicons/folder/other/closed.gif b/website/example/graphics/navicons/folder/other/closed.gif new file mode 100644 index 000000000..92e2abd03 Binary files /dev/null and b/website/example/graphics/navicons/folder/other/closed.gif differ diff --git a/website/example/graphics/navicons/folder/other/leaf.gif b/website/example/graphics/navicons/folder/other/leaf.gif new file mode 100644 index 000000000..f3dc640c1 Binary files /dev/null and b/website/example/graphics/navicons/folder/other/leaf.gif differ diff --git a/website/example/graphics/navicons/folder/other/open.gif b/website/example/graphics/navicons/folder/other/open.gif new file mode 100644 index 000000000..2ffa26e5e Binary files /dev/null and b/website/example/graphics/navicons/folder/other/open.gif differ diff --git a/website/example/graphics/navicons/folder16/current/leaf.gif b/website/example/graphics/navicons/folder16/current/leaf.gif new file mode 100644 index 000000000..02c596f24 Binary files /dev/null and b/website/example/graphics/navicons/folder16/current/leaf.gif differ diff --git a/website/example/graphics/navicons/folder16/current/open.gif b/website/example/graphics/navicons/folder16/current/open.gif new file mode 100644 index 000000000..b00ecc439 Binary files /dev/null and b/website/example/graphics/navicons/folder16/current/open.gif differ diff --git a/website/example/graphics/navicons/folder16/current/pointer.gif b/website/example/graphics/navicons/folder16/current/pointer.gif new file mode 100644 index 000000000..9ee6ce594 Binary files /dev/null and b/website/example/graphics/navicons/folder16/current/pointer.gif differ diff --git a/website/example/graphics/navicons/folder16/other/closed.gif b/website/example/graphics/navicons/folder16/other/closed.gif new file mode 100644 index 000000000..e5f3bf9e7 Binary files /dev/null and b/website/example/graphics/navicons/folder16/other/closed.gif differ diff --git a/website/example/graphics/navicons/folder16/other/leaf.gif b/website/example/graphics/navicons/folder16/other/leaf.gif new file mode 100644 index 000000000..02c596f24 Binary files /dev/null and b/website/example/graphics/navicons/folder16/other/leaf.gif differ diff --git a/website/example/graphics/navicons/folder16/other/open.gif b/website/example/graphics/navicons/folder16/other/open.gif new file mode 100644 index 000000000..b00ecc439 Binary files /dev/null and b/website/example/graphics/navicons/folder16/other/open.gif differ diff --git a/website/example/graphics/navicons/plusminus/current/leaf.gif b/website/example/graphics/navicons/plusminus/current/leaf.gif new file mode 100644 index 000000000..f3dc640c1 Binary files /dev/null and b/website/example/graphics/navicons/plusminus/current/leaf.gif differ diff --git a/website/example/graphics/navicons/plusminus/current/open.gif b/website/example/graphics/navicons/plusminus/current/open.gif new file mode 100644 index 000000000..78449df0f Binary files /dev/null and b/website/example/graphics/navicons/plusminus/current/open.gif differ diff --git a/website/example/graphics/navicons/plusminus/current/pointer.gif b/website/example/graphics/navicons/plusminus/current/pointer.gif new file mode 100644 index 000000000..9ee6ce594 Binary files /dev/null and b/website/example/graphics/navicons/plusminus/current/pointer.gif differ diff --git a/website/example/graphics/navicons/plusminus/other/closed.gif b/website/example/graphics/navicons/plusminus/other/closed.gif new file mode 100644 index 000000000..bdd77a991 Binary files /dev/null and b/website/example/graphics/navicons/plusminus/other/closed.gif differ diff --git a/website/example/graphics/navicons/plusminus/other/leaf.gif b/website/example/graphics/navicons/plusminus/other/leaf.gif new file mode 100644 index 000000000..f3dc640c1 Binary files /dev/null and b/website/example/graphics/navicons/plusminus/other/leaf.gif differ diff --git a/website/example/graphics/navicons/plusminus/other/open.gif b/website/example/graphics/navicons/plusminus/other/open.gif new file mode 100644 index 000000000..78449df0f Binary files /dev/null and b/website/example/graphics/navicons/plusminus/other/open.gif differ diff --git a/website/example/graphics/navicons/triangle/current/leaf.gif b/website/example/graphics/navicons/triangle/current/leaf.gif new file mode 100644 index 000000000..ee94a7d67 Binary files /dev/null and b/website/example/graphics/navicons/triangle/current/leaf.gif differ diff --git a/website/example/graphics/navicons/triangle/current/open.gif b/website/example/graphics/navicons/triangle/current/open.gif new file mode 100644 index 000000000..888c1f858 Binary files /dev/null and b/website/example/graphics/navicons/triangle/current/open.gif differ diff --git a/website/example/graphics/navicons/triangle/current/pointer.gif b/website/example/graphics/navicons/triangle/current/pointer.gif new file mode 100644 index 000000000..9ee6ce594 Binary files /dev/null and b/website/example/graphics/navicons/triangle/current/pointer.gif differ diff --git a/website/example/graphics/navicons/triangle/other/closed.gif b/website/example/graphics/navicons/triangle/other/closed.gif new file mode 100644 index 000000000..e1b72c77e Binary files /dev/null and b/website/example/graphics/navicons/triangle/other/closed.gif differ diff --git a/website/example/graphics/navicons/triangle/other/leaf.gif b/website/example/graphics/navicons/triangle/other/leaf.gif new file mode 100644 index 000000000..ee94a7d67 Binary files /dev/null and b/website/example/graphics/navicons/triangle/other/leaf.gif differ diff --git a/website/example/graphics/navicons/triangle/other/open.gif b/website/example/graphics/navicons/triangle/other/open.gif new file mode 100644 index 000000000..888c1f858 Binary files /dev/null and b/website/example/graphics/navicons/triangle/other/open.gif differ diff --git a/website/example/layout.xml b/website/example/layout.xml new file mode 100644 index 000000000..7bc7fa999 --- /dev/null +++ b/website/example/layout.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + 199920002001 + Norman Walsh + + + -Hello, and Welcome! + This small, somewhat contrived website demonstrates the +Website document type. Website provides a system for building static +Websites from XML content. - -This website demonstrates the Website DTD. In order to generate HTML -web pages from documents using this DTD, you must format them with -an XSLT processor (well, you could do it with any tool you wanted, -I suppose, but XSLT is the popular choice :-). - +A text-only version is also +available, demonstrating how multiple presentations can be derived from +the same sources. -XSLT -To format this website using XSLT, use -the website.xsl -or tabular.xsl stylesheets from the -Website distribution: +
What is a Website? - -xt website.xml website.xsl - +A website is a collection of pages organized, for the purposes of +navigation, into one or more hierarchies. In Website, each page is a +separate XML document authored according to the Website DTD, a customization +of DocBook. -You must chunk the resulting document yourself. The XSL stylesheet -distribution includes a chunking configuration file suitable for use -with chunk.pl from the -DocBook stylesheet -distribution. +Website imposes the following additional constraints: - -XSLT With Chunking - -Alternatively, you can use chunk-website.xsl -or chunk-tabular.xsl and let the XSLT -processor do the chunking for you. - -The XT, Saxon, and Xalan processors are supported by the chunking -stylesheets. If you're using a alternate processor, you'll have to do -the chunking with another tool. - - - -Customizing the Stylesheets - -You can customize the stylesheets for your particular website -by making a driver like this: - - - - - - - -]]> - -If you use the tabular processors, you'll discover that the -Website home page has two ugly features: "home.navhead" and -"home.navhead.upperright". - -In order to remove these, you have to write a custom stylesheet -that puts the text you want on the homepage in those locations. Your -stylesheet should look like this: - - - - - - - - - - -home.navhead - - - -home.navhead.upperright - - - -]]> - -You will also want to change some of the <config> -parameters (to select different banner graphics, etc.). - - - - -What's New - -24 Aug 2000 - -Improved documentation, merged distribution of stylesheets -and the DTD. + +Each webpage must have an ID and +the IDs must be unique across the entire website. - -29 Mar 2000 - -Updated description of XSL support. +No page can occur in more than one location in the +navigational hierarchy of the website. Note, however, that you can have +pages, such as the about page, +that don't appear in the navigational hierarchy at all. - -28 Feb 2000 - -Updated to mention XSL. + +
+ +
Requirements + +In order to build a website with Website, you must have: + + +The +DocBook XML +V4.1.2 DTD. + +An XSLT processor. + +The DocBook +XSL Stylesheets. - -24 Feb 1999 +The Website DTD and stylesheets. + + + +
+ +
Changes from Website 1.x + +I've completely redesigned the way the Website doctype works for +V2. In version 1, all of the pages in a website were part of a single, +monolithic XML document. + +Making all of the pages part of a single document had a number +of drawbacks: + + +It wasn't convenient to update only part of a website +(only the pages that had been changed, for example). + +For very large websites, there were memory issues associated +with parsing and formatting the whole thing. + +There was no practical way to publish the XML content of +a site. + +It was difficult to share pages across different web sites. + +It was very tedious to setup a system that allowed +the same content to be published +with different navigational hierarchies. + + + +Website overcomes all of these difficulties. + +In fairness, the old style had some advantages: + + +There was only a single source document to maintain. + +Navigation was derived automatically from the structure +of the source document. + +Link checking was cheap and easy. + + +
+ +
+What's New + +20 Mar 2001 -First release. +Reworked using the Website paradigm. - - - -&about; - - - -&test1; -&test2; -&test3; +
- + - + diff --git a/website/layout.dtd b/website/layout.dtd new file mode 100644 index 000000000..1158478fe --- /dev/null +++ b/website/layout.dtd @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/namespaces.mod b/website/namespaces.mod new file mode 100644 index 000000000..90a0a354f --- /dev/null +++ b/website/namespaces.mod @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/rddl.mod b/website/rddl.mod new file mode 100644 index 000000000..b19bfb4b4 --- /dev/null +++ b/website/rddl.mod @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + diff --git a/website/website-custom.dtd b/website/website-custom.dtd new file mode 100644 index 000000000..17286a15a --- /dev/null +++ b/website/website-custom.dtd @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +%namespaces.mod; + + + + + +]]> + + + + + + +]]> + + + + + + + + + + + + +%sdocbook; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%rddl.mod; +]]> + + +%forms.mod; +]]> + + + diff --git a/website/website.dtd b/website/website.dtd deleted file mode 100644 index 038301bd1..000000000 --- a/website/website.dtd +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - -]]> - - -%docbook; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%forms.mod; -]]> - - - diff --git a/website/xsl/VERSION b/website/xsl/VERSION index c5b729079..29e4f01e4 100644 --- a/website/xsl/VERSION +++ b/website/xsl/VERSION @@ -1,5 +1,8 @@ - -1.7 - + +]> + +&VERSION; + diff --git a/website/xsl/autolayout.xsl b/website/xsl/autolayout.xsl new file mode 100644 index 000000000..1ea07e9f3 --- /dev/null +++ b/website/xsl/autolayout.xsl @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + All toc entries must have a page attribute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + All toc entries must have an href attribute. + + + + + + All href toc entries must have an id attribute. + + + + + off site: + + + + + + + + + + + + + + + + + + Off-site links must provide a title. + + + + + + + + + + + + + All toc entries must have a page attribute. + + + + + + + + + : missing ID. + + + + + + + + + + + + + + index.html + + + + + + + + + + + : missing filename. + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <xsl:apply-templates select="$page/*[1]/head/title"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + + + + + + + / + + + + + + + / + + + + + + diff --git a/website/xsl/chunk-common.xsl b/website/xsl/chunk-common.xsl new file mode 100644 index 000000000..1a9e01d92 --- /dev/null +++ b/website/xsl/chunk-common.xsl @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + index.html + + + + + + + + + + + + + + + + + + + + + does not exist. + + + + + + + + does not exist. + + + + + + Fail: this stylesheet relies on the exists() extension function + + + + + + + / + + + + + + + + + 1 + + 0 + + + + + + 1 + + 0 + + + 1 + + + + + + + Update: + + : + + + + + + + + + + + + + + + + + + Up-to-date: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/xsl/chunk-tabular.xsl b/website/xsl/chunk-tabular.xsl index a93d499ce..d974c7268 100644 --- a/website/xsl/chunk-tabular.xsl +++ b/website/xsl/chunk-tabular.xsl @@ -1,268 +1,12 @@ - + - - + xmlns:xweb="xalan://com.nwalsh.xalan.Website" + xmlns:sweb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Website" + exclude-result-prefixes="sweb xweb" + version="1.0"> - - - - - - -0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - - - index.html - - - - - - - - - - - - 1 - 0 - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/website/xsl/chunk-website-common.xsl b/website/xsl/chunk-website-common.xsl deleted file mode 100644 index a738c9cc7..000000000 --- a/website/xsl/chunk-website-common.xsl +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - -0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - - - index.html - - - - - - - - - - - - 1 - 0 - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/xsl/chunk-website.xsl b/website/xsl/chunk-website.xsl index 91a9925a2..b1bd74cb9 100644 --- a/website/xsl/chunk-website.xsl +++ b/website/xsl/chunk-website.xsl @@ -1,19 +1,12 @@ - + - - - - - - - + xmlns:xweb="xalan://com.nwalsh.xalan.Website" + xmlns:sweb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Website" + exclude-result-prefixes="sweb xweb" + version="1.0"> + + + + diff --git a/website/xsl/chunk.xml b/website/xsl/chunk.xml deleted file mode 100644 index bf3b5e511..000000000 --- a/website/xsl/chunk.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - " - " - ' - ' - - - - - - - - - - - - - - - - - - - - - - - - ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/xsl/chunklib.pl b/website/xsl/chunklib.pl deleted file mode 100644 index 59e26404c..000000000 --- a/website/xsl/chunklib.pl +++ /dev/null @@ -1,78 +0,0 @@ -# -*- Perl -*- -# This is a chunk.pl library file - -package chunklib; - -use XML::DOM; -use Time::Local; - -sub init { - return 1; -} - -sub applies { - my $doc = shift; - my $node = shift; - my $parent = shift; - - return 0 if $node->getNodeType() != ELEMENT_NODE; - return 0 if $node->getTagName() ne 'span'; - return 0 if $node->getAttribute('class') ne 'footdate'; - return 1; -} - -sub apply { - my $doc = shift; - my $node = shift; - my $parent = shift; - - if ($node->getTagName() eq 'span' - && $node->getAttribute('class') eq 'footdate') { - my @months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', - 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); - - my $textnode = $node->getFirstChild(); - my $ucsdate = $textnode->getData(); - - if ($ucsdate =~ /\$(Date): (....)\/(..)\/(..)\s+(\d+):(..):(..) \$/) { - # NB: the extra ()'s around Date prevent CVS from mangling it! - # ok, let's convert this sucker! - my ($year, $month, $day, $hour, $min, $sec) = ($2,$3,$4,$5,$6,$7); - my ($wday, $yday, $isdst); - - $month--; # perl months are zero based - $year -= 1900; # perl years are 1900 based - - # convert GMT into local time - my $time = timegm($sec,$min,$hour,$day,$month,$year); - ($sec,$min,$hour,$day,$month,$year,$wday,$yday,$isdst) - = localtime($time); - - # Calculate the abbreviation for the local timezone. - # I don't know how portable this is. My machine returns - # "Eastern Standard Time", so I'm just going to grab - # all the capitals out of that. - - my ($tzs, $tzd) = POSIX::tzname; - my $tz = $isdst ? $tzd : $tzs; - $tz =~ s/[^A-Z]//g; - - $year += 1900; - - my $ampm = $hour >= 12 ? "pm" : "am"; - my $lcldate = sprintf("Updated: %02d %s %04d @ %02d:%02d%s %s", - $day, $months[$month], $year, - $hour > 12 ? $hour - 12 : $hour, $min, - $ampm, $tz); - -# print STDERR "GMT: $ucsdate\n"; -# print STDERR "EDT: $lcldate\n"; - - $textnode->deleteData(0, $textnode->getLength()); - $textnode->appendData($lcldate); - } - } -} - -'chunklib'; - diff --git a/website/xsl/chunktab.xml b/website/xsl/chunktab.xml deleted file mode 100644 index 2a0cb3ec5..000000000 --- a/website/xsl/chunktab.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - " - " - ' - ' - - - - - - - - - - - - - - - - - - - - - - - - ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/website/xsl/head.xsl b/website/xsl/head.xsl index 25dec3a1f..8c723430f 100644 --- a/website/xsl/head.xsl +++ b/website/xsl/head.xsl @@ -4,10 +4,8 @@ - - + @@ -17,31 +15,13 @@ - - - - - - - - - - - + + - + + @@ -113,7 +109,8 @@ JavaScript - + +