From 219b796ffe1a471a58d295da83de9af80f0e9873 Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Thu, 6 Sep 2001 14:14:01 +0000 Subject: [PATCH] Merge V2-branch back onto the trunk; I'm abandoning V1-branch and V2-branch henceforth --- website/.cvsignore | 2 + website/Makefile | 59 ++ website/README | 41 +- website/VERSION | 2 +- website/autolayout.dtd | 79 +++ website/example/.cvsignore | 5 + website/example/Makefile | 53 +- website/example/about.xml | 37 +- website/example/build-ext.xml | 38 + website/example/build-make.xml | 63 ++ website/example/build-textonly.xml | 24 + website/example/building.xml | 13 + website/example/custom.xml | 54 ++ website/example/example.css | 6 + website/example/graphics/arrow.gif | Bin 0 -> 144 bytes website/example/graphics/banner.png | Bin 1943 -> 2004 bytes website/example/graphics/blank.gif | Bin 0 -> 123 bytes website/example/graphics/homebanner.png | Bin 2318 -> 1737 bytes .../graphics/navicons/arrow/current/leaf.gif | Bin 0 -> 144 bytes .../graphics/navicons/arrow/current/open.gif | Bin 0 -> 144 bytes .../navicons/arrow/current/pointer.gif | Bin 0 -> 123 bytes .../graphics/navicons/arrow/other/closed.gif | Bin 0 -> 123 bytes .../graphics/navicons/arrow/other/leaf.gif | Bin 0 -> 123 bytes .../graphics/navicons/arrow/other/open.gif | Bin 0 -> 123 bytes .../graphics/navicons/folder/current/leaf.gif | Bin 0 -> 175 bytes .../graphics/navicons/folder/current/open.gif | Bin 0 -> 157 bytes .../navicons/folder/current/pointer.gif | Bin 0 -> 144 bytes .../graphics/navicons/folder/other/closed.gif | Bin 0 -> 216 bytes .../graphics/navicons/folder/other/leaf.gif | Bin 0 -> 175 bytes .../graphics/navicons/folder/other/open.gif | Bin 0 -> 157 bytes .../navicons/folder16/current/leaf.gif | Bin 0 -> 174 bytes .../navicons/folder16/current/open.gif | Bin 0 -> 306 bytes .../navicons/folder16/current/pointer.gif | Bin 0 -> 144 bytes .../navicons/folder16/other/closed.gif | Bin 0 -> 234 bytes .../graphics/navicons/folder16/other/leaf.gif | Bin 0 -> 174 bytes .../graphics/navicons/folder16/other/open.gif | Bin 0 -> 306 bytes .../navicons/plusminus/current/leaf.gif | Bin 0 -> 175 bytes .../navicons/plusminus/current/open.gif | Bin 0 -> 958 bytes .../navicons/plusminus/current/pointer.gif | Bin 0 -> 144 bytes .../navicons/plusminus/other/closed.gif | Bin 0 -> 958 bytes .../navicons/plusminus/other/leaf.gif | Bin 0 -> 175 bytes .../navicons/plusminus/other/open.gif | Bin 0 -> 958 bytes .../navicons/triangle/current/leaf.gif | Bin 0 -> 116 bytes .../navicons/triangle/current/open.gif | Bin 0 -> 122 bytes .../navicons/triangle/current/pointer.gif | Bin 0 -> 144 bytes .../navicons/triangle/other/closed.gif | Bin 0 -> 122 bytes .../graphics/navicons/triangle/other/leaf.gif | Bin 0 -> 116 bytes .../graphics/navicons/triangle/other/open.gif | Bin 0 -> 122 bytes website/example/layout.xml | 47 ++ website/example/olink.xml | 73 ++ website/example/param.xml | 53 ++ website/example/rddl.xml | 54 ++ website/example/subdir/.cvsignore | 1 + website/example/test1.xml | 7 +- website/example/test1a.xml | 40 +- website/example/test1b.xml | 3 +- website/example/test2.xml | 5 +- website/example/test3.xml | 17 +- website/example/website.xml | 228 +++--- website/example/wslayout.xml | 195 ++++++ website/extensions/.cvsignore | 1 + website/extensions/Makefile | 17 + website/extensions/saxon64/.cvsignore | 1 + .../saxon64/com/nwalsh/saxon/Website.java | 48 ++ website/extensions/saxon64/prj.el | 208 ++++++ website/extensions/xalan2/.cvsignore | 1 + .../xalan2/com/nwalsh/xalan/Website.java | 52 ++ website/extensions/xalan2/prj.el | 220 ++++++ website/forms.mod | 47 +- website/layout.dtd | 77 ++ website/namespaces.mod | 54 ++ website/rddl.mod | 40 ++ website/website-custom.dtd | 157 +++++ website/website.dtd | 106 --- website/xsl/VERSION | 11 +- website/xsl/autolayout.xsl | 253 +++++++ website/xsl/chunk-common.xsl | 168 +++++ website/xsl/chunk-tabular.xsl | 270 +------ website/xsl/chunk-website-common.xsl | 197 ------ website/xsl/chunk-website.xsl | 25 +- website/xsl/chunk.xml | 81 --- website/xsl/chunklib.pl | 78 --- website/xsl/chunktab.xml | 93 --- website/xsl/head.xsl | 106 +-- website/xsl/hrefencode.pl | 43 -- website/xsl/makefile-dep.xsl | 104 +++ website/xsl/param.xsl | 376 ++++++++++ website/xsl/tabular.xsl | 596 ++++------------ website/xsl/toc-tabular.xsl | 390 +++++++++++ website/xsl/toc.xsl | 286 ++++++++ website/xsl/website-common.xsl | 652 +++++++++++++++++ website/xsl/website.xsl | 659 ++---------------- website/xsl/xtchunk-tabular.xsl | 268 ------- website/xsl/xtchunk-website.xsl | 19 - 94 files changed, 4371 insertions(+), 2532 deletions(-) create mode 100644 website/.cvsignore create mode 100644 website/Makefile create mode 100644 website/autolayout.dtd create mode 100644 website/example/.cvsignore create mode 100644 website/example/build-ext.xml create mode 100644 website/example/build-make.xml create mode 100644 website/example/build-textonly.xml create mode 100644 website/example/building.xml create mode 100644 website/example/custom.xml create mode 100644 website/example/graphics/arrow.gif create mode 100644 website/example/graphics/blank.gif create mode 100644 website/example/graphics/navicons/arrow/current/leaf.gif create mode 100644 website/example/graphics/navicons/arrow/current/open.gif create mode 100644 website/example/graphics/navicons/arrow/current/pointer.gif create mode 100644 website/example/graphics/navicons/arrow/other/closed.gif create mode 100644 website/example/graphics/navicons/arrow/other/leaf.gif create mode 100644 website/example/graphics/navicons/arrow/other/open.gif create mode 100644 website/example/graphics/navicons/folder/current/leaf.gif create mode 100644 website/example/graphics/navicons/folder/current/open.gif create mode 100644 website/example/graphics/navicons/folder/current/pointer.gif create mode 100644 website/example/graphics/navicons/folder/other/closed.gif create mode 100644 website/example/graphics/navicons/folder/other/leaf.gif create mode 100644 website/example/graphics/navicons/folder/other/open.gif create mode 100644 website/example/graphics/navicons/folder16/current/leaf.gif create mode 100644 website/example/graphics/navicons/folder16/current/open.gif create mode 100644 website/example/graphics/navicons/folder16/current/pointer.gif create mode 100644 website/example/graphics/navicons/folder16/other/closed.gif create mode 100644 website/example/graphics/navicons/folder16/other/leaf.gif create mode 100644 website/example/graphics/navicons/folder16/other/open.gif create mode 100644 website/example/graphics/navicons/plusminus/current/leaf.gif create mode 100644 website/example/graphics/navicons/plusminus/current/open.gif create mode 100644 website/example/graphics/navicons/plusminus/current/pointer.gif create mode 100644 website/example/graphics/navicons/plusminus/other/closed.gif create mode 100644 website/example/graphics/navicons/plusminus/other/leaf.gif create mode 100644 website/example/graphics/navicons/plusminus/other/open.gif create mode 100644 website/example/graphics/navicons/triangle/current/leaf.gif create mode 100644 website/example/graphics/navicons/triangle/current/open.gif create mode 100644 website/example/graphics/navicons/triangle/current/pointer.gif create mode 100644 website/example/graphics/navicons/triangle/other/closed.gif create mode 100644 website/example/graphics/navicons/triangle/other/leaf.gif create mode 100644 website/example/graphics/navicons/triangle/other/open.gif create mode 100644 website/example/layout.xml create mode 100644 website/example/olink.xml create mode 100644 website/example/param.xml create mode 100644 website/example/rddl.xml create mode 100644 website/example/subdir/.cvsignore create mode 100644 website/example/wslayout.xml create mode 100644 website/extensions/.cvsignore create mode 100644 website/extensions/Makefile create mode 100644 website/extensions/saxon64/.cvsignore create mode 100644 website/extensions/saxon64/com/nwalsh/saxon/Website.java create mode 100644 website/extensions/saxon64/prj.el create mode 100644 website/extensions/xalan2/.cvsignore create mode 100644 website/extensions/xalan2/com/nwalsh/xalan/Website.java create mode 100644 website/extensions/xalan2/prj.el create mode 100644 website/layout.dtd create mode 100644 website/namespaces.mod create mode 100644 website/rddl.mod create mode 100644 website/website-custom.dtd delete mode 100644 website/website.dtd create mode 100644 website/xsl/autolayout.xsl create mode 100644 website/xsl/chunk-common.xsl delete mode 100644 website/xsl/chunk-website-common.xsl delete mode 100644 website/xsl/chunk.xml delete mode 100644 website/xsl/chunklib.pl delete mode 100644 website/xsl/chunktab.xml delete mode 100644 website/xsl/hrefencode.pl create mode 100644 website/xsl/makefile-dep.xsl create mode 100644 website/xsl/param.xsl create mode 100644 website/xsl/toc-tabular.xsl create mode 100644 website/xsl/toc.xsl create mode 100644 website/xsl/website-common.xsl delete mode 100644 website/xsl/xtchunk-tabular.xsl delete mode 100644 website/xsl/xtchunk-website.xsl 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 0000000000000000000000000000000000000000..126f9228d70d72bf28b3d9003aa5a48c66027e65 GIT binary patch literal 144 zcmZ?wbhEHbFE6hsS8Y@*Ew3z3 IVVn%s0EPA^#sB~S literal 0 HcmV?d00001 diff --git a/website/example/graphics/banner.png b/website/example/graphics/banner.png index 4772bd558d9262a4cdf721401f637bfde8fb246b..c4a202caf31d925e85c8eabd9217a0827f41f258 100644 GIT binary patch delta 1990 zcmV;%2RZnc57ZBkB!2{FK}|sb0I`n?{9y$E00)anL_t(|ob6k|ZrWN9od!!FA+VHC zOASz|OY9%OEBrR}2Qb|?-6VO7sy`6&163C#-L!Atm>)>4h?8p*G zpuWYJ$&IgZOdo2cXO5~Wn9IF`?|5d;nad-s^%FMOVBOdPfPY5SsT3#dRsPB!M@{zd z-=8*QgIEv%Kq*Z}u5ft;M-BV9Be7ThIF1^&rrbG`IY?hv+4U~5Umr{PdHZbp=2lqm z%t^+*Td67Dap&%3AvaUX)6kE_-`z@aB8l_BMcYYTUS;BZ{J0~v&t@&%MoY|LI_A1D z(Wp92)dc{#G=F*V?&*3bPcnSRl1qN#!(8(?Kg0j^suS=nbC4dn0`FMwUtTNa>0igs z0@s_WE0^y1mhGfY&UfO6!<$>d=!;6(1^{aq%N^rGDf!=y_x=t33w+0FsxE*F04?3d zD@GqKuQGrCv)iaThtGfDMg46#G+#70|07^--LH?Es())csg@zdj8!bOMQLRY)*P|A zRu)t3X)hmmi(>8ClW!6r0KjoaVlyBBREm?4>pM`VFOp*|t3vdu6KAo*PrJWX$6!FU zoz&XPpbIN|@bQTx&Ux=?sxJB*ABH!05dJ>l)2Yech*;Q8iXHzTwSQy@DgUSt=M8;|=<7UK)kPbhSok;M z=2qzR#jcsvRi~-CO4&a6_=L928fGNX0|2EwW%FaDIBBYG`)nH)JE3u@5W`ic9}=!G z+G&c1OcTlDX)pibe1{z-<$dS4yvk5;MVNzh%aHi(tjXR%eLQl7ktO)DL(ZKL24msZL*v5XAMW zV}#8{Ti7xr^uPRw+-F^0d8o9pD7$e1T~J zpsBiDGkbZJkxLV!FLo_IiL>e*@>W=|V}EmyW{oGWif?>kApn4;czV^5#JQi;O4E_- zJs8+)vZs`%2OpnAj9C`0_>BREaw?@MkyNU69_ME#=Q}j`!pfp3FNt$qbtq0?5M>4W zn_Iygq}fbOgZb(Z3wgG{;uB?ja)K|&0cj}f9_T9ffr6fMg0(3Ol&GW-oFkf34R`k*d_WRSm(K_!rCYqE#e+h^NsT)`FN3-074#+$)@eH?K{gWQo1 zOA&hPO2#J{0s!c$V+}L(Ot;Tw?Y-+tal*1fZ1`YELx~~q$dV+18YzY={(mmtk@JNI z5J$sGIgnp)&OmC5K&LM%r733Qrs`t76}sQcVj(TcJKRdfCmaF*NclOdJ>J|3)-WT9 z^H4pSB!5C|WkY3f&ZMK6>VTu22#G)%1pKu5OVD!ZH-u36#-!S-V ziidg+KN@AgXo*3SJx%fSx8>-CtzqWDjUl=hI+AkPGB3ZdvY3=nR)1jC-G~A!deQjC zCmdS-ynlI3FLC=r+rX9L1m7io zP{_^p>*M|UI50BQ?IOr##G)%1pK#o3=`2(B*rX6j^a67BuD~9^2;~ZS=S+g z9N+j29%-$gbP7PPI_5BqWk*1&`EvBtc2d!&!sCpAg=`i$3V)2}m3iimr`_>94|bH1 z?(q#x8VmqkGmEKNuR4KV5CRWU(@XMEYAmu~pRxGHCmfI1-xVG;?5>p!y+ILgtu%&E zlRb?&Xch4(ET<@Lb**efAG1=NXo^SlZQ0D!X)uTBu9;$>eji%>V!Z delta 1929 zcmV;42X^?>50?*+B!3ljMObu0a%Ew3X>V>IRB3Hx00+F7{{xC zMOYaxGHe}=vI(N18Jd`sEyK9P58(VDCY#Ph7tP`_OpLlrjDOB)vMkeRBFi?TnS2=Y z3tQq_B1;xE8!R|sN*xoO;LFw`S|}n?%E0~ZJ@KZrQg4B~uI&EPG`FYc-gBPk{GaFf zpHmq3@Zm#)4jrS7@!_6;j+ zPcp@Xd#b}ktAES$!}&Ws-T|&>WSDX?OxQx>E?9x%G2wPEPsZC zXur>J%W8@5XmY<-oSB!EC>mKI*tTK6J%WNv%sDSR@vG82r4ftXT$KLqo{K%b{aOr4 zF63pN6zg<(f^^%qD!awmt+;ngLY2mXZ6(FebMa}#)o@Q(6-XGcip=!!J2U*gV&V6# zpG6uDguHk$-9w@XqEk(cO_Y1 z_7S|S9P39)H%^E`F68H?P(6h%M!lY>xs8rlT432#-h@Qs#_exsi!k+-w_KD}HpAB< z+vIJlv;7|4cESr~43mj3& zTVgne%j1^CS;WcNK&Z-Cc=O<~>jrs&mBx)_c2p_~hGp2kdOFVfy6P6~tc1}R)$Hiz z1%IoG3oJO@az>_t%{YF%JV#OOD{sNO2>&Qp*=zoB{;Vsr9$B-Focf}ux@(}|ugdZmwqx_UR zk*X}7XcxX_#Nmdp|zhzmTynNk@=lJJACUtm&T2Za-UM@rJMQ*ZyeJr~7CQ5~A) zL?XbFi(3L&6&zT^YySDOl7Y*o`G0;@m@lomOq3Wk*1-eiY!B)~EQ)&&>xSBglCB`x z+Sf9a7NRT1YKnAq|74AYUkYtfkdf_i-;9g|5qU!N96El3k}PP%cphiWVL%jDJL7T4G6i_-ZLvAuSDZ0;fd@)8M~ggo>hkDK&1` ze@WpM`6Hx4gXp0)A%TTX4}TS*T1N*eZ;_nQLj_7>rd3L@NO)x+rft^dr_6s1kI`6< z#PS2B(o<8!c?^nG2rLn2Cu>?+Kgkhw()u~?dMeL2=4K^&dIy4!>JGY8OA9P`7A7tE zpjM=T7Dspa);yKB8|0+LmThC1z4SoiT4x3iRD`y&x%0clch14B6MuawPybb9OB2GJ zT_NNUo*4$Vt(s1PBxzB6t(JHON=}IJ{Us_A5w&B-4&?(*|Gu`Z&Fy6qN0OlWh*!h4 zd-=0dN{TaIfAv|>^QpLKoDSj6HFiu*i`%j?>*q`D1RVJ+))>V~@b2;UCndxXd2I5l z?d|NSAq16_CttaBpMN1byZW9aH} z>B`)0we>Ki)I?)&>mWJ-#-n&LlQ~t}_T3o=bK9~~dZ5QUP=8h17TmgqYn_TWcxOad zPTBqaM%T^TJvi-^7bl6Qg_|2A!Z`h(DMAHYT(|q;NcOG&2k3w3r$ZCy#L}S&bYg`J zwl#*ac=9y5&^1pk#5p-hd&;)uZ)S(G+|z`)3$1LA{Z7?^^5W*8(MYT*=CqZWge!5RRC CKq18d literal 0 HcmV?d00001 diff --git a/website/example/graphics/homebanner.png b/website/example/graphics/homebanner.png index 78fb180916906d9f95c4b5dabddaa9142ec3f302..9aac7b0c00a980e66bbea64b41734e7673a119c8 100644 GIT binary patch delta 1721 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 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 0000000000000000000000000000000000000000..126f9228d70d72bf28b3d9003aa5a48c66027e65 GIT binary patch literal 144 zcmZ?wbhEHbFE6hsS8Y@*Ew3z3 IVVn%s0EPA^#sB~S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..126f9228d70d72bf28b3d9003aa5a48c66027e65 GIT binary patch literal 144 zcmZ?wbhEHbFE6hsS8Y@*Ew3z3 IVVn%s0EPA^#sB~S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..839cf03b9c175c7bcf2aa44ddecf6b2e8780b8e6 GIT binary patch literal 123 zcmZ?wbhEHb+|z`)3$1LA{Z7?^^5W*8(MYT*=CqZWge!5RRC CKq18d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..839cf03b9c175c7bcf2aa44ddecf6b2e8780b8e6 GIT binary patch literal 123 zcmZ?wbhEHb+|z`)3$1LA{Z7?^^5W*8(MYT*=CqZWge!5RRC CKq18d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..839cf03b9c175c7bcf2aa44ddecf6b2e8780b8e6 GIT binary patch literal 123 zcmZ?wbhEHb+|z`)3$1LA{Z7?^^5W*8(MYT*=CqZWge!5RRC CKq18d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..839cf03b9c175c7bcf2aa44ddecf6b2e8780b8e6 GIT binary patch literal 123 zcmZ?wbhEHb+|z`)3$1LA{Z7?^^5W*8(MYT*=CqZWge!5RRC CKq18d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3dc640c166de9836d4cce3714993ff3b2bd6dc4 GIT binary patch literal 175 zcmZ?wbhEHbA0T!0v*&%|I20QiktxBvhE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2ffa26e5e54e4f0e0d510c7f11cb56f3a96717e9 GIT binary patch literal 157 zcmZ?wbhEHbw^VNF$0Q@V54FRfd*xaH8cdDo6jzjy7} zvs;H=J-f7b?_Qu{#h)yU3=Dh>Iv|}OGZ7GM-;o#5mls=>tMv2yX1KqUuu4l6dJ G25SJ(t1=b< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ee6ce5949a9d62f57a27b7b7ff24a20f1ea8775 GIT binary patch literal 144 zcmZ?wbhEHbYg8Kfp?02v3JiBxFC1X*)e}w<=&0`^Cp*Pri9$TvLPbGsi~O{A@`;aH;z%Qi+Y z0RzX!HUb+!jB~;^!VGy1M-2P~Y_726Gzdi;{A?r2mgAu2DX!ruyo~WS8^oR*MFwjC Dd6rd> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3dc640c166de9836d4cce3714993ff3b2bd6dc4 GIT binary patch literal 175 zcmZ?wbhEHbA0T!0v*&%|I20QiktxBvhE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2ffa26e5e54e4f0e0d510c7f11cb56f3a96717e9 GIT binary patch literal 157 zcmZ?wbhEHbw^VNF$0Q@V54FRfd*xaH8cdDo6jzjy7} zvs;H=J-f7b?_Qu{#h)yU3=Dh>Iv|}OGZ7GM-;o#5mls=>tMv2yX1KqUuu4l6dJ G25SJ(t1=b< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..02c596f24173f3e62cc03c5cbc9018f6395ff530 GIT binary patch literal 174 zcmZ?wbhEHb6kymYc?PEXDH?%`TsnnRy@+B+ ZU?|2SVwiNKLr~cbVIUSYP;*!rtN{xsGCTkP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b00ecc439fcfd175fb68aff315d094ddb1f51025 GIT binary patch literal 306 zcmZ?wbhEHb6ky(G;XXZG&h3(`Y0Q2fcl$iN`LpaaqYvXg;zy#kA)05W1=VFYm-L4p%h zP6;|dWEqka+>(I0*%%od116|+PL$|KlwcKf0Nc&ND8bT_z~b=OfDeogIItYptiZiV z;lU&wP6HlB77Oo9Dj>wj!=PeuvZ(v|7wpM3MovPU;| zKD%@H#pBB#-#pm6cdz147DfgJeg++oPLLT4EYm;i{eG|dJ&TW}DaQx746UWimn~Zb81FG>3uv5DaN-a=P|fcEat;Fn NkhKr$mTEx;YXD&RW@G>W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..02c596f24173f3e62cc03c5cbc9018f6395ff530 GIT binary patch literal 174 zcmZ?wbhEHb6kymYc?PEXDH?%`TsnnRy@+B+ ZU?|2SVwiNKLr~cbVIUSYP;*!rtN{xsGCTkP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b00ecc439fcfd175fb68aff315d094ddb1f51025 GIT binary patch literal 306 zcmZ?wbhEHb6ky(G;XXZG&h3(`Y0Q2fcl$iN`LpaaqYvXg;zy#kA)05W1=VFYm-L4p%h zP6;|dWEqka+>(I0*%%od116|+PL$|KlwcKf0Nc&ND8bT_z~b=OfDeogIItYptiZiV z;lU&wP6HlB77Oo9Dj>wj!=PeuvZ(A0T!0v*&%|I20QiktxBvhE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..78449df0f10052c272be30d8e0f2e5bb540a66b2 GIT binary patch literal 958 zcmZ?wbhEHb>L~%oSd9oTwL7T+&nxy zyu7@8e0==;`~m_3f`WoVLPEmA!XhFfqN1W=Vq)Ur;t~=Pl9G~AQc}{=(lRnKva+&r za&q$W@(KzHii(O#N=nMg$|@=KYmvnwpwgT3XuL+B!Nqy1Kf0dV2c$ z`UVCDhK7blMn=ZQ#wI2vrlzK5W@hH*<`xzfmX?-QR#w*5);2aawzjr*c6Rpm_6`mX zj*gB_PEO9w&Mq!4uCA_bZf@@G?j9ZO-;?s%`Gi0t*xzX zZEfxC?HwH*ot>RsU0vPX-90@$y}iACeSQ7?{Szikm^g9bq)C$|Po6ww%9N>7r%szT zZTj@-GiJ<~IdkT$S+i!(o;_#IoVj!7&YL%H{`~n17A#n}aN(jwixw|lykyCerAwDC zTefWZ^5rX5tXR2n<*HSyRoH%*%du|NsArKUo-3fSEuC zloLRCf`MZ;1E-*pONW4>Qwzu6-{0Tg-(TPI50zo>^dBMuW5_S8hls!!{TJ*(CNg{g rGMxT%{8e^&0W=4s#vRH~{sJ-?C<0>${sP>L~%oSd9oTwL7T+&nxy zyu7@8e0==;`~m_3f`WoVLPEmA!XhFfqN1W=Vq)Ur;t~=Pl9G~AQc}{=(lRnKva+&r za&q$W@(KzHii(O#N=nMg$|@=KYmvnwpwgT3XuL+B!Nqy1Kf0dV2c$ z`UVCDhK7blMn=ZQ#wI2vrlzK5W@hH*<`xzfmX?-QR#w*5);2aawzjr*c6Rpm_6`mX zj*gB_PEO9w&Mq!4uCA_bZf@@G?j9ZO-;?s%`Gi0t*xzX zZEfxC?HwH*ot>RsU0vPX-90@$y}iACeSQ7?{Szikm^g9bq)C$|Po6ww%9N>7r%szT zZTj@-GiJ<~IdkT$S+i!(o;_#IoVj!7&YL%H{`~n17A#n}aN(jwixw|lykyCerAwDC zTefWZ^5rX5tXR2n<*HSyRoH%*%du|NsArKUo-3fSEuC zloLRCf`MZ;1E-*pONW4>Qwzu6-{0Tg-(TPI50zo>^#9*q<`3`hgBd_I@(b(#|6}|C zWdIfTU$6(6$nXKkaQe^jSJ~wS&>RM!Iqo0^P`mOMpmqi*10*8&3v3sH!GZ1!Mn(o} E0O%a%`Tzg` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3dc640c166de9836d4cce3714993ff3b2bd6dc4 GIT binary patch literal 175 zcmZ?wbhEHbA0T!0v*&%|I20QiktxBvhE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..78449df0f10052c272be30d8e0f2e5bb540a66b2 GIT binary patch literal 958 zcmZ?wbhEHb>L~%oSd9oTwL7T+&nxy zyu7@8e0==;`~m_3f`WoVLPEmA!XhFfqN1W=Vq)Ur;t~=Pl9G~AQc}{=(lRnKva+&r za&q$W@(KzHii(O#N=nMg$|@=KYmvnwpwgT3XuL+B!Nqy1Kf0dV2c$ z`UVCDhK7blMn=ZQ#wI2vrlzK5W@hH*<`xzfmX?-QR#w*5);2aawzjr*c6Rpm_6`mX zj*gB_PEO9w&Mq!4uCA_bZf@@G?j9ZO-;?s%`Gi0t*xzX zZEfxC?HwH*ot>RsU0vPX-90@$y}iACeSQ7?{Szikm^g9bq)C$|Po6ww%9N>7r%szT zZTj@-GiJ<~IdkT$S+i!(o;_#IoVj!7&YL%H{`~n17A#n}aN(jwixw|lykyCerAwDC zTefWZ^5rX5tXR2n<*HSyRoH%*%du|NsArKUo-3fSEuC zloLRCf`MZ;1E-*pONW4>Qwzu6-{0Tg-(TPI50zo>^dBMuW5_S8hls!!{TJ*(CNg{g rGMxT%{8e^&0W=4s#vRH~{sJ-?C<0>${sP+|z`)3$1LA{Z7?`|$W*8(MYT*=CqnIJWU=0A4 CXdkiw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..888c1f8588d1c1fb81e09bb09e662af4954f0a08 GIT binary patch literal 122 zcmZ?wbhEHbV?cu laA;s)behs(ka(y;NR`WHh5$&7ARAasqX4R6n08SHYXEemAm9K1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ee6ce5949a9d62f57a27b7b7ff24a20f1ea8775 GIT binary patch literal 144 zcmZ?wbhEHb+|z`)3$1LA{Z7?`|$W*8(MYT*=CqnIJWU=0A4 CXdkiw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..888c1f8588d1c1fb81e09bb09e662af4954f0a08 GIT binary patch literal 122 zcmZ?wbhEHbV?cu laA;s)behs(ka(y;NR`WHh5$&7ARAasqX4R6n08SHYXEemAm9K1 literal 0 HcmV?d00001 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 - + +