]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2004-06-02 05:27:59 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 2 Jun 2004 05:28:06 +0000 (05:28 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 2 Jun 2004 05:28:06 +0000 (05:28 +0000)
added documentation tree

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@458 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

26 files changed:
documentation/Makefile [new file with mode: 0644]
documentation/Makefile.generic [new file with mode: 0644]
documentation/data/doc.css [new file with mode: 0644]
documentation/data/images/note-icon.png [new file with mode: 0644]
documentation/data/images/warn-icon.png [new file with mode: 0644]
documentation/data/references.xml [new file with mode: 0644]
documentation/drivers/Makefile [new file with mode: 0644]
documentation/drivers/index.xml [new file with mode: 0644]
documentation/dtd/doc.dtd [new file with mode: 0644]
documentation/dtd/references.dtd [new file with mode: 0644]
documentation/dtd/xhtml-lat1.ent [new file with mode: 0644]
documentation/dtd/xhtml-special.ent [new file with mode: 0644]
documentation/dtd/xhtml-symbol.ent [new file with mode: 0644]
documentation/lcd4linux/Makefile [new file with mode: 0644]
documentation/lcd4linux/bug_report.xml [new file with mode: 0644]
documentation/lcd4linux/example.xml [new file with mode: 0644]
documentation/lcd4linux/index.xml [new file with mode: 0644]
documentation/lcd4linux/write_doc.xml [new file with mode: 0644]
documentation/plugins/Makefile [new file with mode: 0644]
documentation/plugins/index.xml [new file with mode: 0644]
documentation/xsl/body.xsl [new file with mode: 0644]
documentation/xsl/doc.xsl [new file with mode: 0644]
documentation/xsl/head.xsl [new file with mode: 0644]
documentation/xsl/helpers.xsl [new file with mode: 0644]
documentation/xsl/references.xsl [new file with mode: 0644]
documentation/xsl/xhtml.xsl [new file with mode: 0644]

diff --git a/documentation/Makefile b/documentation/Makefile
new file mode 100644 (file)
index 0000000..47425e4
--- /dev/null
@@ -0,0 +1,32 @@
+REP= lcd4linux drivers plugins
+
+default: makefiles html
+       true
+
+makefiles: 
+       @for i in $(REP) ; do \
+               (cd $$i && ln -sf ../Makefile.generic Makefile) ; \
+       done
+
+cleanmakefiles:
+       @for i in $(REP) ; do \
+               rm -f $$i/Makefile ; \
+       done
+
+totalclean:
+       @for i in $(REP) ; do \
+               (cd $$i && make clean ; rm Makefile) ; \
+       done
+       rm -rf HTML
+
+#catalog: catalogue.xml xsl/catalogue.xsl
+#      test -d catalog || mkdir catalog
+#      xsltproc --param dir \'$(PWD)\' \
+#               --param odir \'$(PWD)/catalog\' \
+#          xsl/catalogue.xsl catalogue.xml >catalog/index.html
+#      cp charte/default/default.css catalog/
+
+%:
+       @for i in $(REP) ; do \
+               (cd $$i && make $@) ; \
+       done
diff --git a/documentation/Makefile.generic b/documentation/Makefile.generic
new file mode 100644 (file)
index 0000000..2519f22
--- /dev/null
@@ -0,0 +1,59 @@
+# Path
+DIR = $(notdir $(PWD))
+OUTPUT = ../HTML
+
+ifeq "$(DIR)" "lcd4linux"
+       DIR = 
+endif
+
+ifeq "$(DIR)" ""
+       XSLTPROC = xsltproc
+else
+       XSLTPROC = xsltproc --stringparam class $(DIR) --stringparam root "../"
+endif
+
+XMLVALID = xmllint --noout --valid
+
+NAMES=$(shell find . -name "*.xml" -exec basename {} .xml \;)
+
+html: $(patsubst %.xml,%.html,$(wildcard *.xml))
+html-forced: $(patsubst %.xml,%.html-forced,$(wildcard *.xml))
+
+%.html: %.xml %.xml-check output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$@
+
+%.html-forced: %.xml output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$(patsubst %.xml,%.html,$<)
+
+check: $(patsubst %.xml, %.xml-check, $(wildcard *.xml))
+
+%.xml-check: %.xml
+       @echo "*** Validation of $<"
+       $(XMLVALID) $< 
+
+output:
+       test -d $(OUTPUT) || `mkdir $(OUTPUT); cp ../data/doc.css $(OUTPUT); cp  -R ../data/images $(OUTPUT)`
+       test -d $(OUTPUT)/$(DIR) || mkdir $(OUTPUT)/$(DIR)
+
+clean:
+       rm -f $(OUTPUT)/$(DIR)/*.html
+
+clean-bak:
+       rm -f *~ *.bak
+
+help:
+       @echo -e ""
+       @echo -e "Usage :"
+       @echo -e "-------"
+       @echo -e "make  or  make html :  builds all possible html pages from xml files"
+       @echo -e "make %.html :          builds the %.html page from %.xml"
+       @echo -e ""
+       @echo -e "make html-forced  :    builds all possible html pages from xml files (no validity check)"
+       @echo -e "make %.html-forced :   builds the %.html page from %.xml (no validity check)"
+       @echo -e ""
+       @echo -e "make check :           checks the validity of all possible xml files"
+       @echo -e "make %.xml-check :     checks the validity of %.xml"
+       @echo -e ""
+       @echo -e "make clean :           deletes all generated html pages"
+       @echo -e "make clean-bak :       deletes *~ and *.bak files"
+       @echo -e ""
diff --git a/documentation/data/doc.css b/documentation/data/doc.css
new file mode 100644 (file)
index 0000000..8a06636
--- /dev/null
@@ -0,0 +1,82 @@
+body {
+  margin: 0 10px 10px 10px;
+  padding: 0;
+}
+
+h1 {
+  margin-left: -10px;
+  margin-top: 5px;
+  text-align: center;
+  border-bottom: 2px groove black;
+}
+
+div.links {
+  float: right;
+  margin-left: 10px;
+  margin-top: 1em;
+  padding: 0 10px 0px 10px;
+  text-align: center;
+  border: 1px solid black;
+  background: white;
+} div.links div.title {
+  background: white;
+  margin: -0.5em 10px 5px 10px;
+  padding: 0 10px;
+  float: center;
+  border: 1px solid black;
+} div.links div.index {
+  position: relative;
+  bottom: 0;
+  left: -5px;
+  margin-top: 4px;
+  text-align: left;
+} div.links a {
+  color: black;
+  /*text-decoration: none;*/
+}
+
+div.cmd {
+  background: #000;
+  border: 1px solid #ddd;
+  font-family: monospace,fixed;
+  font-style: bold;
+  color: #fff;
+  white-space: pre;
+  font-size: 12px;
+  padding: 5px;
+  margin: 5px;
+}
+
+div.conf {
+  background: #eee;
+  border: 1px solid #111;
+  font-family: monospace,fixed;
+  white-space: pre;
+  font-size: 12px;
+  padding: 5px;
+  margin: 5px;
+}
+
+div.warn {
+  margin-top: 20px;
+  border: 2px solid #700000;
+  margin-left: 20px;
+  padding-left: 5px;
+  width: auto;
+  min-height: 30px;
+} 
+
+div.note {
+  margin-top: 20px;
+  border: 2px solid #43607e;
+  margin-left: 20px;
+  padding-left: 5px;
+  width: auto;
+  min-height: 30px;
+} 
+
+img.icon {
+  float: left;
+  margin-left: -14px;
+  margin-top: -20px;
+}
diff --git a/documentation/data/images/note-icon.png b/documentation/data/images/note-icon.png
new file mode 100644 (file)
index 0000000..33aa88b
Binary files /dev/null and b/documentation/data/images/note-icon.png differ
diff --git a/documentation/data/images/warn-icon.png b/documentation/data/images/warn-icon.png
new file mode 100644 (file)
index 0000000..2e1a2a3
Binary files /dev/null and b/documentation/data/images/warn-icon.png differ
diff --git a/documentation/data/references.xml b/documentation/data/references.xml
new file mode 100644 (file)
index 0000000..793dd2a
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!DOCTYPE references SYSTEM "../dtd/references.dtd">
+
+<references>
+<!--Pages about lcd4linux-->
+  <ref id="index">
+    <class/>
+    <file>index</file>
+    <label>Documentation index</label>
+    <hiden/>
+  </ref>
+  <ref id="overview">
+    <class/>
+    <file>overview</file>
+    <label>&L4L; overview</label>
+  </ref>
+  <ref id="bug_report">
+    <class/>
+    <file>bug_report</file>
+    <label>How to report bugs or get support</label>
+  </ref>
+  <ref id="contact">
+    <class/>
+    <file>contact</file>
+    <label>How to contact us</label>
+  </ref>
+  <ref id="write_doc">
+    <class/>
+    <file>write_doc</file>
+    <label>How to write documentation</label>
+  </ref>
+  
+  <ref id="test">
+    <class/>
+    <file>example</file>
+    <label>A test page</label>
+  </ref> 
+
+<!--Drivers-->
+  <ref id="drivers_index">
+    <class>drivers</class>
+    <file>index</file>
+    <label>Drivers index</label>
+    <hiden/>
+  </ref>
+  <ref id="hd44780">
+    <class>drivers</class>
+    <file>hd44780</file>
+    <label>HD44780 displays driver</label>
+  </ref>
+
+<!--Plugins-->
+  <ref id="plugins_index">
+    <class>plugins</class>
+    <file>index</file>
+    <label>Plugins index</label>
+    <hiden/>
+  </ref>
+  <ref id="i2c_sensors">
+    <class>plugins</class>
+    <file>i2c_sensors</file>
+    <label>I2C sensors plugin</label>
+  </ref>
+  
+</references>
diff --git a/documentation/drivers/Makefile b/documentation/drivers/Makefile
new file mode 100644 (file)
index 0000000..2519f22
--- /dev/null
@@ -0,0 +1,59 @@
+# Path
+DIR = $(notdir $(PWD))
+OUTPUT = ../HTML
+
+ifeq "$(DIR)" "lcd4linux"
+       DIR = 
+endif
+
+ifeq "$(DIR)" ""
+       XSLTPROC = xsltproc
+else
+       XSLTPROC = xsltproc --stringparam class $(DIR) --stringparam root "../"
+endif
+
+XMLVALID = xmllint --noout --valid
+
+NAMES=$(shell find . -name "*.xml" -exec basename {} .xml \;)
+
+html: $(patsubst %.xml,%.html,$(wildcard *.xml))
+html-forced: $(patsubst %.xml,%.html-forced,$(wildcard *.xml))
+
+%.html: %.xml %.xml-check output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$@
+
+%.html-forced: %.xml output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$(patsubst %.xml,%.html,$<)
+
+check: $(patsubst %.xml, %.xml-check, $(wildcard *.xml))
+
+%.xml-check: %.xml
+       @echo "*** Validation of $<"
+       $(XMLVALID) $< 
+
+output:
+       test -d $(OUTPUT) || `mkdir $(OUTPUT); cp ../data/doc.css $(OUTPUT); cp  -R ../data/images $(OUTPUT)`
+       test -d $(OUTPUT)/$(DIR) || mkdir $(OUTPUT)/$(DIR)
+
+clean:
+       rm -f $(OUTPUT)/$(DIR)/*.html
+
+clean-bak:
+       rm -f *~ *.bak
+
+help:
+       @echo -e ""
+       @echo -e "Usage :"
+       @echo -e "-------"
+       @echo -e "make  or  make html :  builds all possible html pages from xml files"
+       @echo -e "make %.html :          builds the %.html page from %.xml"
+       @echo -e ""
+       @echo -e "make html-forced  :    builds all possible html pages from xml files (no validity check)"
+       @echo -e "make %.html-forced :   builds the %.html page from %.xml (no validity check)"
+       @echo -e ""
+       @echo -e "make check :           checks the validity of all possible xml files"
+       @echo -e "make %.xml-check :     checks the validity of %.xml"
+       @echo -e ""
+       @echo -e "make clean :           deletes all generated html pages"
+       @echo -e "make clean-bak :       deletes *~ and *.bak files"
+       @echo -e ""
diff --git a/documentation/drivers/index.xml b/documentation/drivers/index.xml
new file mode 100644 (file)
index 0000000..12ba14e
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>&L4L; drivers</title>
+  <ref>drivers_index</ref>
+  <links/>
+</head>
+<body>
+<h2>Drivers</h2>
+<index class="drivers"/>
+</body>
+</doc>
diff --git a/documentation/dtd/doc.dtd b/documentation/dtd/doc.dtd
new file mode 100644 (file)
index 0000000..3b1a778
--- /dev/null
@@ -0,0 +1,910 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!ELEMENT doc (head,body)>
+
+<!ENTITY l4l "LCD4Linux">
+<!ENTITY L4L "LCD4Linux">
+
+
+<!--head-->
+<!ELEMENT head (title,(version|ref|links|history|state)*)>
+  <!ELEMENT title (#PCDATA)>
+  <!ELEMENT version (#PCDATA)>
+  <!ELEMENT ref (#PCDATA)>
+  <!ELEMENT links (link*)>
+    <!ELEMENT link (#PCDATA)>
+      <!ATTLIST link ref CDATA #IMPLIED url CDATA #IMPLIED>
+  <!ELEMENT history (revision)*>
+    <!ELEMENT revision (#PCDATA)>
+      <!ATTLIST revision version CDATA #REQUIRED by CDATA #IMPLIED>
+  <!ELEMENT state (#PCDATA)>
+    <!ATTLIST state finished CDATA #IMPLIED proofread CDATA #IMPLIED>
+    
+<!--body-->
+<!ELEMENT body ANY>
+  <!--Helpers-->
+  <!ELEMENT cmd ANY>
+  <!ELEMENT conf ANY>
+  <!ELEMENT note ANY>
+  <!ELEMENT warn ANY>  
+  <!ELEMENT new ANY>
+    <!ATTLIST new date CDATA #IMPLIED title CDATA #REQUIRED>
+  <!ELEMENT index ANY>
+    <!ATTLIST index class CDATA #IMPLIED>   
+
+               <!--XHTML tags from the official DTD-->
+               <!--not that clean, but it works :P -->
+        
+<!--
+   Extensible HTML version 1.0 Strict DTD
+
+   This is the same as HTML 4.0 Strict except for
+   changes due to the differences between XML and SGML.
+
+   Namespace = http://www.w3.org/1999/xhtml
+
+   For further information, see: http://www.w3.org/TR/xhtml1
+
+   Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),
+   All Rights Reserved. 
+
+   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+
+   $Revision: 1.1 $
+   $Date: 2004/06/02 05:28:05 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+   "xhtml-lat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+   "-//W3C//ENTITIES Symbols for XHTML//EN"
+   "xhtml-symbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+   "-//W3C//ENTITIES Special for XHTML//EN"
+   "xhtml-special.ent">
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+    <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+    <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+    <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+    <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+    <!-- a language code, as per [RFC1766] -->
+
+<!ENTITY % Character "CDATA">
+    <!-- a single character from [ISO10646] -->
+
+<!ENTITY % Number "CDATA">
+    <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+    <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+    <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+    <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+    <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+    <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+    <!-- used for titles etc. -->
+
+<!ENTITY % FrameTarget "NMTOKEN">
+    <!-- render in this frame -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+    <!-- pixel, percentage, or relative -->
+
+<!ENTITY % MultiLengths "CDATA">
+    <!-- comma-separated list of MultiLength -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+    <!-- comma separated list of lengths -->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+  id       document-wide unique id
+  class    space separated list of classes
+  style    associated style info
+  title    advisory title/amplification
+-->
+<!ENTITY % coreattrs
+ "id          ID             #IMPLIED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED"
+  >
+
+<!-- internationalization attributes
+  lang        language code (backwards compatible)
+  xml:lang    language code (as per XML 1.0 spec)
+  dir         direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #IMPLIED"
+  >
+
+<!-- attributes for common UI events
+  onclick     a pointer button was clicked
+  ondblclick  a pointer button was double clicked
+  onmousedown a pointer button was pressed down
+  onmouseup   a pointer button was released
+  onmousemove a pointer was moved onto the element
+  onmouseout  a pointer was moved away from the element
+  onkeypress  a key was pressed and released
+  onkeydown   a key was pressed down
+  onkeyup     a key was released
+-->
+<!ENTITY % events
+ "onclick     %Script;       #IMPLIED
+  ondblclick  %Script;       #IMPLIED
+  onmousedown %Script;       #IMPLIED
+  onmouseup   %Script;       #IMPLIED
+  onmouseover %Script;       #IMPLIED
+  onmousemove %Script;       #IMPLIED
+  onmouseout  %Script;       #IMPLIED
+  onkeypress  %Script;       #IMPLIED
+  onkeydown   %Script;       #IMPLIED
+  onkeyup     %Script;       #IMPLIED"
+  >
+
+<!-- attributes for elements that can get the focus
+  accesskey   accessibility key character
+  tabindex    position in tabbing order
+  onfocus     the element got the focus
+  onblur      the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey   %Character;    #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED"
+  >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special
+   "br | span | bdo | object | img | map">
+
+<!ENTITY % fontstyle "tt | i | b | big | small">
+
+<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
+                   samp | kbd | var | cite | abbr | acronym">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc "ins | del | script | noscript">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl">
+<!ENTITY % blocktext "pre | hr | blockquote | address">
+
+<!ENTITY % block
+     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
+
+<!ENTITY % Block "(%block; | form | %misc;)*">
+
+<!-- %Flow; mixes Block and Inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
+
+<!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
+
+<!ENTITY % pre.content
+   "(#PCDATA | a | br | span | bdo | map | tt | i | b |
+      %phrase; | %inline.forms;)*">
+
+<!-- form uses %Block; excluding form -->
+
+<!ENTITY % form.content "(%block; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form and form controls -->
+
+<!ENTITY % button.content
+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+    table | %special; | %fontstyle; | %phrase; | %misc;)*">
+
+
+<!--[...]-->
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+  %attrs;
+  >
+
+<!--=================== Headings =========================================-->
+
+<!--
+  There are six levels of headings from h1 (the most important)
+  to h6 (the least important).
+-->
+
+<!ELEMENT h1  %Inline;>
+<!ATTLIST h1
+   %attrs;
+   >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+   %attrs;
+   >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+   %attrs;
+   >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+   %attrs;
+   >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+   %attrs;
+   >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+   %attrs;
+   >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+  %attrs;
+  >
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+  %attrs;
+  >
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+  %attrs;
+  >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+  %attrs;
+  >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+  %attrs;
+  >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+  %attrs;
+  >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address %Inline;>
+<!ATTLIST address
+  %attrs;
+  >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+  %attrs;
+  >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+  %attrs;
+  xml:space (preserve) #FIXED 'preserve'
+  >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Block;>
+<!ATTLIST blockquote
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+  ins/del are allowed in block and inline content, but its
+  inappropriate to include block content within an ins element
+  occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+  %attrs;
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+  %attrs;
+  >
+
+<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+  %coreattrs;
+  %events;
+  lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #REQUIRED
+  >
+
+<!ELEMENT br EMPTY>   <!-- forced line break -->
+<!ATTLIST br
+  %coreattrs;
+  >
+
+<!ELEMENT em %Inline;>   <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;>   <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;>   <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;>   <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;>  <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;>   <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;>   <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;>   <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;>   <!-- inlined quote -->
+<!ATTLIST q
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;>   <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;>   <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;>   <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;>   <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!--==================== Object ======================================-->
+<!--
+  object is used to embed objects as part of HTML pages.
+  param elements should precede other content. Parameters
+  can also be expressed as attribute/value pairs on the
+  object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+  %attrs;
+  declare     (declare)      #IMPLIED
+  classid     %URI;          #IMPLIED
+  codebase    %URI;          #IMPLIED
+  data        %URI;          #IMPLIED
+  type        %ContentType;  #IMPLIED
+  codetype    %ContentType;  #IMPLIED
+  archive     %UriList;      #IMPLIED
+  standby     %Text;         #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  >
+
+<!--
+  param is used to supply a named property value.
+  In XML it would seem natural to follow RDF and support an
+  abbreviated syntax where the param elements are replaced
+  by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  id          ID             #IMPLIED
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  valuetype   (data|ref|object) "data"
+  type        %ContentType;  #IMPLIED
+  >
+
+<!--=================== Images ===========================================-->
+
+<!--
+   To avoid accessibility problems for people who aren't
+   able to see the image, you should provide a text
+   description using the alt and longdesc attributes.
+   In addition, avoid the use of server-side image maps.
+   Note that in this DTD there is no name attribute. That
+   is only available in the transitional and frameset DTD.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+  %attrs;
+  src         %URI;          #REQUIRED
+  alt         %Text;         #REQUIRED
+  longdesc    %URI;          #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  ismap       (ismap)        #IMPLIED
+  >
+
+<!-- usemap points to a map element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+  %i18n;
+  %events;
+  id          ID             #REQUIRED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+  %attrs;
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  href        %URI;          #IMPLIED
+  nohref      (nohref)       #IMPLIED
+  alt         %Text;         #REQUIRED
+  tabindex    %Number;       #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+  %attrs;
+  action      %URI;          #REQUIRED
+  method      (get|post)     "get"
+  enctype     %ContentType;  "application/x-www-form-urlencoded"
+  onsubmit    %Script;       #IMPLIED
+  onreset     %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  accept-charset %Charsets;  #IMPLIED
+  >
+
+<!--
+  Each label must not contain more than ONE field
+  Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+  %attrs;
+  for         IDREF          #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!ENTITY % InputType
+  "(text | password | checkbox |
+    radio | submit | reset |
+    file | hidden | image | button)"
+   >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY>     <!-- form control -->
+<!ATTLIST input
+  %attrs;
+  type        %InputType;    "text"
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  checked     (checked)      #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  size        CDATA          #IMPLIED
+  maxlength   %Number;       #IMPLIED
+  src         %URI;          #IMPLIED
+  alt         CDATA          #IMPLIED
+  usemap      %URI;          #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  >
+
+<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
+<!ATTLIST select
+  %attrs;
+  name        CDATA          #IMPLIED
+  size        %Number;       #IMPLIED
+  multiple    (multiple)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!ELEMENT optgroup (option)+>   <!-- option group -->
+<!ATTLIST optgroup
+  %attrs;
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #REQUIRED
+  >
+
+<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
+<!ATTLIST option
+  %attrs;
+  selected    (selected)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #IMPLIED
+  value       CDATA          #IMPLIED
+  >
+
+<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
+<!ATTLIST textarea
+  %attrs;
+  name        CDATA          #IMPLIED
+  rows        %Number;       #REQUIRED
+  cols        %Number;       #REQUIRED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!--
+  The fieldset element is used to group form fields.
+  Only one legend element should occur in the content
+  and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+  %attrs;
+  >
+
+<!ELEMENT legend %Inline;>     <!-- fieldset label -->
+<!ATTLIST legend
+  %attrs;
+  accesskey   %Character;    #IMPLIED
+  >
+
+<!--
+ Content is %Flow; excluding a, form and form controls
+--> 
+<!ELEMENT button %button.content;>  <!-- push button -->
+<!ATTLIST button
+  %attrs;
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  type        (button|submit|reset) "submit"
+  disabled    (disabled)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+     "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+  
+<!-- horizontal placement of table relative to document -->
+<!ENTITY % TAlign "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents
+
+  char        alignment char, e.g. char=':'
+  charoff     offset for alignment char
+-->
+<!ENTITY % cellhalign
+  "align      (left|center|right|justify|char) #IMPLIED
+   char       %Character;    #IMPLIED
+   charoff    %Length;       #IMPLIED"
+  >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+  "valign     (top|middle|bottom|baseline) #IMPLIED"
+  >
+
+<!ELEMENT table
+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption  %Inline;>
+<!ELEMENT thead    (tr)+>
+<!ELEMENT tfoot    (tr)+>
+<!ELEMENT tbody    (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col      EMPTY>
+<!ELEMENT tr       (th|td)+>
+<!ELEMENT th       %Flow;>
+<!ELEMENT td       %Flow;>
+
+<!ATTLIST table
+  %attrs;
+  summary     %Text;         #IMPLIED
+  width       %Length;       #IMPLIED
+  border      %Pixels;       #IMPLIED
+  frame       %TFrame;       #IMPLIED
+  rules       %TRules;       #IMPLIED
+  cellspacing %Length;       #IMPLIED
+  cellpadding %Length;       #IMPLIED
+  >
+
+<!ENTITY % CAlign "(top|bottom|left|right)">
+
+<!ATTLIST caption
+  %attrs;
+  >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+    Use thead to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    tbody sections are rendered in scrolling panel.
+
+    Use tfoot to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    tbody sections are rendered in scrolling panel.
+
+    Use multiple tbody sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST thead
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tfoot
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tbody
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tr
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST td
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
diff --git a/documentation/dtd/references.dtd b/documentation/dtd/references.dtd
new file mode 100644 (file)
index 0000000..fc54fde
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  DTD of documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<!ENTITY l4l "LCD4Linux">
+<!ENTITY L4L "LCD4Linux">
+
+<!ELEMENT references (ref*)>
+
+<!ELEMENT ref ((class|file|label|hiden))>
+<!ATTLIST ref id CDATA #REQUIRED>
+  <!ELEMENT class (#PCDATA)>
+  <!ELEMENT file (#PCDATA)>
+  <!ELEMENT label (#PCDATA)>
+  <!ELEMENT hiden EMPTY>
diff --git a/documentation/dtd/xhtml-lat1.ent b/documentation/dtd/xhtml-lat1.ent
new file mode 100644 (file)
index 0000000..293d2ba
--- /dev/null
@@ -0,0 +1,194 @@
+<!-- Portions (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLlat1 PUBLIC
+       "-//W3C//ENTITIES Latin 1//EN//HTML">
+     %HTMLlat1;
+-->
+
+<!ENTITY nbsp    "&#160;"> <!-- no-break space = non-breaking space,
+                                  U+00A0 ISOnum -->
+<!ENTITY iexcl   "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
+<!ENTITY cent    "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
+<!ENTITY pound   "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
+<!ENTITY curren  "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
+<!ENTITY yen     "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
+<!ENTITY brvbar  "&#166;"> <!-- broken bar = broken vertical bar,
+                                  U+00A6 ISOnum -->
+<!ENTITY sect    "&#167;"> <!-- section sign, U+00A7 ISOnum -->
+<!ENTITY uml     "&#168;"> <!-- diaeresis = spacing diaeresis,
+                                  U+00A8 ISOdia -->
+<!ENTITY copy    "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
+<!ENTITY ordf    "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
+<!ENTITY laquo   "&#171;"> <!-- left-pointing double angle quotation mark
+                                  = left pointing guillemet, U+00AB ISOnum -->
+<!ENTITY not     "&#172;"> <!-- not sign, U+00AC ISOnum -->
+<!ENTITY shy     "&#173;"> <!-- soft hyphen = discretionary hyphen,
+                                  U+00AD ISOnum -->
+<!ENTITY reg     "&#174;"> <!-- registered sign = registered trade mark sign,
+                                  U+00AE ISOnum -->
+<!ENTITY macr    "&#175;"> <!-- macron = spacing macron = overline
+                                  = APL overbar, U+00AF ISOdia -->
+<!ENTITY deg     "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
+<!ENTITY plusmn  "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
+                                  U+00B1 ISOnum -->
+<!ENTITY sup2    "&#178;"> <!-- superscript two = superscript digit two
+                                  = squared, U+00B2 ISOnum -->
+<!ENTITY sup3    "&#179;"> <!-- superscript three = superscript digit three
+                                  = cubed, U+00B3 ISOnum -->
+<!ENTITY acute   "&#180;"> <!-- acute accent = spacing acute,
+                                  U+00B4 ISOdia -->
+<!ENTITY micro   "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
+<!ENTITY para    "&#182;"> <!-- pilcrow sign = paragraph sign,
+                                  U+00B6 ISOnum -->
+<!ENTITY middot  "&#183;"> <!-- middle dot = Georgian comma
+                                  = Greek middle dot, U+00B7 ISOnum -->
+<!ENTITY cedil   "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
+<!ENTITY sup1    "&#185;"> <!-- superscript one = superscript digit one,
+                                  U+00B9 ISOnum -->
+<!ENTITY ordm    "&#186;"> <!-- masculine ordinal indicator,
+                                  U+00BA ISOnum -->
+<!ENTITY raquo   "&#187;"> <!-- right-pointing double angle quotation mark
+                                  = right pointing guillemet, U+00BB ISOnum -->
+<!ENTITY frac14  "&#188;"> <!-- vulgar fraction one quarter
+                                  = fraction one quarter, U+00BC ISOnum -->
+<!ENTITY frac12  "&#189;"> <!-- vulgar fraction one half
+                                  = fraction one half, U+00BD ISOnum -->
+<!ENTITY frac34  "&#190;"> <!-- vulgar fraction three quarters
+                                  = fraction three quarters, U+00BE ISOnum -->
+<!ENTITY iquest  "&#191;"> <!-- inverted question mark
+                                  = turned question mark, U+00BF ISOnum -->
+<!ENTITY Agrave  "&#192;"> <!-- latin capital letter A with grave
+                                  = latin capital letter A grave,
+                                  U+00C0 ISOlat1 -->
+<!ENTITY Aacute  "&#193;"> <!-- latin capital letter A with acute,
+                                  U+00C1 ISOlat1 -->
+<!ENTITY Acirc   "&#194;"> <!-- latin capital letter A with circumflex,
+                                  U+00C2 ISOlat1 -->
+<!ENTITY Atilde  "&#195;"> <!-- latin capital letter A with tilde,
+                                  U+00C3 ISOlat1 -->
+<!ENTITY Auml    "&#196;"> <!-- latin capital letter A with diaeresis,
+                                  U+00C4 ISOlat1 -->
+<!ENTITY Aring   "&#197;"> <!-- latin capital letter A with ring above
+                                  = latin capital letter A ring,
+                                  U+00C5 ISOlat1 -->
+<!ENTITY AElig   "&#198;"> <!-- latin capital letter AE
+                                  = latin capital ligature AE,
+                                  U+00C6 ISOlat1 -->
+<!ENTITY Ccedil  "&#199;"> <!-- latin capital letter C with cedilla,
+                                  U+00C7 ISOlat1 -->
+<!ENTITY Egrave  "&#200;"> <!-- latin capital letter E with grave,
+                                  U+00C8 ISOlat1 -->
+<!ENTITY Eacute  "&#201;"> <!-- latin capital letter E with acute,
+                                  U+00C9 ISOlat1 -->
+<!ENTITY Ecirc   "&#202;"> <!-- latin capital letter E with circumflex,
+                                  U+00CA ISOlat1 -->
+<!ENTITY Euml    "&#203;"> <!-- latin capital letter E with diaeresis,
+                                  U+00CB ISOlat1 -->
+<!ENTITY Igrave  "&#204;"> <!-- latin capital letter I with grave,
+                                  U+00CC ISOlat1 -->
+<!ENTITY Iacute  "&#205;"> <!-- latin capital letter I with acute,
+                                  U+00CD ISOlat1 -->
+<!ENTITY Icirc   "&#206;"> <!-- latin capital letter I with circumflex,
+                                  U+00CE ISOlat1 -->
+<!ENTITY Iuml    "&#207;"> <!-- latin capital letter I with diaeresis,
+                                  U+00CF ISOlat1 -->
+<!ENTITY ETH     "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
+<!ENTITY Ntilde  "&#209;"> <!-- latin capital letter N with tilde,
+                                  U+00D1 ISOlat1 -->
+<!ENTITY Ograve  "&#210;"> <!-- latin capital letter O with grave,
+                                  U+00D2 ISOlat1 -->
+<!ENTITY Oacute  "&#211;"> <!-- latin capital letter O with acute,
+                                  U+00D3 ISOlat1 -->
+<!ENTITY Ocirc   "&#212;"> <!-- latin capital letter O with circumflex,
+                                  U+00D4 ISOlat1 -->
+<!ENTITY Otilde  "&#213;"> <!-- latin capital letter O with tilde,
+                                  U+00D5 ISOlat1 -->
+<!ENTITY Ouml    "&#214;"> <!-- latin capital letter O with diaeresis,
+                                  U+00D6 ISOlat1 -->
+<!ENTITY times   "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
+<!ENTITY Oslash  "&#216;"> <!-- latin capital letter O with stroke
+                                  = latin capital letter O slash,
+                                  U+00D8 ISOlat1 -->
+<!ENTITY Ugrave  "&#217;"> <!-- latin capital letter U with grave,
+                                  U+00D9 ISOlat1 -->
+<!ENTITY Uacute  "&#218;"> <!-- latin capital letter U with acute,
+                                  U+00DA ISOlat1 -->
+<!ENTITY Ucirc   "&#219;"> <!-- latin capital letter U with circumflex,
+                                  U+00DB ISOlat1 -->
+<!ENTITY Uuml    "&#220;"> <!-- latin capital letter U with diaeresis,
+                                  U+00DC ISOlat1 -->
+<!ENTITY Yacute  "&#221;"> <!-- latin capital letter Y with acute,
+                                  U+00DD ISOlat1 -->
+<!ENTITY THORN   "&#222;"> <!-- latin capital letter THORN,
+                                  U+00DE ISOlat1 -->
+<!ENTITY szlig   "&#223;"> <!-- latin small letter sharp s = ess-zed,
+                                  U+00DF ISOlat1 -->
+<!ENTITY agrave  "&#224;"> <!-- latin small letter a with grave
+                                  = latin small letter a grave,
+                                  U+00E0 ISOlat1 -->
+<!ENTITY aacute  "&#225;"> <!-- latin small letter a with acute,
+                                  U+00E1 ISOlat1 -->
+<!ENTITY acirc   "&#226;"> <!-- latin small letter a with circumflex,
+                                  U+00E2 ISOlat1 -->
+<!ENTITY atilde  "&#227;"> <!-- latin small letter a with tilde,
+                                  U+00E3 ISOlat1 -->
+<!ENTITY auml    "&#228;"> <!-- latin small letter a with diaeresis,
+                                  U+00E4 ISOlat1 -->
+<!ENTITY aring   "&#229;"> <!-- latin small letter a with ring above
+                                  = latin small letter a ring,
+                                  U+00E5 ISOlat1 -->
+<!ENTITY aelig   "&#230;"> <!-- latin small letter ae
+                                  = latin small ligature ae, U+00E6 ISOlat1 -->
+<!ENTITY ccedil  "&#231;"> <!-- latin small letter c with cedilla,
+                                  U+00E7 ISOlat1 -->
+<!ENTITY egrave  "&#232;"> <!-- latin small letter e with grave,
+                                  U+00E8 ISOlat1 -->
+<!ENTITY eacute  "&#233;"> <!-- latin small letter e with acute,
+                                  U+00E9 ISOlat1 -->
+<!ENTITY ecirc   "&#234;"> <!-- latin small letter e with circumflex,
+                                  U+00EA ISOlat1 -->
+<!ENTITY euml    "&#235;"> <!-- latin small letter e with diaeresis,
+                                  U+00EB ISOlat1 -->
+<!ENTITY igrave  "&#236;"> <!-- latin small letter i with grave,
+                                  U+00EC ISOlat1 -->
+<!ENTITY iacute  "&#237;"> <!-- latin small letter i with acute,
+                                  U+00ED ISOlat1 -->
+<!ENTITY icirc   "&#238;"> <!-- latin small letter i with circumflex,
+                                  U+00EE ISOlat1 -->
+<!ENTITY iuml    "&#239;"> <!-- latin small letter i with diaeresis,
+                                  U+00EF ISOlat1 -->
+<!ENTITY eth     "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
+<!ENTITY ntilde  "&#241;"> <!-- latin small letter n with tilde,
+                                  U+00F1 ISOlat1 -->
+<!ENTITY ograve  "&#242;"> <!-- latin small letter o with grave,
+                                  U+00F2 ISOlat1 -->
+<!ENTITY oacute  "&#243;"> <!-- latin small letter o with acute,
+                                  U+00F3 ISOlat1 -->
+<!ENTITY ocirc   "&#244;"> <!-- latin small letter o with circumflex,
+                                  U+00F4 ISOlat1 -->
+<!ENTITY otilde  "&#245;"> <!-- latin small letter o with tilde,
+                                  U+00F5 ISOlat1 -->
+<!ENTITY ouml    "&#246;"> <!-- latin small letter o with diaeresis,
+                                  U+00F6 ISOlat1 -->
+<!ENTITY divide  "&#247;"> <!-- division sign, U+00F7 ISOnum -->
+<!ENTITY oslash  "&#248;"> <!-- latin small letter o with stroke,
+                                  = latin small letter o slash,
+                                  U+00F8 ISOlat1 -->
+<!ENTITY ugrave  "&#249;"> <!-- latin small letter u with grave,
+                                  U+00F9 ISOlat1 -->
+<!ENTITY uacute  "&#250;"> <!-- latin small letter u with acute,
+                                  U+00FA ISOlat1 -->
+<!ENTITY ucirc   "&#251;"> <!-- latin small letter u with circumflex,
+                                  U+00FB ISOlat1 -->
+<!ENTITY uuml    "&#252;"> <!-- latin small letter u with diaeresis,
+                                  U+00FC ISOlat1 -->
+<!ENTITY yacute  "&#253;"> <!-- latin small letter y with acute,
+                                  U+00FD ISOlat1 -->
+<!ENTITY thorn   "&#254;"> <!-- latin small letter thorn,
+                                  U+00FE ISOlat1 -->
+<!ENTITY yuml    "&#255;"> <!-- latin small letter y with diaeresis,
+                                  U+00FF ISOlat1 -->
diff --git a/documentation/dtd/xhtml-special.ent b/documentation/dtd/xhtml-special.ent
new file mode 100644 (file)
index 0000000..fefb15d
--- /dev/null
@@ -0,0 +1,77 @@
+<!-- Special characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLspecial PUBLIC
+       "-//W3C//ENTITIES Special//EN//HTML">
+     %HTMLspecial; -->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+     New names (i.e., not in ISO 8879 list) do not clash with any
+     existing ISO 8879 entity names. ISO 10646 character numbers
+     are given for each character, in hex.  values are decimal
+     conversions of the ISO 10646 values and refer to the document
+     character set. Names are ISO 10646 names. 
+
+-->
+
+<!-- C0 Controls and Basic Latin -->
+<!ENTITY quot    "&#34;">   <!-- quotation mark = APL quote,
+                                    U+0022 ISOnum -->
+<!ENTITY amp     "&#38;">    <!-- ampersand, U+0026 ISOnum -->
+<!ENTITY lt      "&#60;">    <!-- less-than sign, U+003C ISOnum -->
+<!ENTITY gt      "&#62;">    <!-- greater-than sign, U+003E ISOnum -->
+
+<!-- Latin Extended-A -->
+<!ENTITY OElig   "&#338;">   <!-- latin capital ligature OE,
+                                    U+0152 ISOlat2 -->
+<!ENTITY oelig   "&#339;">   <!-- latin small ligature oe, U+0153 ISOlat2 -->
+<!-- ligature is a misnomer, this is a separate character in some languages -->
+<!ENTITY Scaron   "&#352;">  <!-- latin capital letter S with caron,
+                                    U+0160 ISOlat2 -->
+<!ENTITY scaron   "&#353;">  <!-- latin small letter s with caron,
+                                    U+0161 ISOlat2 -->
+<!ENTITY Yuml     "&#376;">  <!-- latin capital letter Y with diaeresis,
+                                    U+0178 ISOlat2 -->
+
+<!-- Spacing Modifier Letters -->
+<!ENTITY circ     "&#710;">  <!-- modifier letter circumflex accent,
+                                    U+02C6 ISOpub -->
+<!ENTITY tilde    "&#732;">  <!-- small tilde, U+02DC ISOdia -->
+
+<!-- General Punctuation -->
+<!ENTITY ensp     "&#8194;"> <!-- en space, U+2002 ISOpub -->
+<!ENTITY emsp     "&#8195;"> <!-- em space, U+2003 ISOpub -->
+<!ENTITY thinsp   "&#8201;"> <!-- thin space, U+2009 ISOpub -->
+<!ENTITY zwnj     "&#8204;"> <!-- zero width non-joiner,
+                                    U+200C NEW RFC 2070 -->
+<!ENTITY zwj      "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
+<!ENTITY lrm      "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
+<!ENTITY rlm      "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
+<!ENTITY ndash    "&#8211;"> <!-- en dash, U+2013 ISOpub -->
+<!ENTITY mdash    "&#8212;"> <!-- em dash, U+2014 ISOpub -->
+<!ENTITY lsquo    "&#8216;"> <!-- left single quotation mark,
+                                    U+2018 ISOnum -->
+<!ENTITY rsquo    "&#8217;"> <!-- right single quotation mark,
+                                    U+2019 ISOnum -->
+<!ENTITY sbquo    "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
+<!ENTITY ldquo    "&#8220;"> <!-- left double quotation mark,
+                                    U+201C ISOnum -->
+<!ENTITY rdquo    "&#8221;"> <!-- right double quotation mark,
+                                    U+201D ISOnum -->
+<!ENTITY bdquo    "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
+<!ENTITY dagger   "&#8224;"> <!-- dagger, U+2020 ISOpub -->
+<!ENTITY Dagger   "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
+<!ENTITY permil   "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
+<!ENTITY lsaquo   "&#8249;"> <!-- single left-pointing angle quotation mark,
+                                    U+2039 ISO proposed -->
+<!-- lsaquo is proposed but not yet ISO standardized -->
+<!ENTITY rsaquo   "&#8250;"> <!-- single right-pointing angle quotation mark,
+                                    U+203A ISO proposed -->
+<!-- rsaquo is proposed but not yet ISO standardized -->
+<!ENTITY euro    "&#8364;">  <!-- euro sign, U+20AC NEW -->
diff --git a/documentation/dtd/xhtml-symbol.ent b/documentation/dtd/xhtml-symbol.ent
new file mode 100644 (file)
index 0000000..e950aad
--- /dev/null
@@ -0,0 +1,241 @@
+<!-- Mathematical, Greek and Symbolic characters for HTML -->
+
+<!-- Character entity set. Typical invocation:
+     <!ENTITY % HTMLsymbol PUBLIC
+       "-//W3C//ENTITIES Symbols//EN//HTML">
+     %HTMLsymbol; -->
+
+<!-- Portions (C) International Organization for Standardization 1986:
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+-->
+
+<!-- Relevant ISO entity set is given unless names are newly introduced.
+     New names (i.e., not in ISO 8879 list) do not clash with any
+     existing ISO 8879 entity names. ISO 10646 character numbers
+     are given for each character, in hex.  values are decimal
+     conversions of the ISO 10646 values and refer to the document
+     character set. Names are ISO 10646 names. 
+
+-->
+
+<!-- Latin Extended-B -->
+<!ENTITY fnof      "&#402;"> <!-- latin small f with hook = function
+                                    = florin, U+0192 ISOtech -->
+
+<!-- Greek -->
+<!ENTITY Alpha     "&#913;"> <!-- greek capital letter alpha, U+0391 -->
+<!ENTITY Beta      "&#914;"> <!-- greek capital letter beta, U+0392 -->
+<!ENTITY Gamma     "&#915;"> <!-- greek capital letter gamma,
+                                    U+0393 ISOgrk3 -->
+<!ENTITY Delta     "&#916;"> <!-- greek capital letter delta,
+                                    U+0394 ISOgrk3 -->
+<!ENTITY Epsilon   "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
+<!ENTITY Zeta      "&#918;"> <!-- greek capital letter zeta, U+0396 -->
+<!ENTITY Eta       "&#919;"> <!-- greek capital letter eta, U+0397 -->
+<!ENTITY Theta     "&#920;"> <!-- greek capital letter theta,
+                                    U+0398 ISOgrk3 -->
+<!ENTITY Iota      "&#921;"> <!-- greek capital letter iota, U+0399 -->
+<!ENTITY Kappa     "&#922;"> <!-- greek capital letter kappa, U+039A -->
+<!ENTITY Lambda    "&#923;"> <!-- greek capital letter lambda,
+                                    U+039B ISOgrk3 -->
+<!ENTITY Mu        "&#924;"> <!-- greek capital letter mu, U+039C -->
+<!ENTITY Nu        "&#925;"> <!-- greek capital letter nu, U+039D -->
+<!ENTITY Xi        "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
+<!ENTITY Omicron   "&#927;"> <!-- greek capital letter omicron, U+039F -->
+<!ENTITY Pi        "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
+<!ENTITY Rho       "&#929;"> <!-- greek capital letter rho, U+03A1 -->
+<!-- there is no Sigmaf, and no U+03A2 character either -->
+<!ENTITY Sigma     "&#931;"> <!-- greek capital letter sigma,
+                                    U+03A3 ISOgrk3 -->
+<!ENTITY Tau       "&#932;"> <!-- greek capital letter tau, U+03A4 -->
+<!ENTITY Upsilon   "&#933;"> <!-- greek capital letter upsilon,
+                                    U+03A5 ISOgrk3 -->
+<!ENTITY Phi       "&#934;"> <!-- greek capital letter phi,
+                                    U+03A6 ISOgrk3 -->
+<!ENTITY Chi       "&#935;"> <!-- greek capital letter chi, U+03A7 -->
+<!ENTITY Psi       "&#936;"> <!-- greek capital letter psi,
+                                    U+03A8 ISOgrk3 -->
+<!ENTITY Omega     "&#937;"> <!-- greek capital letter omega,
+                                    U+03A9 ISOgrk3 -->
+
+<!ENTITY alpha     "&#945;"> <!-- greek small letter alpha,
+                                    U+03B1 ISOgrk3 -->
+<!ENTITY beta      "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
+<!ENTITY gamma     "&#947;"> <!-- greek small letter gamma,
+                                    U+03B3 ISOgrk3 -->
+<!ENTITY delta     "&#948;"> <!-- greek small letter delta,
+                                    U+03B4 ISOgrk3 -->
+<!ENTITY epsilon   "&#949;"> <!-- greek small letter epsilon,
+                                    U+03B5 ISOgrk3 -->
+<!ENTITY zeta      "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
+<!ENTITY eta       "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
+<!ENTITY theta     "&#952;"> <!-- greek small letter theta,
+                                    U+03B8 ISOgrk3 -->
+<!ENTITY iota      "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
+<!ENTITY kappa     "&#954;"> <!-- greek small letter kappa,
+                                    U+03BA ISOgrk3 -->
+<!ENTITY lambda    "&#955;"> <!-- greek small letter lambda,
+                                    U+03BB ISOgrk3 -->
+<!ENTITY mu        "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
+<!ENTITY nu        "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
+<!ENTITY xi        "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
+<!ENTITY omicron   "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
+<!ENTITY pi        "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
+<!ENTITY rho       "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
+<!ENTITY sigmaf    "&#962;"> <!-- greek small letter final sigma,
+                                    U+03C2 ISOgrk3 -->
+<!ENTITY sigma     "&#963;"> <!-- greek small letter sigma,
+                                    U+03C3 ISOgrk3 -->
+<!ENTITY tau       "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
+<!ENTITY upsilon   "&#965;"> <!-- greek small letter upsilon,
+                                    U+03C5 ISOgrk3 -->
+<!ENTITY phi       "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
+<!ENTITY chi       "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
+<!ENTITY psi       "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
+<!ENTITY omega     "&#969;"> <!-- greek small letter omega,
+                                    U+03C9 ISOgrk3 -->
+<!ENTITY thetasym  "&#977;"> <!-- greek small letter theta symbol,
+                                    U+03D1 NEW -->
+<!ENTITY upsih     "&#978;"> <!-- greek upsilon with hook symbol,
+                                    U+03D2 NEW -->
+<!ENTITY piv       "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
+
+<!-- General Punctuation -->
+<!ENTITY bull      "&#8226;"> <!-- bullet = black small circle,
+                                     U+2022 ISOpub  -->
+<!-- bullet is NOT the same as bullet operator, U+2219 -->
+<!ENTITY hellip    "&#8230;"> <!-- horizontal ellipsis = three dot leader,
+                                     U+2026 ISOpub  -->
+<!ENTITY prime     "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
+<!ENTITY Prime     "&#8243;"> <!-- double prime = seconds = inches,
+                                     U+2033 ISOtech -->
+<!ENTITY oline     "&#8254;"> <!-- overline = spacing overscore,
+                                     U+203E NEW -->
+<!ENTITY frasl     "&#8260;"> <!-- fraction slash, U+2044 NEW -->
+
+<!-- Letterlike Symbols -->
+<!ENTITY weierp    "&#8472;"> <!-- script capital P = power set
+                                     = Weierstrass p, U+2118 ISOamso -->
+<!ENTITY image     "&#8465;"> <!-- blackletter capital I = imaginary part,
+                                     U+2111 ISOamso -->
+<!ENTITY real      "&#8476;"> <!-- blackletter capital R = real part symbol,
+                                     U+211C ISOamso -->
+<!ENTITY trade     "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
+<!ENTITY alefsym   "&#8501;"> <!-- alef symbol = first transfinite cardinal,
+                                     U+2135 NEW -->
+<!-- alef symbol is NOT the same as hebrew letter alef,
+     U+05D0 although the same glyph could be used to depict both characters -->
+
+<!-- Arrows -->
+<!ENTITY larr      "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
+<!ENTITY uarr      "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
+<!ENTITY rarr      "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
+<!ENTITY darr      "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
+<!ENTITY harr      "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
+<!ENTITY crarr     "&#8629;"> <!-- downwards arrow with corner leftwards
+                                     = carriage return, U+21B5 NEW -->
+<!ENTITY lArr      "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
+<!-- ISO 10646 does not say that lArr is the same as the 'is implied by' arrow
+    but also does not have any other character for that function. So ? lArr can
+    be used for 'is implied by' as ISOtech suggests -->
+<!ENTITY uArr      "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
+<!ENTITY rArr      "&#8658;"> <!-- rightwards double arrow,
+                                     U+21D2 ISOtech -->
+<!-- ISO 10646 does not say this is the 'implies' character but does not have 
+     another character with this function so ?
+     rArr can be used for 'implies' as ISOtech suggests -->
+<!ENTITY dArr      "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
+<!ENTITY hArr      "&#8660;"> <!-- left right double arrow,
+                                     U+21D4 ISOamsa -->
+
+<!-- Mathematical Operators -->
+<!ENTITY forall    "&#8704;"> <!-- for all, U+2200 ISOtech -->
+<!ENTITY part      "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
+<!ENTITY exist     "&#8707;"> <!-- there exists, U+2203 ISOtech -->
+<!ENTITY empty     "&#8709;"> <!-- empty set = null set = diameter,
+                                     U+2205 ISOamso -->
+<!ENTITY nabla     "&#8711;"> <!-- nabla = backward difference,
+                                     U+2207 ISOtech -->
+<!ENTITY isin      "&#8712;"> <!-- element of, U+2208 ISOtech -->
+<!ENTITY notin     "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
+<!ENTITY ni        "&#8715;"> <!-- contains as member, U+220B ISOtech -->
+<!-- should there be a more memorable name than 'ni'? -->
+<!ENTITY prod      "&#8719;"> <!-- n-ary product = product sign,
+                                     U+220F ISOamsb -->
+<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
+     the same glyph might be used for both -->
+<!ENTITY sum       "&#8721;"> <!-- n-ary sumation, U+2211 ISOamsb -->
+<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
+     though the same glyph might be used for both -->
+<!ENTITY minus     "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
+<!ENTITY lowast    "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
+<!ENTITY radic     "&#8730;"> <!-- square root = radical sign,
+                                     U+221A ISOtech -->
+<!ENTITY prop      "&#8733;"> <!-- proportional to, U+221D ISOtech -->
+<!ENTITY infin     "&#8734;"> <!-- infinity, U+221E ISOtech -->
+<!ENTITY ang       "&#8736;"> <!-- angle, U+2220 ISOamso -->
+<!ENTITY and       "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
+<!ENTITY or        "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
+<!ENTITY cap       "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
+<!ENTITY cup       "&#8746;"> <!-- union = cup, U+222A ISOtech -->
+<!ENTITY int       "&#8747;"> <!-- integral, U+222B ISOtech -->
+<!ENTITY there4    "&#8756;"> <!-- therefore, U+2234 ISOtech -->
+<!ENTITY sim       "&#8764;"> <!-- tilde operator = varies with = similar to,
+                                     U+223C ISOtech -->
+<!-- tilde operator is NOT the same character as the tilde, U+007E,
+     although the same glyph might be used to represent both  -->
+<!ENTITY cong      "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
+<!ENTITY asymp     "&#8776;"> <!-- almost equal to = asymptotic to,
+                                     U+2248 ISOamsr -->
+<!ENTITY ne        "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
+<!ENTITY equiv     "&#8801;"> <!-- identical to, U+2261 ISOtech -->
+<!ENTITY le        "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
+<!ENTITY ge        "&#8805;"> <!-- greater-than or equal to,
+                                     U+2265 ISOtech -->
+<!ENTITY sub       "&#8834;"> <!-- subset of, U+2282 ISOtech -->
+<!ENTITY sup       "&#8835;"> <!-- superset of, U+2283 ISOtech -->
+<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol 
+     font encoding and is not included. Should it be, for symmetry?
+     It is in ISOamsn  --> 
+<!ENTITY nsub      "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
+<!ENTITY sube      "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
+<!ENTITY supe      "&#8839;"> <!-- superset of or equal to,
+                                     U+2287 ISOtech -->
+<!ENTITY oplus     "&#8853;"> <!-- circled plus = direct sum,
+                                     U+2295 ISOamsb -->
+<!ENTITY otimes    "&#8855;"> <!-- circled times = vector product,
+                                     U+2297 ISOamsb -->
+<!ENTITY perp      "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
+                                     U+22A5 ISOtech -->
+<!ENTITY sdot      "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
+<!-- dot operator is NOT the same character as U+00B7 middle dot -->
+
+<!-- Miscellaneous Technical -->
+<!ENTITY lceil     "&#8968;"> <!-- left ceiling = apl upstile,
+                                     U+2308 ISOamsc  -->
+<!ENTITY rceil     "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
+<!ENTITY lfloor    "&#8970;"> <!-- left floor = apl downstile,
+                                     U+230A ISOamsc  -->
+<!ENTITY rfloor    "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
+<!ENTITY lang      "&#9001;"> <!-- left-pointing angle bracket = bra,
+                                     U+2329 ISOtech -->
+<!-- lang is NOT the same character as U+003C 'less than' 
+     or U+2039 'single left-pointing angle quotation mark' -->
+<!ENTITY rang      "&#9002;"> <!-- right-pointing angle bracket = ket,
+                                     U+232A ISOtech -->
+<!-- rang is NOT the same character as U+003E 'greater than' 
+     or U+203A 'single right-pointing angle quotation mark' -->
+
+<!-- Geometric Shapes -->
+<!ENTITY loz       "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
+
+<!-- Miscellaneous Symbols -->
+<!ENTITY spades    "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
+<!-- black here seems to mean filled as opposed to hollow -->
+<!ENTITY clubs     "&#9827;"> <!-- black club suit = shamrock,
+                                     U+2663 ISOpub -->
+<!ENTITY hearts    "&#9829;"> <!-- black heart suit = valentine,
+                                     U+2665 ISOpub -->
+<!ENTITY diams     "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/documentation/lcd4linux/Makefile b/documentation/lcd4linux/Makefile
new file mode 100644 (file)
index 0000000..2519f22
--- /dev/null
@@ -0,0 +1,59 @@
+# Path
+DIR = $(notdir $(PWD))
+OUTPUT = ../HTML
+
+ifeq "$(DIR)" "lcd4linux"
+       DIR = 
+endif
+
+ifeq "$(DIR)" ""
+       XSLTPROC = xsltproc
+else
+       XSLTPROC = xsltproc --stringparam class $(DIR) --stringparam root "../"
+endif
+
+XMLVALID = xmllint --noout --valid
+
+NAMES=$(shell find . -name "*.xml" -exec basename {} .xml \;)
+
+html: $(patsubst %.xml,%.html,$(wildcard *.xml))
+html-forced: $(patsubst %.xml,%.html-forced,$(wildcard *.xml))
+
+%.html: %.xml %.xml-check output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$@
+
+%.html-forced: %.xml output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$(patsubst %.xml,%.html,$<)
+
+check: $(patsubst %.xml, %.xml-check, $(wildcard *.xml))
+
+%.xml-check: %.xml
+       @echo "*** Validation of $<"
+       $(XMLVALID) $< 
+
+output:
+       test -d $(OUTPUT) || `mkdir $(OUTPUT); cp ../data/doc.css $(OUTPUT); cp  -R ../data/images $(OUTPUT)`
+       test -d $(OUTPUT)/$(DIR) || mkdir $(OUTPUT)/$(DIR)
+
+clean:
+       rm -f $(OUTPUT)/$(DIR)/*.html
+
+clean-bak:
+       rm -f *~ *.bak
+
+help:
+       @echo -e ""
+       @echo -e "Usage :"
+       @echo -e "-------"
+       @echo -e "make  or  make html :  builds all possible html pages from xml files"
+       @echo -e "make %.html :          builds the %.html page from %.xml"
+       @echo -e ""
+       @echo -e "make html-forced  :    builds all possible html pages from xml files (no validity check)"
+       @echo -e "make %.html-forced :   builds the %.html page from %.xml (no validity check)"
+       @echo -e ""
+       @echo -e "make check :           checks the validity of all possible xml files"
+       @echo -e "make %.xml-check :     checks the validity of %.xml"
+       @echo -e ""
+       @echo -e "make clean :           deletes all generated html pages"
+       @echo -e "make clean-bak :       deletes *~ and *.bak files"
+       @echo -e ""
diff --git a/documentation/lcd4linux/bug_report.xml b/documentation/lcd4linux/bug_report.xml
new file mode 100644 (file)
index 0000000..49bf743
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>How to report bugs or get support</title>
+  <ref>bug_report</ref>
+  <links>
+    <link ref="contact"/>
+  </links>
+</head>
+<body>
+You've checked twice your configuration, but &l4l; keeps complaining, prints horrible things on your display or even crashes. What to do ?
+
+<h2>Configuration problems and minor bugs</h2>
+<ul>
+<li>Your display doesn't want to work, prints strange things or keeps blank ?</li>
+<li>You can't get a plugin to work, there are ???? or **** where you wanted to display the temperature ?</li>
+<li>You noticed a strange behavior from &l4l; or a plugin ?</li>
+</ul>
+You should contact the lcd4linux-users maillist, and post a detailled report containing at least :
+<ul>
+<li>the &l4l; version you use.</li>
+<li>a description of what happens</li>
+<li>if relevant, a description of your display (especially for HD44780-based displays)</li>
+<li>a log of &l4l; output ( <tt>lcd4linux -vvv > log</tt> )</li>
+<li>a copy of your lcd4linux.conf file</li>
+</ul>
+<note>If you use some plugins (mysql, mail, ...), lcd4linux.conf may contain passwords and other private information. For your privacy, we recommend you to replace these information with ***** before attaching your configuration file</note>
+
+</body>
+</doc>
diff --git a/documentation/lcd4linux/example.xml b/documentation/lcd4linux/example.xml
new file mode 100644 (file)
index 0000000..63702e0
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>The title of the page The title of the page</title>
+  <version>0.1</version>
+  <ref>doc_example</ref>
+  <links>
+    <link ref="i2c_sensors"/>
+    <link url="http://lcd4linux.sf.net"/>
+    <link url="http://lcd4linux.sf.net">SourceForge</link>
+  </links>
+  <history>
+    <revision version="0.1" by="Xavier">
+      The first, and only version ever ;)
+    </revision>
+     <revision version="0.0" by="Xavier">
+      TEST
+    </revision>   
+  </history>
+  <state finished="true" proofread="true"/>
+</head>
+<body>
+<h2>This is the text of the page, we can use xhtml tags here and there are some helpers : </h2>
+<cmd>&lt;cmd&gt; Will be used to indicate <tt>console commands</tt>, or other things</cmd>
+<conf>&lt;conf&gt; Is to format lcd4linux.conf examples</conf>
+<note>&lt;note&gt; Will display a div with the message, to add a tip, or an explanation</note>
+<warn>&lt;warn&gt; Will work just as &lt;note&gt;, but for more important messages</warn>
+<new date="01/01/01" title="test new">&lt;new&gt; is to display boxes with news, for the main page or, as an example for displays/plugins pages to show news in the features</new> <br />
+
+<link ref="plugin_i2c_sensors"/>
+
+There will be other helpers : &lt;image&gt;, &lt;link&gt;, &lt;table&gt; ...<br />
+
+If you look at the sources of this page, there are a lot of information in the head. They will be used for internal processing, and some will be displayed (for example &lt;links&gt; will define links to be put in a &apos;See also&apos; box, with links to related articles, websites, ...<br />
+       
+We&apos;ll use &apos;standard&apos; xhtml tags &lt;br /&gt; <b>&lt;b&gt;</b> <i>&lt;i&gt;</i> <tt>&lt;tt&gt;</tt> <small>&lt;small&gt;</small> <big>&lt;big&gt;</big> and others, not really proceced by xslt.
+ <h2>&lt;h2&gt;</h2> <h3>&lt;h3&gt;</h3> <h4>&lt;h4&gt;</h4> <h5>&lt;h5&gt;</h5> <h6>&lt;h6&gt;</h6> 
+ <h2>test</h2>
+ <h3>one</h3>
+ <h3>two</h3>
+ <h3>three</h3>
+ <h2>AAAA</h2>
+ <h3>one</h3>
+ <h3>two</h3>
+ <h3>three</h3>
+</body>
+</doc>
diff --git a/documentation/lcd4linux/index.xml b/documentation/lcd4linux/index.xml
new file mode 100644 (file)
index 0000000..93f75eb
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>&L4L; documentation index</title>
+    <ref>index</ref>
+</head>
+<body>
+<h2>&L4L;</h2>
+<index/>
+<h2><a href="drivers/index.html">Drivers</a></h2>
+<index class="drivers"/>
+<h2><a href="plugins/index.html">Plugins</a></h2>
+<index class="plugins"/>
+</body>
+</doc>
diff --git a/documentation/lcd4linux/write_doc.xml b/documentation/lcd4linux/write_doc.xml
new file mode 100644 (file)
index 0000000..b8d243d
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>How to write documentation for &l4l; ?</title>
+  <ref>write_doc</ref>
+<!--  <links>
+    <link ref="i2c_sensors"/>
+  </links>-->
+</head>
+<body>
+<h2>Overview</h2>
+<p>The &l4l; documentation is composed of XML files which are processed with XSL stylesheets to produce XHTML files. 
+There these XML files are writen in a syntax similar to the HTML syntax, plus some helpers.</p>
+<p>The whole documentation is generated through a make system, which uses <tt>xmllint</tt> to check the validy of the xml files and <tt>xsltproc</tt> to process them and generate the XHTML pages. <i>These two programs are mandatory</i></p>
+
+<h2>The syntax</h2>
+A doc page looks like this :
+<conf>&lt;?xml version="1.0" encoding="UTF-8" standalone="no" ?&gt;
+&lt;?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?&gt;
+&lt;!DOCTYPE doc SYSTEM "../dtd/doc.dtd"&gt;
+&lt;doc&gt;
+&lt;head&gt;
+  &lt;title&gt;How to write documentation for &l4l; ?&lt;/title&gt;
+  &lt;ref&gt;write_doc&lt;/ref&gt;
+  &lt;links&gt;
+    &lt;link ref="http://lcd4linux.sf.net"/&gt;
+  &lt;/links&gt;
+&lt;/head&gt;
+&lt;body&gt;
+...
+&lt;/body&gt;
+&lt;/doc&gt;
+</conf>
+
+<li>The three first lines are the preambule of the file, don't touch them.</li>
+<li>The root of the document is <tt>&lt;doc&gt;</tt>, it's the equivalent of &lt;html&gt;.</li>
+<li>Then, there's a <tt>&lt;head&gt;</tt> node, containing the information about the page. See later for the childs.</li>
+<li>The core of the doc is the &lt;body&gt; node, like in HTML, containing the content.</li>
+
+<h3>The &lt;head&gt;</h3>
+The head contains some information about the document :
+<li>&lt;title&gt; is the title of the document, which will be displayed as a &lt;h1&gt;</li>
+<li>&lt;ref&gt; is a unique reference for the document, which is assumed to be the same as in <i>references.xml</i> (we'll discuss later about this file)</li>
+<li>&lt;links&gt; is the section responsible of the "See Alo" box, containing links to other help pages, or to urls. It can contain several &lt;link&gt; elements, whose syntax is explained in the next part.</li>
+<li>There may be other elements, but we'll only use these ones for now.</li>
+
+<h3>The helpers</h3>
+You can use a lot of helpers in the body :
+<li>&lt;link&gt; is a helper to create links. It is used with one of these two arguments :
+<ul>
+<li><tt>&lt;link ref="xxx"/&gt;</tt> will create a link to the documentation page associated with this reference (defined in <i>references.xml</i>)</li>
+<li><tt>&lt;link url="http://..."/&gt;</tt> will create a link to the url</li>
+</ul>
+Note that if you don't provide a text, the text of the link will be the label of the reference or the url. You can specify a text writing <tt>&lt;link url="http://..."&gt;TEXT&lt;/link&gt;</tt>
+</li>
+<warn>As this is XML, you <b>must</b> close all the tags you open, or use self-closing tags for empty ones :<br/>For example, you have to write <tt>&lt;br/&gt;</tt> but not <tt>&lt;br&gt;.</tt></warn>
+
+<li>&lt;cmd&gt; Opens a box with write text on black background, used to indicate something's happening in a console (compilation, logs, ...). The text is in "pre" mode, so spaces and newlines are kept, no need of &amp;nbsp; or &lt;br/&gt;, <b>But beware of &lt; and &gt;</b> (you must replace them with &amp;lt; and &amp;gt;)</li>
+<cmd>xav:~$ echo "An example of &lt;cmd&gt; box"
+An example of &lt;cmd&gt; box
+xav:~$
+</cmd>
+<li>&lt;conf&gt; works like &lt;cmd&gt; but with black text on grey background, to print lcd4linux.conf examples.</li>
+<conf>Widget Lightning {
+    class 'icon'
+    speed 100
+    visible cpu('busy', 500)-50
+    bitmap {
+        row1 '...***'
+        row2 '..***.'
+        row3 '.***..'
+        row4 '.****.'
+        row5 '..**..'
+        row6 '.**...'
+        row7 '**....'
+        row8 '*.....'
+    }
+}</conf>
+<li>&lt;note&gt; is to display a box with a small icon, to point out a detail, or an advice</li>
+<note>To dry a wet cat, don't put it in a microwave ;)</note>
+<li>&lt;warn&gt; works like &lt;note&gt; but with a red exclamation mark and a red border, to display warnings. In general, use a note for a detail or an advice and warn to point configuration problems, hardware hazards, or other happy things ;)</li>
+<warn>We're not responsible for damages caused to your microwave if you don't read the above note !</warn>
+<li>&lt;index&gt; is a cool thing. It displays the list of pages of a specified class. It's used to display indexes. For example &lt;index class="drivers"/&gt; will display a list of all pages about drivers. If there's no class specified, it'll parse the list of pages of the "lcd4linux" class.</li>
+<li>&lt;new&gt; is in the DTD, but is not yet implemented :/</li>
+<li>You can use any other XHTML-valid tag. The most used should be : &lt;br/&gt; &lt;h2&gt; &lt;h3&gt; &lt;li&gt; &lt;b&gt; &lt;i&gt; &lt;tt&gt; ...</li>
+
+<h3>references.xml</h3>
+There's a file in <tt>data/</tt> called <tt>references.xml</tt>. It isn't processed directly, but is used to parse links and indexes. It's syntax is quite straightforward, so I won't explain it.<br/>
+You must add a new entry in it for each page you write so that other pages can have links to it and index it.
+<note>A null &lt;class/&gt; attribute corresponds to the lcd4linux class. It's not a bug, it's a feature, used to make links (the lcd4linux class is in the root of the documentation)</note>
+
+<h2>The compilation system</h2>
+The documentation is compiled with a Makefile build system. There's a toplevel Makefile which calls the apropriate targets in each subdirs which contains xml files (for the moment, <tt>lcd4linux</tt>, <tt>drivers</tt> and <tt>plugins</tt>). In these subdirs, the Makefile is a link to <tt>Makefile.generic</tt>.<br/>
+To compile the documentation, just type make at the toplevel, and look in the <tt>HTML</tt> folder. Type make help for help ;)
+<warn>Two programs are mandatory to build the documentation :
+<ul><li><tt>xmllint</tt> from libxml2 is used to validate the xml pages to be processed. It's in the debian package <tt>libxml2</tt></li>
+<li><tt>xsltproc</tt> from libxslt processes the xml files to generate the html pages. It's in the libxslt tarballs or in the <tt>xsltproc</tt> debian package</li></ul>
+</warn>
+</body>
+</doc>
diff --git a/documentation/plugins/Makefile b/documentation/plugins/Makefile
new file mode 100644 (file)
index 0000000..2519f22
--- /dev/null
@@ -0,0 +1,59 @@
+# Path
+DIR = $(notdir $(PWD))
+OUTPUT = ../HTML
+
+ifeq "$(DIR)" "lcd4linux"
+       DIR = 
+endif
+
+ifeq "$(DIR)" ""
+       XSLTPROC = xsltproc
+else
+       XSLTPROC = xsltproc --stringparam class $(DIR) --stringparam root "../"
+endif
+
+XMLVALID = xmllint --noout --valid
+
+NAMES=$(shell find . -name "*.xml" -exec basename {} .xml \;)
+
+html: $(patsubst %.xml,%.html,$(wildcard *.xml))
+html-forced: $(patsubst %.xml,%.html-forced,$(wildcard *.xml))
+
+%.html: %.xml %.xml-check output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$@
+
+%.html-forced: %.xml output
+       $(XSLTPROC) $< > $(OUTPUT)/$(DIR)/$(patsubst %.xml,%.html,$<)
+
+check: $(patsubst %.xml, %.xml-check, $(wildcard *.xml))
+
+%.xml-check: %.xml
+       @echo "*** Validation of $<"
+       $(XMLVALID) $< 
+
+output:
+       test -d $(OUTPUT) || `mkdir $(OUTPUT); cp ../data/doc.css $(OUTPUT); cp  -R ../data/images $(OUTPUT)`
+       test -d $(OUTPUT)/$(DIR) || mkdir $(OUTPUT)/$(DIR)
+
+clean:
+       rm -f $(OUTPUT)/$(DIR)/*.html
+
+clean-bak:
+       rm -f *~ *.bak
+
+help:
+       @echo -e ""
+       @echo -e "Usage :"
+       @echo -e "-------"
+       @echo -e "make  or  make html :  builds all possible html pages from xml files"
+       @echo -e "make %.html :          builds the %.html page from %.xml"
+       @echo -e ""
+       @echo -e "make html-forced  :    builds all possible html pages from xml files (no validity check)"
+       @echo -e "make %.html-forced :   builds the %.html page from %.xml (no validity check)"
+       @echo -e ""
+       @echo -e "make check :           checks the validity of all possible xml files"
+       @echo -e "make %.xml-check :     checks the validity of %.xml"
+       @echo -e ""
+       @echo -e "make clean :           deletes all generated html pages"
+       @echo -e "make clean-bak :       deletes *~ and *.bak files"
+       @echo -e ""
diff --git a/documentation/plugins/index.xml b/documentation/plugins/index.xml
new file mode 100644 (file)
index 0000000..8e803ae
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<?xml-stylesheet type="text/xsl" href="../xsl/doc.xsl"?>
+<!DOCTYPE doc SYSTEM "../dtd/doc.dtd">
+<doc>
+<head>
+  <title>&L4L; plugins</title>
+  <ref>plugins_index</ref>
+  <links/>
+</head>
+<body>
+<h2>Plugins</h2>
+<index class="plugins"/>
+</body>
+</doc>
diff --git a/documentation/xsl/body.xsl b/documentation/xsl/body.xsl
new file mode 100644 (file)
index 0000000..8b13ebd
--- /dev/null
@@ -0,0 +1,20 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<!--The content of the page-->
+
+<xsl:template match="body" node="doc">
+  <xsl:element name="body">
+  <!--Here will be added html code for the layout-->
+    <xsl:apply-templates select="/doc/head/links"/>  
+    <xsl:element name="h1">
+      <xsl:value-of select="/doc/head/title"/>
+    </xsl:element>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/documentation/xsl/doc.xsl b/documentation/xsl/doc.xsl
new file mode 100644 (file)
index 0000000..1a2045f
--- /dev/null
@@ -0,0 +1,29 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<xsl:output omit-xml-declaration="yes" method="xml" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<xsl:variable name="references" select="document('../data/references.xml')/references"/>
+<xsl:param name="class" select="''"/>
+<xsl:param name="root" select="''"/>
+
+<!--Includes-->
+<xsl:include href="head.xsl"/>
+<xsl:include href="body.xsl"/>
+<xsl:include href="helpers.xsl"/>
+<xsl:include href="xhtml.xsl"/>
+<xsl:include href="references.xsl"/>
+
+<!--The start point-->
+<xsl:template match="doc">
+  <xsl:element name="html">
+    <xsl:apply-templates select="head"/>
+    <xsl:apply-templates select="body"/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/documentation/xsl/head.xsl b/documentation/xsl/head.xsl
new file mode 100644 (file)
index 0000000..7d975dd
--- /dev/null
@@ -0,0 +1,68 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<!--The info node, to generate headers-->
+
+<xsl:template match="head" node="doc">
+  <xsl:element name="head">
+    <xsl:apply-templates select="title"/>
+    <xsl:apply-templates select="ref"/>
+    <xsl:element name="link">
+      <xsl:attribute name="rel">stylesheet</xsl:attribute>
+       <xsl:attribute name="href">
+         <xsl:copy-of select="$root"/>
+         <xsl:text>doc.css</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="type">text/css</xsl:attribute>
+    </xsl:element>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" node="head">
+  <xsl:element name="title">
+    <xsl:value-of select="."/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="ref" node="head">
+</xsl:template>
+
+<xsl:template match="history" node="head">
+  <table border="1">
+  <xsl:for-each select="revision">
+    <tr>
+      <td><xsl:value-of select="@version"/></td>
+      <td><xsl:value-of select="."/></td>
+    </tr>
+  </xsl:for-each>
+  </table>
+</xsl:template> 
+
+<xsl:template match="links" node="head">
+  <xsl:element name="div">
+    <xsl:attribute name="class">links</xsl:attribute>
+    <xsl:element name="div">
+      <xsl:attribute name="class">title</xsl:attribute>
+      See Also
+    </xsl:element>
+      
+    <xsl:apply-templates select="link" mode="head"/>
+      
+    <xsl:element name="div"> 
+      <xsl:attribute name="class">index</xsl:attribute>
+      <xsl:element name="a">
+        <xsl:attribute name="href">
+          <xsl:copy-of select="$root"/>
+          <xsl:text>index.html</xsl:text>
+        </xsl:attribute>
+        <xsl:text>&lt; Index</xsl:text>
+      </xsl:element>
+    </xsl:element>
+  </xsl:element>
+</xsl:template> 
+
+</xsl:stylesheet>
diff --git a/documentation/xsl/helpers.xsl b/documentation/xsl/helpers.xsl
new file mode 100644 (file)
index 0000000..df91a4a
--- /dev/null
@@ -0,0 +1,141 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<!--The special helpers-->
+
+<xsl:template match="cmd">
+  <xsl:element name="div">
+    <xsl:attribute name="class">cmd</xsl:attribute>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="conf">
+  <xsl:element name="div">
+    <xsl:attribute name="class">conf</xsl:attribute>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="note">
+  <xsl:element name="div">
+    <xsl:attribute name="class">note</xsl:attribute>
+    <xsl:element name="img">
+      <xsl:attribute name="src">
+        <xsl:copy-of select="$root"/>
+        <xsl:text>images/note-icon.png</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="alt">
+        <xsl:text>Note : </xsl:text>
+      </xsl:attribute>  
+      <xsl:attribute name="class">icon</xsl:attribute>
+    </xsl:element>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="warn">
+  <xsl:element name="div">
+    <xsl:attribute name="class">warn</xsl:attribute>
+    <xsl:element name="img">
+      <xsl:attribute name="src">
+        <xsl:copy-of select="$root"/>
+        <xsl:text>images/warn-icon.png</xsl:text>
+      </xsl:attribute>
+      <xsl:attribute name="alt">
+        <xsl:text>Warning : </xsl:text>
+      </xsl:attribute> 
+      <xsl:attribute name="class">icon</xsl:attribute>
+    </xsl:element>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="new">  <!--This last will be more complicated-->
+  <xsl:element name="div">
+    <xsl:attribute name="class">new</xsl:attribute>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="link" mode="head">
+  <xsl:apply-templates select="."/>
+  <xsl:element name="br"/>
+</xsl:template>
+
+<xsl:template match="link">
+  <xsl:choose>
+  <xsl:when test="@ref">
+    <xsl:variable name="refid" select="@ref"/>
+    <xsl:choose>
+      <xsl:when test="$references/ref[@id=$refid]">
+        <xsl:element name="a">
+        <xsl:attribute name="href">
+          <xsl:choose>
+            <xsl:when test="$references/ref[@id=$refid]/class = $class">
+              <xsl:value-of select="concat($references/ref[@id=$refid]/file, '.html', $references/ref[@id=$refid]/anchor)"/>
+            </xsl:when> 
+            <xsl:when test="not(string-length($references/ref[@id=$refid]/class))">
+              <xsl:copy-of select="$root"/>
+              <xsl:value-of select="concat($references/ref[@id=$refid]/file, '.html', $references/ref[@id=$refid]/anchor)"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:copy-of select="$root"/>
+              <xsl:value-of select="concat($references/ref[@id=$refid]/class, '/', $references/ref[@id=$refid]/file, '.html', $references/ref[@id=$refid]/anchor)"/>
+            </xsl:otherwise>
+          </xsl:choose>              
+        </xsl:attribute>
+        <xsl:choose>
+          <xsl:when test="string-length(.)">
+            <xsl:value-of select="."/>
+          </xsl:when>
+          <xsl:when test="$references/ref[@id=$refid]/label">
+            <xsl:value-of select="$references/ref[@id=$refid]/label"/>
+           </xsl:when> 
+          <xsl:otherwise>
+            <xsl:text>NO LABEL</xsl:text> 
+          </xsl:otherwise>
+        </xsl:choose>
+        </xsl:element>   
+      </xsl:when>
+    </xsl:choose>
+  </xsl:when>
+  <xsl:when test="@url">
+    <xsl:element name="a">
+      <xsl:attribute name="href">
+        <xsl:value-of select="@url"/>
+      </xsl:attribute>
+      <xsl:choose>
+        <xsl:when test="string-length(.)">
+          <xsl:value-of select="."/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@url"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:element> 
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:message><xsl:value-of select="current()"/> : invalid link !</xsl:message>
+  </xsl:otherwise> 
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="index">
+  <xsl:choose>
+    <xsl:when test="@class">
+      <xsl:apply-templates select="$references/ref">
+       <xsl:with-param name="class"><xsl:value-of select="@class"/></xsl:with-param>
+     </xsl:apply-templates>      
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="$references/ref"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/documentation/xsl/references.xsl b/documentation/xsl/references.xsl
new file mode 100644 (file)
index 0000000..4dc47f6
--- /dev/null
@@ -0,0 +1,47 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<xsl:template match="ref" node="references">
+  <xsl:param name="class" select="''"/>
+  <xsl:choose>
+    <xsl:when test="class=$class">
+      <xsl:apply-templates select="." mode="link"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="ref" node="references" mode="link">
+  <xsl:choose>
+  <xsl:when test="not(hiden)">
+  <xsl:element name="a">
+    <xsl:attribute name="href">
+      <xsl:choose>
+        <xsl:when test="not(string-length(class))">
+          <xsl:copy-of select="$root"/>
+          <xsl:value-of select="concat(file, '.html')"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$root"/>
+          <xsl:value-of select="concat(class, '/', file, '.html', anchor)"/>
+        </xsl:otherwise>
+      </xsl:choose>              
+    </xsl:attribute>
+    <xsl:choose>
+      <xsl:when test="label">
+        <xsl:value-of select="label"/>
+      </xsl:when> 
+      <xsl:otherwise>
+        <xsl:value-of select="file"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:element>  
+  <xsl:element name="br"/>
+  </xsl:when>
+  </xsl:choose>  
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/documentation/xsl/xhtml.xsl b/documentation/xsl/xhtml.xsl
new file mode 100644 (file)
index 0000000..1f5cb98
--- /dev/null
@@ -0,0 +1,16 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--
+  XSL stylesheet for processing documentation for the lcd4linux project
+    Copyright 2004 Xavier Vello <xavier66@free.fr>
+    Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+-->
+
+<!--Standard html tags, just a wraper-->
+
+<xsl:template match="@*|node()">
+  <xsl:copy>
+    <xsl:apply-templates select="@*|node()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>