diff options
Diffstat (limited to 'lib/erl_docgen/priv')
50 files changed, 9667 insertions, 0 deletions
diff --git a/lib/erl_docgen/priv/Makefile b/lib/erl_docgen/priv/Makefile new file mode 100644 index 0000000000..f50350bef2 --- /dev/null +++ b/lib/erl_docgen/priv/Makefile @@ -0,0 +1,34 @@ +# ``The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved via the world wide web at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# The Initial Developer of the Original Code is Ericsson Utvecklings AB. +# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings +# AB. All Rights Reserved.'' +# +# $Id$ +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# +# Macros +# + +SUB_DIRECTORIES = bin css docbuilder_dtd dtd_html_entities dtd_man_entities images js/flipmenu xsl + +SPECIAL_TARGETS = + +# +# Default Subdir Targets +# +include $(ERL_TOP)/make/otp_subdir.mk + + diff --git a/lib/erl_docgen/priv/bin/Makefile b/lib/erl_docgen/priv/bin/Makefile new file mode 100644 index 0000000000..bd59675003 --- /dev/null +++ b/lib/erl_docgen/priv/bin/Makefile @@ -0,0 +1,74 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +ESCRIPT_FILES= \ + codeline_preprocessing.escript + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/bin + $(INSTALL_SCRIPT) $(ESCRIPT_FILES) $(RELSYSDIR)/priv/bin + +release_docs_spec: + + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/bin/codeline_preprocessing.escript b/lib/erl_docgen/priv/bin/codeline_preprocessing.escript new file mode 100755 index 0000000000..33a678d3a4 --- /dev/null +++ b/lib/erl_docgen/priv/bin/codeline_preprocessing.escript @@ -0,0 +1,117 @@ +#!/usr/bin/env escript +%% -*- erlang -*- +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%%---------------------------------------------------------------------- +%% File : codeline_preprocessing.escript +%% +%% Created : 10 Sep 2008 by Lars Thorsen +%%---------------------------------------------------------------------- + +%%====================================================================== +%% External functions +%%====================================================================== +%%---------------------------------------------------------------------- +%% Function: main/1 +%% Description: +%%---------------------------------------------------------------------- +main([InFile, OutFile]) -> + InDev = + case file:open(InFile, [read]) of + {ok,ID} -> + ID; + _ -> + halt(5) + end, + CPath=filename:dirname(InFile), + OutDev = + case file:open(OutFile, [write]) of + {ok,OD} -> + OD; + _ -> + halt(5) + end, + case re:compile("<codeinclude(?:\040|\t)*file=\"([^\"]*)\"(?:(?:(?:\040|\t)*tag=\"([^\"]*)\".*)|(?:.*))(?:/>|/codeinclude>)") of + {ok, Mp} -> + parse(InDev, OutDev, CPath, Mp); + _ -> + halt(2) + end; +main(_) -> + usage(). + + +%%---------------------------------------------------------------------- +%% Function: main/1 +%% Description: +%%---------------------------------------------------------------------- +usage() -> + io:format("usage: codeline_preprocessing <infile> <outfile>\n"), + halt(1). + + +%%====================================================================== +%% Internal functions +%%====================================================================== + +parse(InDev, OutDev, CPath, Mp) -> + case io:get_line(InDev, "") of + eof -> + file:close(OutDev), + file:close(InDev); + String -> + case re:run(String, Mp,[{capture, [1,2], list}]) of + {match,[File, []]} -> + case file:read_file(filename:join(CPath, File))of + {ok, Bin} -> + file:write(OutDev, "<code>\n<![CDATA[\n"), + file:write(OutDev, Bin), + file:write(OutDev, "]]></code>"); + _ -> + halt(3) + end; + {match,[File, Tag]} -> + String2 = get_code(filename:join(CPath, File), Tag), + file:write(OutDev, "<code>\n<![CDATA[\n"), + file:write(OutDev, String2), + file:write(OutDev, "]]></code>"); + _ -> + file:write(OutDev, String) + end, + parse(InDev, OutDev, CPath, Mp) + end. + +%%---------------------------------------------------------------------- +%% Function: get_code/2 +%% Description: +%%---------------------------------------------------------------------- +get_code(File, Tag) -> + case file:read_file(File) of + {ok, Bin} -> + case re:run(Bin,"^" ++ Tag ++ "\n((.|\n)*)\n" ++ + Tag ++ "\$",[global, multiline, {capture, [1], binary}]) of + {match,[[Match]]} -> + Match; + _ -> + halt(4) + end; + _ -> + halt(3) + end. + + + diff --git a/lib/erl_docgen/priv/css/Makefile b/lib/erl_docgen/priv/css/Makefile new file mode 100644 index 0000000000..81124fb111 --- /dev/null +++ b/lib/erl_docgen/priv/css/Makefile @@ -0,0 +1,77 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +CSS_FILES = \ + otp_doc.css + + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/css + $(INSTALL_DATA) $(CSS_FILES) $(RELSYSDIR)/priv/css + + +release_docs_spec: + $(INSTALL_DIR) $(RELEASE_PATH)/doc + $(INSTALL_DATA) $(CSS_FILES) ../nyi.html $(RELEASE_PATH)/doc + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/css/otp_doc.css b/lib/erl_docgen/priv/css/otp_doc.css new file mode 100644 index 0000000000..97d8c2df74 --- /dev/null +++ b/lib/erl_docgen/priv/css/otp_doc.css @@ -0,0 +1,117 @@ + + +body { + background: white; + font-family: Verdana, Arial, Helvetica, sans-serif; + margin: 0; + padding: 0; + border: 0; + overflow: scroll; + height: 100%; + max-height: 100%; +} + + +th { font-family: Verdana, Arial, Helvetica, sans-serif } +td { font-family: Verdana, Arial, Helvetica, sans-serif } +p { font-family: Verdana, Arial, Helvetica, sans-serif } + +.header { background: #222; color: #fff } +.top { background: #efe } +.otp { background: #efe } +.erlang { background: #ffe } +.otp2 { background: #efe } +.app { background: #ffe } + +a:link { color: blue; text-decoration: none } +a:active { color: blue; text-decoration: none } +a:visited { color: blue; text-decoration: none } + +#container { + width: 100%; + margin: 0; + background-color: #fff; +} + + +#leftnav { + position: fixed; + float: left; + top: 0; + bottom: 0; + left: 0; + width: 200px; + overflow:auto; + margin: 0; + padding: 1px; + border-right: 1px solid red; +} + + +#content { + margin-left: 240px; /* set left value to WidthOfFrameDiv */ +} + +.frontpage +{ + padding-top: 50px; /* Magins for inner DIV inside each DIV (to provide padding) */ +} + + +.innertube +{ + margin: 15px; /* Magins for inner DIV inside each DIV (to provide padding) */ +} + +.footer +{ + margin: 15px; /* Magins for inner DIV inside each DIV (to provide padding) */ + +} +span.bold_code { font-family: courier;font-weight: bold} +span.code { font-family: courier;font-weight: normal} + +.note, .warning { + border: solid black 1px; + margin: 1em 3em; +} + +.note .label { + background: #30d42a; + color: white; + font-weight: bold; + padding: 5px 10px; +} +.note .content { + background: #eafeea; + color: black; + line-height: 120%; + font-size: 90%; + padding: 5px 10px; +} +.warning .label { + background: #C00; + color: white; + font-weight: bold; + padding: 5px 10px; +} +.warning .content { + background: #FFF0F0; + color: black; + line-height: 120%; + font-size: 90%; + padding: 5px 10px; +} + +.example { + background-color:#eeeeff; + padding: 0px 10px; +} + +pre { font-family: courier; font-weight: normal } + +.REFBODY { margin-left: 13mm } + +.REFTYPES { margin-left: 8mm } + +footer { } diff --git a/lib/erl_docgen/priv/docbuilder_dtd/Makefile b/lib/erl_docgen/priv/docbuilder_dtd/Makefile new file mode 100644 index 0000000000..e2214107cb --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/Makefile @@ -0,0 +1,99 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +DTD_FILES = \ + application.dtd \ + chapter.dtd \ + common.header.dtd \ + comref.dtd \ + fileref.dtd \ + xhtml1-frameset.dtd \ + appref.dtd \ + cites.dtd \ + common.image.dtd \ + cref.dtd \ + part.dtd \ + xhtml1-strict.dtd \ + book.dtd \ + common.dtd \ + common.refs.dtd \ + erlref.dtd \ + report.dtd \ + xhtml1-transitional.dtd \ + bookinsidecover.dtd \ + common.entities.dtd \ + common.table.dtd \ + fascicules.dtd \ + terms.dtd + + + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/docbuilder_dtd + $(INSTALL_DATA) $(DTD_FILES) $(RELSYSDIR)/priv/docbuilder_dtd + + +release_docs_spec: + + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/application.dtd b/lib/erl_docgen/priv/docbuilder_dtd/application.dtd new file mode 100644 index 0000000000..8a1e8832ec --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/application.dtd @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common SYSTEM "common.dtd" > +%common; +<!ENTITY % common.header SYSTEM "common.header.dtd" > +%common.header; + +<!ELEMENT application (header,description?,include+) > +<!ELEMENT description (%block;|quote|br|marker|warning|note)* > +<!ELEMENT include EMPTY > +<!ATTLIST include file CDATA #REQUIRED> diff --git a/lib/erl_docgen/priv/docbuilder_dtd/appref.dtd b/lib/erl_docgen/priv/docbuilder_dtd/appref.dtd new file mode 100644 index 0000000000..70a5ff37af --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/appref.dtd @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common.refs SYSTEM "common.refs.dtd" > +%common.refs; + +<!-- Structure --> + +<!ELEMENT appref (header,app,appsummary,description, + (section|funcs)*,authors?) > +<!ELEMENT app (#PCDATA) > +<!ELEMENT appsummary (#PCDATA) > + +<!-- `name' is used in common.refs.dtd and must therefore + be defined in each *ref. dtd --> +<!ELEMENT name (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/book.dtd b/lib/erl_docgen/priv/docbuilder_dtd/book.dtd new file mode 100644 index 0000000000..bb89a6d255 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/book.dtd @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common SYSTEM "common.dtd" > +%common; +<!ENTITY % common.header SYSTEM "common.header.dtd" > +%common.header; +<!ENTITY % common.table SYSTEM "common.table.dtd" > +%common.table; + +<!ELEMENT book (header, + insidecover?, + pagetext, + preamble, + (applications|parts|headline|pagetext)+, + (listoffigures?, + listoftables?, + listofterms?, + bibliography?, + index?)) > + +<!ELEMENT pagetext (#PCDATA) > +<!ELEMENT preamble (contents?,preface?) > +<!ELEMENT preface (title?,(%block;|quote|br|marker|warning|note|table)*) > + +<!ELEMENT insidecover (#PCDATA|br|theheader|vfill|vspace|tt|bold| + include)* > +<!ELEMENT tt (#PCDATA|br|theheader|vfill)* > +<!ELEMENT bold (#PCDATA|br|theheader|vfill)* > +<!ELEMENT vfill EMPTY > +<!ELEMENT theheader EMPTY > +<!ATTLIST theheader tag (title|prepared|responsible|docno| + approved|checked|date|rev|file| + abbreviation| + none) "none" > + + +<!ELEMENT applications (include)* > +<!ELEMENT parts (title?,description?,(include|onepart)*) > +<!ATTLIST parts lift (yes|no) "no" > +<!ELEMENT headline (#PCDATA) > +<!ELEMENT index EMPTY > +<!ELEMENT listoffigures EMPTY > +<!ELEMENT listoftables EMPTY > +<!ELEMENT listofterms EMPTY > +<!ELEMENT bibliography EMPTY > +<!ELEMENT contents EMPTY > +<!ATTLIST contents level (0|1|2|3) "2"> + +<!ELEMENT onepart (title?,description?,include+) > +<!ATTLIST onepart lift (yes|no) "no" > + +<!ELEMENT description (%block;|quote|br|marker|warning|note)* > + +<!ELEMENT include EMPTY > +<!ATTLIST include file CDATA #REQUIRED> diff --git a/lib/erl_docgen/priv/docbuilder_dtd/bookinsidecover.dtd b/lib/erl_docgen/priv/docbuilder_dtd/bookinsidecover.dtd new file mode 100644 index 0000000000..d6efbef6a4 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/bookinsidecover.dtd @@ -0,0 +1,36 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > + +<!ELEMENT bookinsidecover (#PCDATA|br|theheader|vfill|tt|bold)* > + +<!ELEMENT tt (#PCDATA|br|theheader|vfill)* > +<!ELEMENT bold (#PCDATA|br|theheader|vfill)* > +<!ELEMENT vfill EMPTY > +<!ELEMENT theheader EMPTY > +<!ATTLIST theheader tag (title|prepared|responsible|docno| + approved|checked|date|rev|file| + none) "none" > + +<!ELEMENT br EMPTY > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/chapter.dtd b/lib/erl_docgen/priv/docbuilder_dtd/chapter.dtd new file mode 100644 index 0000000000..eb2c96b04f --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/chapter.dtd @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common SYSTEM "common.dtd" > +%common; +<!ENTITY % common.header SYSTEM "common.header.dtd" > +%common.header; +<!ENTITY % common.table SYSTEM "common.table.dtd" > +%common.table; +<!ENTITY % common.image SYSTEM "common.image.dtd" > +%common.image; + +<!-- Structure --> + +<!ELEMENT chapter (header,(%block;|quote|warning|note|br| + image|marker|table)*,section+) > +<!ELEMENT section (marker*,title, + (%block;|quote|warning|note|br|image|marker| + table|section)*) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/cites.dtd b/lib/erl_docgen/priv/docbuilder_dtd/cites.dtd new file mode 100644 index 0000000000..334574bff9 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/cites.dtd @@ -0,0 +1,35 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > + +<!-- Structure --> + +<!ELEMENT cites (cite)* > +<!ELEMENT cite (id, shortdef, def, resp?) > +<!ELEMENT id (#PCDATA) > +<!ELEMENT shortdef (#PCDATA) > +<!ELEMENT def (#PCDATA|c|em)* > +<!ELEMENT resp (#PCDATA) > +<!ELEMENT c (#PCDATA) > +<!ELEMENT em (#PCDATA|c)* > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.dtd new file mode 100644 index 0000000000..fdc02c55a1 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.dtd @@ -0,0 +1,87 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!-- This file contains common stuff for all dtds. --> + +<!ENTITY % common.entities SYSTEM "common.entities.dtd" > +%common.entities; + +<!ENTITY % block "p|pre|code|list|taglist|codeinclude| + erleval" > +<!ENTITY % inline "#PCDATA|c|em|term|cite|br|path|seealso| + url|marker" > +<!-- XXX --> +<!ELEMENT p (%inline;)* > +<!ELEMENT pre (#PCDATA|seealso|url|input)* > +<!ELEMENT input (#PCDATA|seealso|url)* > +<!ELEMENT code (#PCDATA) > +<!ATTLIST code type (erl|c|none) "none" > +<!ELEMENT quote (p)* > +<!ELEMENT warning (%block;|quote|br|marker)* > +<!ELEMENT note (%block;|quote|br|marker)* > +<!ELEMENT c (#PCDATA) > +<!ELEMENT em (#PCDATA|c)* > + +<!-- XXX --> +<!ELEMENT term (termdef?) > +<!ATTLIST term id CDATA #REQUIRED > +<!ELEMENT termdef (#PCDATA) > +<!ELEMENT cite (citedef?) > +<!ATTLIST cite id CDATA #REQUIRED > +<!ELEMENT citedef (ctitle,cauthor,chowpublished) > +<!ELEMENT ctitle (#PCDATA) > +<!ELEMENT cauthor (#PCDATA) > +<!ELEMENT chowpublished (#PCDATA) > + +<!-- XXX --> +<!ELEMENT br EMPTY > + +<!-- Path --> + +<!ELEMENT path (#PCDATA) > +<!ATTLIST path unix CDATA "" + windows CDATA "" > + +<!-- List --> + +<!ELEMENT list (item+) > +<!ATTLIST list type (ordered|bulleted) "bulleted" > +<!ELEMENT taglist (tag,item)+ > +<!ELEMENT tag (#PCDATA|c|em|seealso|url|marker)* > +<!ELEMENT item (%inline;|%block;)* > + +<!-- References --> + +<!ELEMENT seealso (#PCDATA) > +<!ATTLIST seealso marker CDATA #REQUIRED > +<!ELEMENT url (#PCDATA) > +<!ATTLIST url href CDATA #REQUIRED > +<!ELEMENT marker EMPTY > +<!ATTLIST marker id CDATA #REQUIRED > + +<!-- CodeInclude --> + +<!ELEMENT codeinclude EMPTY > +<!ATTLIST codeinclude file CDATA #REQUIRED + tag CDATA "" + type (erl|c|none) "none" > + +<!-- ErlEval --> + +<!ELEMENT erleval EMPTY > +<!ATTLIST erleval expr CDATA #REQUIRED > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.entities.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.entities.dtd new file mode 100644 index 0000000000..f893ecd070 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.entities.dtd @@ -0,0 +1,24 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.header.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.header.dtd new file mode 100644 index 0000000000..d422a89693 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.header.dtd @@ -0,0 +1,42 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ELEMENT header (copyright?,legalnotice?,title,shorttitle?, + prepared,responsible?,docno,approved?, + checked?,date,rev,file?) > + +<!-- +The titlestyle attribute is only defined to make all the book.xml files +go through the validation. The attribute is not used for anything +--> +<!ATTLIST header titlestyle (special|normal) "normal"> + +<!ELEMENT title (#PCDATA) > +<!ELEMENT shorttitle (#PCDATA) > +<!ELEMENT prepared (#PCDATA) > +<!ELEMENT responsible (#PCDATA) > +<!ELEMENT docno (#PCDATA) > +<!ELEMENT approved (#PCDATA) > +<!ELEMENT checked (#PCDATA) > +<!ELEMENT copyright (year+,holder*) > +<!ELEMENT legalnotice (#PCDATA) > +<!ELEMENT date (#PCDATA) > +<!ELEMENT rev (#PCDATA) > +<!ELEMENT file (#PCDATA) > +<!ELEMENT year (#PCDATA) > +<!ELEMENT holder (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.image.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.image.dtd new file mode 100644 index 0000000000..fc95a669dd --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.image.dtd @@ -0,0 +1,21 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ELEMENT image (icaption) > +<!ATTLIST image file CDATA #REQUIRED > +<!ELEMENT icaption (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.refs.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.refs.dtd new file mode 100644 index 0000000000..7b9974fbda --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.refs.dtd @@ -0,0 +1,40 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!-- This file contains common stuff for the *ref.dtd files. + Note that `name' is defined in each *ref.dtd. --> + +<!ENTITY % common SYSTEM "common.dtd" > +%common; +<!ENTITY % common.header SYSTEM "common.header.dtd" > +%common.header; + +<!ELEMENT description (%block;|quote|br|marker|warning|note)* > +<!ELEMENT funcs (func)+ > +<!ELEMENT func (name+,fsummary,type?,desc?) > +<!-- ELEMENT name is defined in each ref dtd --> +<!ELEMENT fsummary (#PCDATA|c|em)* > +<!ELEMENT type (v,d?)+ > +<!ELEMENT v (#PCDATA) > +<!ELEMENT d (#PCDATA|c|em)* > +<!ELEMENT desc (%block;|quote|br|marker|warning|note)* > +<!ELEMENT authors (aname,email)+ > +<!ELEMENT aname (#PCDATA) > +<!ELEMENT email (#PCDATA) > +<!ELEMENT section (marker*,title,(%block;|quote|br|marker| + warning|note)*) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/common.table.dtd b/lib/erl_docgen/priv/docbuilder_dtd/common.table.dtd new file mode 100644 index 0000000000..7741da1018 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/common.table.dtd @@ -0,0 +1,25 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ELEMENT table (row+,tcaption) > +<!ATTLIST table align (left|center|right) "center" > +<!ELEMENT row (cell+) > +<!ELEMENT cell (%inline;)* > +<!ATTLIST cell align (left|center|right) "left" + valign (top|middle|bottom) "middle" > +<!ELEMENT tcaption (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/comref.dtd b/lib/erl_docgen/priv/docbuilder_dtd/comref.dtd new file mode 100644 index 0000000000..fcdea625d5 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/comref.dtd @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common.refs SYSTEM "common.refs.dtd" > +%common.refs; + +<!ELEMENT comref (header,com,comsummary,description, + (section|funcs)*,authors?) > +<!ELEMENT com (#PCDATA) > +<!ELEMENT comsummary (#PCDATA) > + +<!-- `name' is used in common.refs.dtd and must therefore + be defined in each *ref. dtd --> +<!ELEMENT name (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/cref.dtd b/lib/erl_docgen/priv/docbuilder_dtd/cref.dtd new file mode 100644 index 0000000000..e43bb2bf51 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/cref.dtd @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common.refs SYSTEM "common.refs.dtd" > +%common.refs; + +<!ELEMENT cref (header,lib,libsummary,description, + (section|funcs)*,authors?) > +<!ELEMENT lib (#PCDATA) > +<!ELEMENT libsummary (#PCDATA) > + +<!-- `name' is used in common.refs.dtd and must therefore + be defined in each *ref. dtd --> +<!ELEMENT name (ret,nametext) > +<!ELEMENT ret (#PCDATA) > +<!ELEMENT nametext (#PCDATA) > + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/erlref.dtd b/lib/erl_docgen/priv/docbuilder_dtd/erlref.dtd new file mode 100644 index 0000000000..21656a1446 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/erlref.dtd @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common.refs SYSTEM "common.refs.dtd" > +%common.refs; + +<!ELEMENT erlref (header,module,modulesummary,description, + (section|funcs)*,authors?) > +<!ELEMENT module (#PCDATA) > +<!ELEMENT modulesummary (#PCDATA) > + +<!-- `name' is used in common.refs.dtd and must therefore + be defined in each *ref. dtd --> +<!ELEMENT name (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/fascicules.dtd b/lib/erl_docgen/priv/docbuilder_dtd/fascicules.dtd new file mode 100644 index 0000000000..b14276a2c0 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/fascicules.dtd @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > + +<!-- Structure --> + +<!ELEMENT fascicules (fascicule)+ > +<!ELEMENT fascicule (#PCDATA) > +<!ATTLIST fascicule file CDATA #REQUIRED + href CDATA #REQUIRED + entry (yes|no) "no" > + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/fileref.dtd b/lib/erl_docgen/priv/docbuilder_dtd/fileref.dtd new file mode 100644 index 0000000000..5a1cc54afe --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/fileref.dtd @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common.refs SYSTEM "common.refs.dtd" > +%common.refs; + +<!ELEMENT fileref (header,file,filesummary,description, + (section|funcs)*,authors?) > +<!-- Note: ELEMENT file is already defined --> +<!ELEMENT filesummary (#PCDATA) > + +<!-- `name' is used in common.refs.dtd and must therefore + be defined in each *ref. dtd --> +<!ELEMENT name (#PCDATA) > diff --git a/lib/erl_docgen/priv/docbuilder_dtd/part.dtd b/lib/erl_docgen/priv/docbuilder_dtd/part.dtd new file mode 100644 index 0000000000..3f97199042 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/part.dtd @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % common SYSTEM "common.dtd" > +%common; +<!ENTITY % common.header SYSTEM "common.header.dtd" > +%common.header; + +<!ELEMENT part (header,description?,include+) > +<!ELEMENT description (%block;|quote|br|marker|warning|note)* > +<!ELEMENT include EMPTY > +<!ATTLIST include file CDATA #REQUIRED> diff --git a/lib/erl_docgen/priv/docbuilder_dtd/report.dtd b/lib/erl_docgen/priv/docbuilder_dtd/report.dtd new file mode 100644 index 0000000000..3d07e6e5a7 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/report.dtd @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> + +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > + +<!ENTITY % header "title,prepared,responsible,docno,approved, + checked,date,rev,file" > +<!ENTITY % block "p|pre|code|list|taglist|erlinclude| + codeinclude|erleval" > +<!ENTITY % inline "#PCDATA|i|b|c|em|term|cite|br|path|seealso| + url|marker" > + +<!-- Structure --> + +<!ELEMENT report (header,section+) > +<!ELEMENT header (title,prepared,responsible?,docno,approved?, + checked?,date,rev,file?) > +<!ELEMENT title (#PCDATA) > +<!ELEMENT prepared (#PCDATA) > +<!ELEMENT responsible (#PCDATA) > +<!ELEMENT docno (#PCDATA) > +<!ELEMENT approved (#PCDATA) > +<!ELEMENT checked (#PCDATA) > +<!ELEMENT date (#PCDATA) > +<!ELEMENT rev (#PCDATA) > +<!ELEMENT file (#PCDATA) > + +<!ELEMENT section (marker*,title, + (%block;|quote|warning|note|br|image|marker| + table|section)*) > +<!ELEMENT p (%inline;|index)* > +<!ELEMENT pre (#PCDATA|seealso|url|input)* > +<!ELEMENT input (#PCDATA|seealso|url)* > +<!ELEMENT code (#PCDATA) > +<!ATTLIST code type (erl|c|none) "none" > +<!ELEMENT quote (p)* > +<!ELEMENT warning (%block;|quote|br|image|marker|table)* > +<!ELEMENT note (%block;|quote|br|image|marker|table)* > +<!ELEMENT i (#PCDATA|b|c|em)* > +<!ELEMENT b (#PCDATA|i|c|em)* > +<!ELEMENT c (#PCDATA) > +<!ELEMENT em (#PCDATA|i|b|c)* > +<!ELEMENT term (termdef?) > +<!ATTLIST term id CDATA #REQUIRED > +<!ELEMENT termdef (#PCDATA) > +<!ELEMENT cite (citedef?) > +<!ATTLIST cite id CDATA #REQUIRED > +<!ELEMENT citedef (ctitle,cauthor,chowpublished) > +<!ELEMENT ctitle (#PCDATA) > +<!ELEMENT cauthor (#PCDATA) > +<!ELEMENT chowpublished (#PCDATA) > +<!ELEMENT br EMPTY > + +<!-- Path --> + +<!ELEMENT path (#PCDATA) > +<!ATTLIST path unix CDATA "" + windows CDATA "" > + +<!-- List --> + +<!ELEMENT list (item+) > +<!ATTLIST list type (ordered|bulleted) "bulleted" > +<!ELEMENT taglist (tag,item)+ > +<!ELEMENT tag (#PCDATA|i|b|c|em|seealso|url)* > +<!ELEMENT item (%inline;|%block;)* > + +<!-- Image --> + +<!ELEMENT image (icaption?) > +<!ATTLIST image file CDATA #REQUIRED > +<!ELEMENT icaption (#PCDATA) > + +<!-- References --> + +<!ELEMENT seealso (#PCDATA) > +<!ATTLIST seealso marker CDATA #REQUIRED > +<!ELEMENT url (#PCDATA) > +<!ATTLIST url href CDATA #REQUIRED > +<!ELEMENT marker EMPTY > +<!ATTLIST marker id CDATA #REQUIRED > + +<!-- Table --> + +<!ELEMENT table (row+,tcaption?) > +<!ATTLIST table width CDATA "0" + colspec CDATA "" > +<!ELEMENT row (cell+) > +<!ELEMENT cell (%inline;)* > +<!ATTLIST cell align (left|center|right) "left" + valign (top|middle|bottom) "middle" > +<!ELEMENT tcaption (#PCDATA) > + +<!-- ErlInclude --> + +<!ELEMENT erlinclude EMPTY > +<!ATTLIST erlinclude file CDATA #REQUIRED + tag CDATA #REQUIRED > + +<!-- CodeInclude --> + +<!ELEMENT codeinclude EMPTY > +<!ATTLIST codeinclude file CDATA #REQUIRED + tag CDATA "" + type (erl|c|none) "none" > + +<!-- ErlEval --> + +<!ELEMENT erleval EMPTY > +<!ATTLIST erleval expr CDATA #REQUIRED > + +<!-- Index FOR COMPATIBILITY --> + +<!ELEMENT index EMPTY > +<!ATTLIST index txt CDATA #REQUIRED > + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/terms.dtd b/lib/erl_docgen/priv/docbuilder_dtd/terms.dtd new file mode 100644 index 0000000000..6105ec593e --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/terms.dtd @@ -0,0 +1,36 @@ +<!-- + ``The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved via the world wide web at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is Ericsson AB. + Portions created by Ericsson are Copyright 1999-2007, Ericsson AB. + All Rights Reserved.'' + + $Id$ +--> +<!ENTITY % ISOlat1 SYSTEM "xhtml-lat1.ent" > +%ISOlat1; + +<!ENTITY amp "&" > +<!ENTITY gt ">" > +<!ENTITY lt "<" > + +<!-- Structure --> + +<!ELEMENT terms (term)* > +<!ELEMENT term (id, shortdef, def, resp?) > +<!ELEMENT id (#PCDATA) > +<!ELEMENT shortdef (#PCDATA) > +<!ELEMENT def (#PCDATA|c|em)* > +<!ELEMENT resp (#PCDATA) > +<!ELEMENT c (#PCDATA) > +<!ELEMENT em (#PCDATA|c)* > + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-frameset.dtd b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-frameset.dtd new file mode 100644 index 0000000000..d128f2eb7c --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-frameset.dtd @@ -0,0 +1,1235 @@ +<!-- + Extensible HTML version 1.0 Frameset DTD + + This is the same as HTML 4 Frameset 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-2002 W3C (MIT, INRIA, Keio), + All Rights Reserved. + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" + + $Revision: 1.2 $ + $Date: 2002/08/01 18:37:55 $ + +--> + +<!--================ 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 [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!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 --> + +<!-- used for object, applet, img, input and iframe --> +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> + +<!-- a color using sRGB: #RRGGBB as Hex values --> +<!ENTITY % Color "CDATA"> + +<!-- There are also 16 widely known color names with their sRGB values: + + Black = #000000 Green = #008000 + Silver = #C0C0C0 Lime = #00FF00 + Gray = #808080 Olive = #808000 + White = #FFFFFF Yellow = #FFFF00 + Maroon = #800000 Navy = #000080 + Red = #FF0000 Blue = #0000FF + Purple = #800080 Teal = #008080 + Fuchsia= #FF00FF Aqua = #00FFFF +--> + +<!--=================== 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 alignment for p, div, h1-h6. The default is + align="left" for ltr headings, "right" for rtl --> + +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> + +<!--=================== Text Elements ====================================--> + +<!ENTITY % special.extra + "object | applet | img | map | iframe"> + +<!ENTITY % special.basic + "br | span | bdo"> + +<!ENTITY % special + "%special.basic; | %special.extra;"> + +<!ENTITY % fontstyle.extra "big | small | font | basefont"> + +<!ENTITY % fontstyle.basic "tt | i | b | u + | s | strike "> + +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> + +<!ENTITY % phrase.extra "sub | sup"> +<!ENTITY % phrase.basic "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym"> + +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== Block level elements ==============================--> + +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> +<!ENTITY % lists "ul | ol | dl | menu | dir"> +<!ENTITY % blocktext "pre | hr | blockquote | address | center"> + +<!ENTITY % block + "p | %heading; | div | %lists; | %blocktext; | isindex | fieldset | table"> + +<!-- %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.inline;)*"> + +<!-- pre uses %Inline excluding img, object, applet, big, small, + sub, sup, font, or basefont --> + +<!ENTITY % pre.content + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | + %inline.forms; | %misc.inline;)*"> + + +<!-- form uses %Flow; excluding form --> + +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> + +<!-- button uses %Flow; but excludes a, form, form controls, iframe --> + +<!ENTITY % button.content + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | + table | br | span | bdo | object | applet | img | map | + %fontstyle; | %phrase; | %misc;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, frameset)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + id ID #IMPLIED + href %URI; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + language CDATA #IMPLIED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Flow;> +<!ATTLIST noscript + %attrs; + > + +<!--======================= Frames =======================================--> + +<!-- only one noframes element permitted per document --> + +<!ELEMENT frameset (frameset|frame|noframes)*> +<!ATTLIST frameset + %coreattrs; + rows %MultiLengths; #IMPLIED + cols %MultiLengths; #IMPLIED + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + > + +<!-- reserved frame names start with "_" otherwise starts with letter --> + +<!-- tiled window within frameset --> + +<!ELEMENT frame EMPTY> +<!ATTLIST frame + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + noresize (noresize) #IMPLIED + scrolling (yes|no|auto) "auto" + > + +<!-- inline subwindow --> + +<!ELEMENT iframe %Flow;> +<!ATTLIST iframe + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + scrolling (yes|no|auto) "auto" + align %ImgAlign; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + > + +<!-- alternate content container for non frame-based rendering --> + +<!ELEMENT noframes (body)> +<!ATTLIST noframes + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Flow;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + background %URI; #IMPLIED + bgcolor %Color; #IMPLIED + text %Color; #IMPLIED + link %Color; #IMPLIED + vlink %Color; #IMPLIED + alink %Color; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + %TextAlign; + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT p %Inline;> +<!ATTLIST p + %attrs; + %TextAlign; + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from h1 (the most important) + to h6 (the least important). +--> + +<!ELEMENT h1 %Inline;> +<!ATTLIST h1 + %attrs; + %TextAlign; + > + +<!ELEMENT h2 %Inline;> +<!ATTLIST h2 + %attrs; + %TextAlign; + > + +<!ELEMENT h3 %Inline;> +<!ATTLIST h3 + %attrs; + %TextAlign; + > + +<!ELEMENT h4 %Inline;> +<!ATTLIST h4 + %attrs; + %TextAlign; + > + +<!ELEMENT h5 %Inline;> +<!ATTLIST h5 + %attrs; + %TextAlign; + > + +<!ELEMENT h6 %Inline;> +<!ATTLIST h6 + %attrs; + %TextAlign; + > + +<!--=================== Lists ============================================--> + +<!-- Unordered list bullet styles --> + +<!ENTITY % ULStyle "(disc|square|circle)"> + +<!-- Unordered list --> + +<!ELEMENT ul (li)+> +<!ATTLIST ul + %attrs; + type %ULStyle; #IMPLIED + compact (compact) #IMPLIED + > + +<!-- Ordered list numbering style + + 1 arabic numbers 1, 2, 3, ... + a lower alpha a, b, c, ... + A upper alpha A, B, C, ... + i lower roman i, ii, iii, ... + I upper roman I, II, III, ... + + The style is applied to the sequence number which by default + is reset to 1 for the first list item in an ordered list. +--> +<!ENTITY % OLStyle "CDATA"> + +<!-- Ordered (numbered) list --> + +<!ELEMENT ol (li)+> +<!ATTLIST ol + %attrs; + type %OLStyle; #IMPLIED + compact (compact) #IMPLIED + start %Number; #IMPLIED + > + +<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+> +<!ATTLIST menu + %attrs; + compact (compact) #IMPLIED + > + +<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+> +<!ATTLIST dir + %attrs; + compact (compact) #IMPLIED + > + +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> +<!ENTITY % LIStyle "CDATA"> + +<!-- list item --> + +<!ELEMENT li %Flow;> +<!ATTLIST li + %attrs; + type %LIStyle; #IMPLIED + value %Number; #IMPLIED + > + +<!-- definition lists - dt for term, dd for its definition --> + +<!ELEMENT dl (dt|dd)+> +<!ATTLIST dl + %attrs; + compact (compact) #IMPLIED + > + +<!ELEMENT dt %Inline;> +<!ATTLIST dt + %attrs; + > + +<!ELEMENT dd %Flow;> +<!ATTLIST dd + %attrs; + > + +<!--=================== Address ==========================================--> + +<!-- information on author --> + +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> +<!ATTLIST address + %attrs; + > + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT hr EMPTY> +<!ATTLIST hr + %attrs; + align (left|center|right) #IMPLIED + noshade (noshade) #IMPLIED + size %Pixels; #IMPLIED + width %Length; #IMPLIED + > + +<!--=================== Preformatted Text ================================--> + +<!-- content is %Inline; excluding + "img|object|applet|big|small|sub|sup|font|basefont" --> + +<!ELEMENT pre %pre.content;> +<!ATTLIST pre + %attrs; + width %Number; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT blockquote %Flow;> +<!ATTLIST blockquote + %attrs; + cite %URI; #IMPLIED + > + +<!--=================== Text alignment ===================================--> + +<!-- center content --> +<!ELEMENT center %Flow;> +<!ATTLIST center + %attrs; + > + +<!--=================== 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; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #IMPLIED + target %FrameTarget; #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; + clear (left|all|right|none) "none" + > + +<!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;> + +<!ELEMENT u %Inline;> <!-- underline --> +<!ATTLIST u %attrs;> + +<!ELEMENT s %Inline;> <!-- strike-through --> +<!ATTLIST s %attrs;> + +<!ELEMENT strike %Inline;> <!-- strike-through --> +<!ATTLIST strike %attrs;> + +<!ELEMENT basefont EMPTY> <!-- base font size --> +<!ATTLIST basefont + id ID #IMPLIED + size CDATA #REQUIRED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!ELEMENT font %Inline;> <!-- local change to font --> +<!ATTLIST font + %coreattrs; + %i18n; + size CDATA #IMPLIED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!--==================== 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 + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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 #REQUIRED + value CDATA #IMPLIED + valuetype (data|ref|object) "data" + type %ContentType; #IMPLIED + > + +<!--=================== Java applet ==================================--> +<!-- + One of code or object attributes must be present. + Place param elements before other content. +--> +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST applet + %coreattrs; + codebase %URI; #IMPLIED + archive CDATA #IMPLIED + code CDATA #IMPLIED + object CDATA #IMPLIED + alt %Text; #IMPLIED + name NMTOKEN #IMPLIED + width %Length; #REQUIRED + height %Length; #REQUIRED + align %ImgAlign; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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. +--> + +<!ELEMENT img EMPTY> +<!ATTLIST img + %attrs; + src %URI; #REQUIRED + alt %Text; #REQUIRED + name NMTOKEN #IMPLIED + longdesc %URI; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + ismap (ismap) #IMPLIED + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + target %FrameTarget; #IMPLIED + > + +<!--================ Forms ===============================================--> + +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> + +<!ATTLIST form + %attrs; + action %URI; #REQUIRED + method (get|post) "get" + name NMTOKEN #IMPLIED + enctype %ContentType; "application/x-www-form-urlencoded" + onsubmit %Script; #IMPLIED + onreset %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + accept-charset %Charsets; #IMPLIED + target %FrameTarget; #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; + %focus; + 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 + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + align %ImgAlign; #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; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #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; + > + +<!ENTITY % LAlign "(top|bottom|left|right)"> + +<!ELEMENT legend %Inline;> <!-- fieldset label --> +<!ATTLIST legend + %attrs; + accesskey %Character; #IMPLIED + align %LAlign; #IMPLIED + > + +<!-- + Content is %Flow; excluding a, form, form controls, iframe +--> +<!ELEMENT button %button.content;> <!-- push button --> +<!ATTLIST button + %attrs; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #IMPLIED + > + +<!-- single-line text input control (DEPRECATED) --> +<!ELEMENT isindex EMPTY> +<!ATTLIST isindex + %coreattrs; + %i18n; + prompt %Text; #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 + align %TAlign; #IMPLIED + bgcolor %Color; #IMPLIED + > + +<!ENTITY % CAlign "(top|bottom|left|right)"> + +<!ATTLIST caption + %attrs; + align %CAlign; #IMPLIED + > + +<!-- +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; + bgcolor %Color; #IMPLIED + > + +<!-- 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; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Pixels; #IMPLIED + height %Pixels; #IMPLIED + > + +<!ATTLIST td + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Pixels; #IMPLIED + height %Pixels; #IMPLIED + > + diff --git a/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-strict.dtd b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-strict.dtd new file mode 100644 index 0000000000..2927b9ece7 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-strict.dtd @@ -0,0 +1,978 @@ +<!-- + Extensible HTML version 1.0 Strict DTD + + This is the same as HTML 4 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-2002 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: 2002/08/01 13:56:03 $ + +--> + +<!--================ 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 [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!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 % Length "CDATA"> + <!-- nn for pixels or nn% for percentage length --> + +<!ENTITY % MultiLength "CDATA"> + <!-- pixel, percentage, or relative --> + +<!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.pre + "br | span | bdo | map"> + + +<!ENTITY % special + "%special.pre; | object | img "> + +<!ENTITY % fontstyle "tt | i | b | big | small "> + +<!ENTITY % phrase "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym | sub | sup "> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== 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.inline;)*"> + +<!-- pre uses %Inline excluding big, small, sup or sup --> + +<!ENTITY % pre.content + "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline; + | %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;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, body)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + href %URI; #REQUIRED + id ID #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Block;> +<!ATTLIST noscript + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Block;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + > + +<!--=================== 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; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #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; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + > + +<!--================ 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; + %focus; + 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 + 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; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #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; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #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 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 + > + +<!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/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-transitional.dtd b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-transitional.dtd new file mode 100644 index 0000000000..628f27ac50 --- /dev/null +++ b/lib/erl_docgen/priv/docbuilder_dtd/xhtml1-transitional.dtd @@ -0,0 +1,1201 @@ +<!-- + Extensible HTML version 1.0 Transitional DTD + + This is the same as HTML 4 Transitional 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-2002 W3C (MIT, INRIA, Keio), + All Rights Reserved. + + This DTD module is identified by the PUBLIC and SYSTEM identifiers: + + PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" + + $Revision: 1.2 $ + $Date: 2002/08/01 18:37:55 $ + +--> + +<!--================ 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 [RFC3066] --> + +<!ENTITY % Character "CDATA"> + <!-- a single character, as per section 2.2 of [XML] --> + +<!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 % 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 --> + +<!-- used for object, applet, img, input and iframe --> +<!ENTITY % ImgAlign "(top|middle|bottom|left|right)"> + +<!-- a color using sRGB: #RRGGBB as Hex values --> +<!ENTITY % Color "CDATA"> + +<!-- There are also 16 widely known color names with their sRGB values: + + Black = #000000 Green = #008000 + Silver = #C0C0C0 Lime = #00FF00 + Gray = #808080 Olive = #808000 + White = #FFFFFF Yellow = #FFFF00 + Maroon = #800000 Navy = #000080 + Red = #FF0000 Blue = #0000FF + Purple = #800080 Teal = #008080 + Fuchsia= #FF00FF Aqua = #00FFFF +--> + +<!--=================== 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 alignment for p, div, h1-h6. The default is + align="left" for ltr headings, "right" for rtl --> + +<!ENTITY % TextAlign "align (left|center|right|justify) #IMPLIED"> + +<!--=================== Text Elements ====================================--> + +<!ENTITY % special.extra + "object | applet | img | map | iframe"> + +<!ENTITY % special.basic + "br | span | bdo"> + +<!ENTITY % special + "%special.basic; | %special.extra;"> + +<!ENTITY % fontstyle.extra "big | small | font | basefont"> + +<!ENTITY % fontstyle.basic "tt | i | b | u + | s | strike "> + +<!ENTITY % fontstyle "%fontstyle.basic; | %fontstyle.extra;"> + +<!ENTITY % phrase.extra "sub | sup"> +<!ENTITY % phrase.basic "em | strong | dfn | code | q | + samp | kbd | var | cite | abbr | acronym"> + +<!ENTITY % phrase "%phrase.basic; | %phrase.extra;"> + +<!ENTITY % inline.forms "input | select | textarea | label | button"> + +<!-- these can occur at block or inline level --> +<!ENTITY % misc.inline "ins | del | script"> + +<!-- these can only occur at block level --> +<!ENTITY % misc "noscript | %misc.inline;"> + +<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;"> + +<!-- %Inline; covers inline or "text-level" elements --> +<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*"> + +<!--================== Block level elements ==============================--> + +<!ENTITY % heading "h1|h2|h3|h4|h5|h6"> +<!ENTITY % lists "ul | ol | dl | menu | dir"> +<!ENTITY % blocktext "pre | hr | blockquote | address | center | noframes"> + +<!ENTITY % block + "p | %heading; | div | %lists; | %blocktext; | isindex |fieldset | table"> + +<!-- %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.inline;)*"> + +<!-- pre uses %Inline excluding img, object, applet, big, small, + font, or basefont --> + +<!ENTITY % pre.content + "(#PCDATA | a | %special.basic; | %fontstyle.basic; | %phrase.basic; | + %inline.forms; | %misc.inline;)*"> + +<!-- form uses %Flow; excluding form --> + +<!ENTITY % form.content "(#PCDATA | %block; | %inline; | %misc;)*"> + +<!-- button uses %Flow; but excludes a, form, form controls, iframe --> + +<!ENTITY % button.content + "(#PCDATA | p | %heading; | div | %lists; | %blocktext; | + table | br | span | bdo | object | applet | img | map | + %fontstyle; | %phrase; | %misc;)*"> + +<!--================ Document Structure ==================================--> + +<!-- the namespace URI designates the document profile --> + +<!ELEMENT html (head, body)> +<!ATTLIST html + %i18n; + id ID #IMPLIED + xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml' + > + +<!--================ Document Head =======================================--> + +<!ENTITY % head.misc "(script|style|meta|link|object|isindex)*"> + +<!-- content model is %head.misc; combined with a single + title and an optional base element in any order --> + +<!ELEMENT head (%head.misc;, + ((title, %head.misc;, (base, %head.misc;)?) | + (base, %head.misc;, (title, %head.misc;))))> + +<!ATTLIST head + %i18n; + id ID #IMPLIED + profile %URI; #IMPLIED + > + +<!-- The title element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT title (#PCDATA)> +<!ATTLIST title + %i18n; + id ID #IMPLIED + > + +<!-- document base URI --> + +<!ELEMENT base EMPTY> +<!ATTLIST base + id ID #IMPLIED + href %URI; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- generic metainformation --> +<!ELEMENT meta EMPTY> +<!ATTLIST meta + %i18n; + id ID #IMPLIED + http-equiv CDATA #IMPLIED + name CDATA #IMPLIED + content CDATA #REQUIRED + scheme CDATA #IMPLIED + > + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the link element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel="stylesheet") + c) to make a link to a script (rel="script") + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a PostScript or PDF version (rel="alternate" media="print") +--> + +<!ELEMENT link EMPTY> +<!ATTLIST link + %attrs; + charset %Charset; #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + type %ContentType; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + media %MediaDesc; #IMPLIED + target %FrameTarget; #IMPLIED + > + +<!-- style info, which may include CDATA sections --> +<!ELEMENT style (#PCDATA)> +<!ATTLIST style + %i18n; + id ID #IMPLIED + type %ContentType; #REQUIRED + media %MediaDesc; #IMPLIED + title %Text; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- script statements, which may include CDATA sections --> +<!ELEMENT script (#PCDATA)> +<!ATTLIST script + id ID #IMPLIED + charset %Charset; #IMPLIED + type %ContentType; #REQUIRED + language CDATA #IMPLIED + src %URI; #IMPLIED + defer (defer) #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!-- alternate content container for non script-based rendering --> + +<!ELEMENT noscript %Flow;> +<!ATTLIST noscript + %attrs; + > + +<!--======================= Frames =======================================--> + +<!-- inline subwindow --> + +<!ELEMENT iframe %Flow;> +<!ATTLIST iframe + %coreattrs; + longdesc %URI; #IMPLIED + name NMTOKEN #IMPLIED + src %URI; #IMPLIED + frameborder (1|0) "1" + marginwidth %Pixels; #IMPLIED + marginheight %Pixels; #IMPLIED + scrolling (yes|no|auto) "auto" + align %ImgAlign; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + > + +<!-- alternate content container for non frame-based rendering --> + +<!ELEMENT noframes %Flow;> +<!ATTLIST noframes + %attrs; + > + +<!--=================== Document Body ====================================--> + +<!ELEMENT body %Flow;> +<!ATTLIST body + %attrs; + onload %Script; #IMPLIED + onunload %Script; #IMPLIED + background %URI; #IMPLIED + bgcolor %Color; #IMPLIED + text %Color; #IMPLIED + link %Color; #IMPLIED + vlink %Color; #IMPLIED + alink %Color; #IMPLIED + > + +<!ELEMENT div %Flow;> <!-- generic language/style container --> +<!ATTLIST div + %attrs; + %TextAlign; + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT p %Inline;> +<!ATTLIST p + %attrs; + %TextAlign; + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from h1 (the most important) + to h6 (the least important). +--> + +<!ELEMENT h1 %Inline;> +<!ATTLIST h1 + %attrs; + %TextAlign; + > + +<!ELEMENT h2 %Inline;> +<!ATTLIST h2 + %attrs; + %TextAlign; + > + +<!ELEMENT h3 %Inline;> +<!ATTLIST h3 + %attrs; + %TextAlign; + > + +<!ELEMENT h4 %Inline;> +<!ATTLIST h4 + %attrs; + %TextAlign; + > + +<!ELEMENT h5 %Inline;> +<!ATTLIST h5 + %attrs; + %TextAlign; + > + +<!ELEMENT h6 %Inline;> +<!ATTLIST h6 + %attrs; + %TextAlign; + > + +<!--=================== Lists ============================================--> + +<!-- Unordered list bullet styles --> + +<!ENTITY % ULStyle "(disc|square|circle)"> + +<!-- Unordered list --> + +<!ELEMENT ul (li)+> +<!ATTLIST ul + %attrs; + type %ULStyle; #IMPLIED + compact (compact) #IMPLIED + > + +<!-- Ordered list numbering style + + 1 arabic numbers 1, 2, 3, ... + a lower alpha a, b, c, ... + A upper alpha A, B, C, ... + i lower roman i, ii, iii, ... + I upper roman I, II, III, ... + + The style is applied to the sequence number which by default + is reset to 1 for the first list item in an ordered list. +--> +<!ENTITY % OLStyle "CDATA"> + +<!-- Ordered (numbered) list --> + +<!ELEMENT ol (li)+> +<!ATTLIST ol + %attrs; + type %OLStyle; #IMPLIED + compact (compact) #IMPLIED + start %Number; #IMPLIED + > + +<!-- single column list (DEPRECATED) --> +<!ELEMENT menu (li)+> +<!ATTLIST menu + %attrs; + compact (compact) #IMPLIED + > + +<!-- multiple column list (DEPRECATED) --> +<!ELEMENT dir (li)+> +<!ATTLIST dir + %attrs; + compact (compact) #IMPLIED + > + +<!-- LIStyle is constrained to: "(%ULStyle;|%OLStyle;)" --> +<!ENTITY % LIStyle "CDATA"> + +<!-- list item --> + +<!ELEMENT li %Flow;> +<!ATTLIST li + %attrs; + type %LIStyle; #IMPLIED + value %Number; #IMPLIED + > + +<!-- definition lists - dt for term, dd for its definition --> + +<!ELEMENT dl (dt|dd)+> +<!ATTLIST dl + %attrs; + compact (compact) #IMPLIED + > + +<!ELEMENT dt %Inline;> +<!ATTLIST dt + %attrs; + > + +<!ELEMENT dd %Flow;> +<!ATTLIST dd + %attrs; + > + +<!--=================== Address ==========================================--> + +<!-- information on author --> + +<!ELEMENT address (#PCDATA | %inline; | %misc.inline; | p)*> +<!ATTLIST address + %attrs; + > + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT hr EMPTY> +<!ATTLIST hr + %attrs; + align (left|center|right) #IMPLIED + noshade (noshade) #IMPLIED + size %Pixels; #IMPLIED + width %Length; #IMPLIED + > + +<!--=================== Preformatted Text ================================--> + +<!-- content is %Inline; excluding + "img|object|applet|big|small|sub|sup|font|basefont" --> + +<!ELEMENT pre %pre.content;> +<!ATTLIST pre + %attrs; + width %Number; #IMPLIED + xml:space (preserve) #FIXED 'preserve' + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT blockquote %Flow;> +<!ATTLIST blockquote + %attrs; + cite %URI; #IMPLIED + > + +<!--=================== Text alignment ===================================--> + +<!-- center content --> +<!ELEMENT center %Flow;> +<!ATTLIST center + %attrs; + > + +<!--=================== 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; + %focus; + charset %Charset; #IMPLIED + type %ContentType; #IMPLIED + name NMTOKEN #IMPLIED + href %URI; #IMPLIED + hreflang %LanguageCode; #IMPLIED + rel %LinkTypes; #IMPLIED + rev %LinkTypes; #IMPLIED + shape %Shape; "rect" + coords %Coords; #IMPLIED + target %FrameTarget; #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; + clear (left|all|right|none) "none" + > + +<!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;> + +<!ELEMENT u %Inline;> <!-- underline --> +<!ATTLIST u %attrs;> + +<!ELEMENT s %Inline;> <!-- strike-through --> +<!ATTLIST s %attrs;> + +<!ELEMENT strike %Inline;> <!-- strike-through --> +<!ATTLIST strike %attrs;> + +<!ELEMENT basefont EMPTY> <!-- base font size --> +<!ATTLIST basefont + id ID #IMPLIED + size CDATA #REQUIRED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!ELEMENT font %Inline;> <!-- local change to font --> +<!ATTLIST font + %coreattrs; + %i18n; + size CDATA #IMPLIED + color %Color; #IMPLIED + face CDATA #IMPLIED + > + +<!--==================== 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 + align %ImgAlign; #IMPLIED + border %Pixels; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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 #REQUIRED + value CDATA #IMPLIED + valuetype (data|ref|object) "data" + type %ContentType; #IMPLIED + > + +<!--=================== Java applet ==================================--> +<!-- + One of code or object attributes must be present. + Place param elements before other content. +--> +<!ELEMENT applet (#PCDATA | param | %block; | form | %inline; | %misc;)*> +<!ATTLIST applet + %coreattrs; + codebase %URI; #IMPLIED + archive CDATA #IMPLIED + code CDATA #IMPLIED + object CDATA #IMPLIED + alt %Text; #IMPLIED + name NMTOKEN #IMPLIED + width %Length; #REQUIRED + height %Length; #REQUIRED + align %ImgAlign; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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. +--> + +<!ELEMENT img EMPTY> +<!ATTLIST img + %attrs; + src %URI; #REQUIRED + alt %Text; #REQUIRED + name NMTOKEN #IMPLIED + longdesc %URI; #IMPLIED + height %Length; #IMPLIED + width %Length; #IMPLIED + usemap %URI; #IMPLIED + ismap (ismap) #IMPLIED + align %ImgAlign; #IMPLIED + border %Length; #IMPLIED + hspace %Pixels; #IMPLIED + vspace %Pixels; #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 CDATA #IMPLIED + > + +<!ELEMENT area EMPTY> +<!ATTLIST area + %attrs; + %focus; + shape %Shape; "rect" + coords %Coords; #IMPLIED + href %URI; #IMPLIED + nohref (nohref) #IMPLIED + alt %Text; #REQUIRED + target %FrameTarget; #IMPLIED + > + +<!--================ Forms ===============================================--> + +<!ELEMENT form %form.content;> <!-- forms shouldn't be nested --> + +<!ATTLIST form + %attrs; + action %URI; #REQUIRED + method (get|post) "get" + name NMTOKEN #IMPLIED + enctype %ContentType; "application/x-www-form-urlencoded" + onsubmit %Script; #IMPLIED + onreset %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + accept-charset %Charsets; #IMPLIED + target %FrameTarget; #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; + %focus; + 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 + onselect %Script; #IMPLIED + onchange %Script; #IMPLIED + accept %ContentTypes; #IMPLIED + align %ImgAlign; #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; + %focus; + name CDATA #IMPLIED + rows %Number; #REQUIRED + cols %Number; #REQUIRED + disabled (disabled) #IMPLIED + readonly (readonly) #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; + > + +<!ENTITY % LAlign "(top|bottom|left|right)"> + +<!ELEMENT legend %Inline;> <!-- fieldset label --> +<!ATTLIST legend + %attrs; + accesskey %Character; #IMPLIED + align %LAlign; #IMPLIED + > + +<!-- + Content is %Flow; excluding a, form, form controls, iframe +--> +<!ELEMENT button %button.content;> <!-- push button --> +<!ATTLIST button + %attrs; + %focus; + name CDATA #IMPLIED + value CDATA #IMPLIED + type (button|submit|reset) "submit" + disabled (disabled) #IMPLIED + > + +<!-- single-line text input control (DEPRECATED) --> +<!ELEMENT isindex EMPTY> +<!ATTLIST isindex + %coreattrs; + %i18n; + prompt %Text; #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 + align %TAlign; #IMPLIED + bgcolor %Color; #IMPLIED + > + +<!ENTITY % CAlign "(top|bottom|left|right)"> + +<!ATTLIST caption + %attrs; + align %CAlign; #IMPLIED + > + +<!-- +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; + bgcolor %Color; #IMPLIED + > + +<!-- 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; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Length; #IMPLIED + height %Length; #IMPLIED + > + +<!ATTLIST td + %attrs; + abbr %Text; #IMPLIED + axis CDATA #IMPLIED + headers IDREFS #IMPLIED + scope %Scope; #IMPLIED + rowspan %Number; "1" + colspan %Number; "1" + %cellhalign; + %cellvalign; + nowrap (nowrap) #IMPLIED + bgcolor %Color; #IMPLIED + width %Length; #IMPLIED + height %Length; #IMPLIED + > + diff --git a/lib/erl_docgen/priv/dtd_html_entities/Makefile b/lib/erl_docgen/priv/dtd_html_entities/Makefile new file mode 100644 index 0000000000..d57302bd1b --- /dev/null +++ b/lib/erl_docgen/priv/dtd_html_entities/Makefile @@ -0,0 +1,75 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +ENTITY_FILES = \ + xhtml-lat1.ent + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/dtd_html_entities + $(INSTALL_DATA) $(ENTITY_FILES) $(RELSYSDIR)/priv/dtd_html_entities + + +release_docs_spec: + + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/dtd_html_entities/xhtml-lat1.ent b/lib/erl_docgen/priv/dtd_html_entities/xhtml-lat1.ent new file mode 100644 index 0000000000..aaae738cfc --- /dev/null +++ b/lib/erl_docgen/priv/dtd_html_entities/xhtml-lat1.ent @@ -0,0 +1,196 @@ +<!-- 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 for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> + %HTMLlat1; +--> + +<!ENTITY nbsp " "> <!-- no-break space = non-breaking space, + U+00A0 ISOnum --> +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, + U+00A6 ISOnum --> +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, + U+00A8 ISOdia --> +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark + = left pointing guillemet, U+00AB ISOnum --> +<!ENTITY not "¬"> <!-- not sign = discretionary hyphen, + U+00AC ISOnum --> +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, + U+00AD ISOnum --> +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, + U+00AE ISOnum --> +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline + = APL overbar, U+00AF ISOdia --> +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, + U+00B1 ISOnum --> +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two + = squared, U+00B2 ISOnum --> +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three + = cubed, U+00B3 ISOnum --> +<!ENTITY acute "´"> <!-- acute accent = spacing acute, + U+00B4 ISOdia --> +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, + U+00B6 ISOnum --> +<!ENTITY middot "·"> <!-- middle dot = Georgian comma + = Greek middle dot, U+00B7 ISOnum --> +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, + U+00B9 ISOnum --> +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, + U+00BA ISOnum --> +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark + = right pointing guillemet, U+00BB ISOnum --> +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter + = fraction one quarter, U+00BC ISOnum --> +<!ENTITY frac12 "½"> <!-- vulgar fraction one half + = fraction one half, U+00BD ISOnum --> +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters + = fraction three quarters, U+00BE ISOnum --> +<!ENTITY iquest "¿"> <!-- inverted question mark + = turned question mark, U+00BF ISOnum --> +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave + = latin capital letter A grave, + U+00C0 ISOlat1 --> +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, + U+00C1 ISOlat1 --> +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, + U+00C2 ISOlat1 --> +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, + U+00C3 ISOlat1 --> +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, + U+00C4 ISOlat1 --> +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above + = latin capital letter A ring, + U+00C5 ISOlat1 --> +<!ENTITY AElig "Æ"> <!-- latin capital letter AE + = latin capital ligature AE, + U+00C6 ISOlat1 --> +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, + U+00C7 ISOlat1 --> +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, + U+00C8 ISOlat1 --> +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, + U+00C9 ISOlat1 --> +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, + U+00CA ISOlat1 --> +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, + U+00CB ISOlat1 --> +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, + U+00CC ISOlat1 --> +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, + U+00CD ISOlat1 --> +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, + U+00CE ISOlat1 --> +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, + U+00CF ISOlat1 --> +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, + U+00D1 ISOlat1 --> +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, + U+00D2 ISOlat1 --> +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, + U+00D3 ISOlat1 --> +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, + U+00D4 ISOlat1 --> +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, + U+00D5 ISOlat1 --> +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, + U+00D6 ISOlat1 --> +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke + = latin capital letter O slash, + U+00D8 ISOlat1 --> +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, + U+00D9 ISOlat1 --> +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, + U+00DA ISOlat1 --> +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, + U+00DB ISOlat1 --> +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, + U+00DC ISOlat1 --> +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, + U+00DD ISOlat1 --> +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, + U+00DE ISOlat1 --> +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, + U+00DF ISOlat1 --> +<!ENTITY agrave "à"> <!-- latin small letter a with grave + = latin small letter a grave, + U+00E0 ISOlat1 --> +<!ENTITY aacute "á"> <!-- latin small letter a with acute, + U+00E1 ISOlat1 --> +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, + U+00E2 ISOlat1 --> +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, + U+00E3 ISOlat1 --> +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, + U+00E4 ISOlat1 --> +<!ENTITY aring "å"> <!-- latin small letter a with ring above + = latin small letter a ring, + U+00E5 ISOlat1 --> +<!ENTITY aelig "æ"> <!-- latin small letter ae + = latin small ligature ae, U+00E6 ISOlat1 --> +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, + U+00E7 ISOlat1 --> +<!ENTITY egrave "è"> <!-- latin small letter e with grave, + U+00E8 ISOlat1 --> +<!ENTITY eacute "é"> <!-- latin small letter e with acute, + U+00E9 ISOlat1 --> +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, + U+00EA ISOlat1 --> +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, + U+00EB ISOlat1 --> +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, + U+00EC ISOlat1 --> +<!ENTITY iacute "í"> <!-- latin small letter i with acute, + U+00ED ISOlat1 --> +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, + U+00EE ISOlat1 --> +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, + U+00EF ISOlat1 --> +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, + U+00F1 ISOlat1 --> +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, + U+00F2 ISOlat1 --> +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, + U+00F3 ISOlat1 --> +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, + U+00F4 ISOlat1 --> +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, + U+00F5 ISOlat1 --> +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, + U+00F6 ISOlat1 --> +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, + = latin small letter o slash, + U+00F8 ISOlat1 --> +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, + U+00F9 ISOlat1 --> +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, + U+00FA ISOlat1 --> +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, + U+00FB ISOlat1 --> +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, + U+00FC ISOlat1 --> +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, + U+00FD ISOlat1 --> +<!ENTITY thorn "þ"> <!-- latin small letter thorn with, + U+00FE ISOlat1 --> +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, + U+00FF ISOlat1 --> diff --git a/lib/erl_docgen/priv/dtd_man_entities/Makefile b/lib/erl_docgen/priv/dtd_man_entities/Makefile new file mode 100644 index 0000000000..5651d8bc29 --- /dev/null +++ b/lib/erl_docgen/priv/dtd_man_entities/Makefile @@ -0,0 +1,75 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +ENTITY_FILES = \ + xhtml-lat1.ent + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/dtd_man_entities + $(INSTALL_DATA) $(ENTITY_FILES) $(RELSYSDIR)/priv/dtd_man_entities + + +release_docs_spec: + + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/dtd_man_entities/xhtml-lat1.ent b/lib/erl_docgen/priv/dtd_man_entities/xhtml-lat1.ent new file mode 100644 index 0000000000..3df9970a43 --- /dev/null +++ b/lib/erl_docgen/priv/dtd_man_entities/xhtml-lat1.ent @@ -0,0 +1,195 @@ +<!-- 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 for XHTML//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> + %HTMLlat1; +--> + +<!ENTITY nbsp " "> <!-- no-break space = space,in man pages --> +<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum --> +<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum --> +<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum --> +<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum --> +<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum --> +<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar, + U+00A6 ISOnum --> +<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum --> +<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis, + U+00A8 ISOdia --> +<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum --> +<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum --> +<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark + = left pointing guillemet, U+00AB ISOnum --> +<!ENTITY not "¬"> <!-- not sign = discretionary hyphen, + U+00AC ISOnum --> +<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen, + U+00AD ISOnum --> +<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign, + U+00AE ISOnum --> +<!ENTITY macr "¯"> <!-- macron = spacing macron = overline + = APL overbar, U+00AF ISOdia --> +<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum --> +<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign, + U+00B1 ISOnum --> +<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two + = squared, U+00B2 ISOnum --> +<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three + = cubed, U+00B3 ISOnum --> +<!ENTITY acute "´"> <!-- acute accent = spacing acute, + U+00B4 ISOdia --> +<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum --> +<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign, + U+00B6 ISOnum --> +<!ENTITY middot "·"> <!-- middle dot = Georgian comma + = Greek middle dot, U+00B7 ISOnum --> +<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia --> +<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one, + U+00B9 ISOnum --> +<!ENTITY ordm "º"> <!-- masculine ordinal indicator, + U+00BA ISOnum --> +<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark + = right pointing guillemet, U+00BB ISOnum --> +<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter + = fraction one quarter, U+00BC ISOnum --> +<!ENTITY frac12 "½"> <!-- vulgar fraction one half + = fraction one half, U+00BD ISOnum --> +<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters + = fraction three quarters, U+00BE ISOnum --> +<!ENTITY iquest "¿"> <!-- inverted question mark + = turned question mark, U+00BF ISOnum --> +<!ENTITY Agrave "À"> <!-- latin capital letter A with grave + = latin capital letter A grave, + U+00C0 ISOlat1 --> +<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute, + U+00C1 ISOlat1 --> +<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex, + U+00C2 ISOlat1 --> +<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde, + U+00C3 ISOlat1 --> +<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis, + U+00C4 ISOlat1 --> +<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above + = latin capital letter A ring, + U+00C5 ISOlat1 --> +<!ENTITY AElig "Æ"> <!-- latin capital letter AE + = latin capital ligature AE, + U+00C6 ISOlat1 --> +<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla, + U+00C7 ISOlat1 --> +<!ENTITY Egrave "È"> <!-- latin capital letter E with grave, + U+00C8 ISOlat1 --> +<!ENTITY Eacute "É"> <!-- latin capital letter E with acute, + U+00C9 ISOlat1 --> +<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex, + U+00CA ISOlat1 --> +<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis, + U+00CB ISOlat1 --> +<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave, + U+00CC ISOlat1 --> +<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute, + U+00CD ISOlat1 --> +<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex, + U+00CE ISOlat1 --> +<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis, + U+00CF ISOlat1 --> +<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 --> +<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde, + U+00D1 ISOlat1 --> +<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave, + U+00D2 ISOlat1 --> +<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute, + U+00D3 ISOlat1 --> +<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex, + U+00D4 ISOlat1 --> +<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde, + U+00D5 ISOlat1 --> +<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis, + U+00D6 ISOlat1 --> +<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum --> +<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke + = latin capital letter O slash, + U+00D8 ISOlat1 --> +<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave, + U+00D9 ISOlat1 --> +<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute, + U+00DA ISOlat1 --> +<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex, + U+00DB ISOlat1 --> +<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis, + U+00DC ISOlat1 --> +<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute, + U+00DD ISOlat1 --> +<!ENTITY THORN "Þ"> <!-- latin capital letter THORN, + U+00DE ISOlat1 --> +<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed, + U+00DF ISOlat1 --> +<!ENTITY agrave "à"> <!-- latin small letter a with grave + = latin small letter a grave, + U+00E0 ISOlat1 --> +<!ENTITY aacute "á"> <!-- latin small letter a with acute, + U+00E1 ISOlat1 --> +<!ENTITY acirc "â"> <!-- latin small letter a with circumflex, + U+00E2 ISOlat1 --> +<!ENTITY atilde "ã"> <!-- latin small letter a with tilde, + U+00E3 ISOlat1 --> +<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis, + U+00E4 ISOlat1 --> +<!ENTITY aring "å"> <!-- latin small letter a with ring above + = latin small letter a ring, + U+00E5 ISOlat1 --> +<!ENTITY aelig "æ"> <!-- latin small letter ae + = latin small ligature ae, U+00E6 ISOlat1 --> +<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla, + U+00E7 ISOlat1 --> +<!ENTITY egrave "è"> <!-- latin small letter e with grave, + U+00E8 ISOlat1 --> +<!ENTITY eacute "é"> <!-- latin small letter e with acute, + U+00E9 ISOlat1 --> +<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex, + U+00EA ISOlat1 --> +<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis, + U+00EB ISOlat1 --> +<!ENTITY igrave "ì"> <!-- latin small letter i with grave, + U+00EC ISOlat1 --> +<!ENTITY iacute "í"> <!-- latin small letter i with acute, + U+00ED ISOlat1 --> +<!ENTITY icirc "î"> <!-- latin small letter i with circumflex, + U+00EE ISOlat1 --> +<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis, + U+00EF ISOlat1 --> +<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 --> +<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde, + U+00F1 ISOlat1 --> +<!ENTITY ograve "ò"> <!-- latin small letter o with grave, + U+00F2 ISOlat1 --> +<!ENTITY oacute "ó"> <!-- latin small letter o with acute, + U+00F3 ISOlat1 --> +<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex, + U+00F4 ISOlat1 --> +<!ENTITY otilde "õ"> <!-- latin small letter o with tilde, + U+00F5 ISOlat1 --> +<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis, + U+00F6 ISOlat1 --> +<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum --> +<!ENTITY oslash "ø"> <!-- latin small letter o with stroke, + = latin small letter o slash, + U+00F8 ISOlat1 --> +<!ENTITY ugrave "ù"> <!-- latin small letter u with grave, + U+00F9 ISOlat1 --> +<!ENTITY uacute "ú"> <!-- latin small letter u with acute, + U+00FA ISOlat1 --> +<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex, + U+00FB ISOlat1 --> +<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis, + U+00FC ISOlat1 --> +<!ENTITY yacute "ý"> <!-- latin small letter y with acute, + U+00FD ISOlat1 --> +<!ENTITY thorn "þ"> <!-- latin small letter thorn with, + U+00FE ISOlat1 --> +<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis, + U+00FF ISOlat1 --> diff --git a/lib/erl_docgen/priv/images/Makefile b/lib/erl_docgen/priv/images/Makefile new file mode 100644 index 0000000000..8b858fefb3 --- /dev/null +++ b/lib/erl_docgen/priv/images/Makefile @@ -0,0 +1,79 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +GIF_FILES = \ + erlang-logo.gif + +PNG_FILES = \ + erlang-logo.png + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/images + $(INSTALL_DATA) $(GIF_FILES) $(PNG_FILES) $(RELSYSDIR)/priv/images + + +release_docs_spec: + $(INSTALL_DIR) $(RELEASE_PATH)/doc + $(INSTALL_DATA) $(PNG_FILES) $(RELEASE_PATH)/doc + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/images/erlang-logo.gif b/lib/erl_docgen/priv/images/erlang-logo.gif Binary files differnew file mode 100644 index 0000000000..abf5f225d7 --- /dev/null +++ b/lib/erl_docgen/priv/images/erlang-logo.gif diff --git a/lib/erl_docgen/priv/images/erlang-logo.png b/lib/erl_docgen/priv/images/erlang-logo.png Binary files differnew file mode 100644 index 0000000000..56291aac15 --- /dev/null +++ b/lib/erl_docgen/priv/images/erlang-logo.png diff --git a/lib/erl_docgen/priv/images/erlang-old.gif b/lib/erl_docgen/priv/images/erlang-old.gif Binary files differnew file mode 100644 index 0000000000..ed2796223a --- /dev/null +++ b/lib/erl_docgen/priv/images/erlang-old.gif diff --git a/lib/erl_docgen/priv/js/flipmenu/Makefile b/lib/erl_docgen/priv/js/flipmenu/Makefile new file mode 100644 index 0000000000..65c5c91f35 --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/Makefile @@ -0,0 +1,81 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +GIF_FILES = \ + flip_closed.gif \ + flip_open.gif \ + flip_static.gif + +JS_FILES = \ + flipmenu.js + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/js/flipmenu + $(INSTALL_DATA) $(JS_FILES) $(GIF_FILES) $(RELSYSDIR)/priv/js/flipmenu + + +release_docs_spec: + $(INSTALL_DIR) $(RELEASE_PATH)/doc/js/flipmenu + $(INSTALL_DATA) $(JS_FILES) $(GIF_FILES) $(RELEASE_PATH)/doc/js/flipmenu + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/js/flipmenu/flip_closed.gif b/lib/erl_docgen/priv/js/flipmenu/flip_closed.gif Binary files differnew file mode 100644 index 0000000000..9a27c7c25d --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/flip_closed.gif diff --git a/lib/erl_docgen/priv/js/flipmenu/flip_open.gif b/lib/erl_docgen/priv/js/flipmenu/flip_open.gif Binary files differnew file mode 100644 index 0000000000..9dda60e73a --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/flip_open.gif diff --git a/lib/erl_docgen/priv/js/flipmenu/flip_static.gif b/lib/erl_docgen/priv/js/flipmenu/flip_static.gif Binary files differnew file mode 100644 index 0000000000..2b3ddb5382 --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/flip_static.gif diff --git a/lib/erl_docgen/priv/js/flipmenu/flipmenu.js b/lib/erl_docgen/priv/js/flipmenu/flipmenu.js new file mode 100644 index 0000000000..1f70f2509b --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/flipmenu.js @@ -0,0 +1,352 @@ +// ######################################################################
+
+// ## flipMenu 5.0.0 (c) J. Reijers
+// ## Last modifications: 23 March 2007
+
+// ######################################################################
+
+// ## Degree of indentation from the left.
+ flipIndentation = "5px";
+
+// ## Padding inbetween menu items.
+ flipVerticalPadding = "4px";
+
+// ## Margin between the left of the browser and the menu.
+ flipLeftMargin = "16px";
+
+// ## Margin between the top of the browser and the menu.
+ flipTopMargin = "10px";
+
+// ## Allow multiple menus to fold out without closing all the other open ones.
+ flipOpenMultipleMenus = false;
+
+// ## Preserve the current state of the menu (requires cookies).
+ flipSaveMenuState = false;
+
+// ## Open entries where the attribute expanded is true
+ flipMarked = true;
+
+// ## Use custom images for bullets
+ flipImages = true;
+
+// ## Images to use (specify full path)
+ flipImg_open = "flip_open.gif";
+ flipImg_closed = "flip_closed.gif";
+ flipImg_static = "flip_static.gif";
+
+// ## Initialise all flipMenus onload
+ flipInitOnLoad = true;
+
+// ## Message to display in status bar while loading
+ flipLoadingMessage = "Loading...";
+
+// ######################################################################
+
+function alterSize(someSize, alterAmount) {
+ someSize = String(someSize);
+ var tmpNr = parseFloat(someSize.replace(/\D/g, ""));
+ var tmpChar = someSize.replace(/\d/g, "");
+ return isNaN(tmpNr) ? someSize : ((tmpNr + alterAmount) + tmpChar);
+}
+
+isIE = (String(navigator.appVersion).indexOf("MSIE") > -1);
+if (!isIE) flipIndentation = alterSize(flipIndentation, -16);
+if (!isIE) flipLeftMargin = alterSize(flipLeftMargin, -16);
+
+document.write(
+ "<style type=\"text/css\">" +
+
+ "ul.flipMenu { margin-top: " + flipTopMargin + "; margin-left: " + flipLeftMargin + "; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+ "ul.flipMenu ul, ul.flipMenu li { padding-top: " + flipVerticalPadding + "; margin-left: " + flipIndentation + "; margin-right: 0px; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+
+ "li.flipFolderOpen { cursor: pointer; " + (flipImages ? "list-style-image: url(" + document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_open + ");" : "") + " }" +
+ "li.flipFolderClosed { cursor: pointer; " + (flipImages ? "list-style-image: url(" + document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_closed + ");" : "") + " }" +
+
+ "</style>"
+);
+
+
+
+if (flipImages) {
+ aFlipPreloads = [];
+ aFlipPreloads[0] = new Image;
+ aFlipPreloads[0].src = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_open;
+ aFlipPreloads[1] = new Image;
+ aFlipPreloads[1].src = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_closed;
+ aFlipPreloads[2] = new Image;
+ aFlipPreloads[2].src = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_static;
+}
+
+function addEvent(someObj, someEvent, someFunction) {
+ if (someObj.addEventListener) { someObj.addEventListener(someEvent, someFunction, true); return true; } else if (someObj.attachEvent) return someObj.attachEvent("on" + someEvent, someFunction); else return false;
+}
+
+function openCloseFlip(theItem, newSetting, openParents) {
+ if (theItem.flipID) {
+ if (openParents) {
+ var tmpItem = theItem;
+ while (tmpItem.parentElement || tmpItem.parentNode) {
+ tmpItem = (tmpItem.parentElement) ? tmpItem.parentElement : tmpItem.parentNode;
+ openCloseFlip(tmpItem, newSetting);
+ }
+ }
+ if ((theItem.className == "flipFolderOpen" && newSetting == "closed") || (theItem.className == "flipFolderClosed" && newSetting == "open")) {
+ if (!theItem.childrenInitialised) {
+ for (var j = 0; j < theItem.childNodes.length; j++) if (theItem.childNodes[j].nodeName == "UL" && !theItem.childNodes[j].initialised) initFlip(theItem.childNodes[j]);
+ theItem.childrenInitialised = true;
+ }
+ theItem.getElementsByTagName("UL")[0].style.display = (newSetting == "open") ? "" : "none";
+ theItem.className = newSetting == "open" ? "flipFolderOpen" : "flipFolderClosed";
+ }
+ }
+}
+
+function openFlip(theItem, openParents) {
+ openCloseFlip(theItem, "open", openParents);
+}
+
+function closeFlip(theItem, closeParents) {
+ openCloseFlip(theItem, "closed", closeParents);
+}
+
+function toggleFlip(theElement) {
+ if (theElement.flipID) {
+ var theItem = theElement;
+ var isContained = true;
+ } else {
+ if (theElement && theElement.button > 0) return false;
+ var theItem = (isIE) ? event.srcElement : theElement.target;
+
+ var isContained = false;
+ if (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") isContained = true; else while (theItem.parentElement || theItem.parentNode) {
+ if (theItem.className == "flipStatic" || theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") {
+ isContained = (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed");
+ break;
+ }
+ theItem = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ }
+ }
+
+ var toOpenFlip = (isContained && theItem.className == "flipFolderClosed");
+
+ if (!flipOpenMultipleMenus && (toOpenFlip || theItem.className == "flipStatic")) {
+ if (theItem.parentElement || theItem.parentNode) {
+ var parentUL = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ for (var i = 0; i < parentUL.childNodes.length; i++) closeFlip(parentUL.childNodes[i]);
+ }
+ }
+
+ if (isContained) {
+ if (toOpenFlip) openFlip(theItem); else closeFlip(theItem);
+ }
+}
+
+function setAllFlips(startElement, newSetting) {
+ if (typeof startElement == "undefined") var startElement = document;
+ if (typeof newSetting == "undefined") var newSetting = "closed";
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var parentFlip = aUL[i].parentElement ? aUL[i].parentElement : aUL[i].parentNode;
+ openCloseFlip(parentFlip, newSetting);
+ }
+}
+
+function openAllFlips(startElement) {
+ setAllFlips(startElement, "open");
+}
+
+function closeAllFlips(startElement) {
+ setAllFlips(startElement, "closed");
+}
+
+function initFlip(startElement) {
+ if (!document.createElement) return false;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ if (flipLoadingMessage != "") window.status = flipLoadingMessage + " " + parseInt((i / (aUL.length - 1)) * 100, 10) + "%";
+ var curUL = aUL[i];
+ if (curUL.className == "flipMenu") {
+ initFlip(curUL);
+
+ // ## Fix text selecting problem in Mozilla
+ curUL.onselectstart = new Function("return false");
+ curUL.onmousedown = new Function("return false");
+ curUL.onclick = new Function("return true");
+ }
+ }
+
+ if (flipSaveMenuState) loadMenuState();
+
+ if (flipLoadingMessage != "") window.status = "";
+ return true;
+ }
+
+ if (startElement.className == "flipMenu") startElement.style.display = "";
+
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ if (typeof flipIDCur == "undefined") flipIDCur = 0;
+ if (!startElement.initialised) {
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) aUL[i].style.display = "none";
+ }
+
+ for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.nodeName == "LI") {
+ flipIDCur++;
+ curNode.flipID = flipIDCur;
+
+ var nodeHasChildren = curNode.getElementsByTagName("UL").length > 0;
+ if (nodeHasChildren) {
+ if (flipImages && curNode.flipClosed) curNode.style.listStyleImage = "url(" + curNode.flipClosed + ")";
+
+ if (curNode.className == null || curNode.className == "") curNode.className = "flipFolderClosed";
+ } else {
+ curNode.className = "flipStatic";
+ if (flipImages && !curNode.style.listStyleImage) {
+ if (!curNode.flipStatic) curNode.flipStatic = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_static;
+ curNode.style.listStyleImage = "url(" + curNode.flipStatic + ")";
+ }
+ }
+
+
+ if (!curNode.flipOpen) curNode.flipOpen = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_open;
+ if (!curNode.flipClosed) curNode.flipClosed = document.getElementById("js").getAttribute("src").match( /.*\// ) + flipImg_closed;
+
+ if (flipMarked) {
+ if (curNode.getAttribute("expanded") == "true") curNode.flipIsOpen=1;
+ }
+
+ if (curNode.flipIsOpen) openFlip(curNode);
+ }
+ }
+
+ startElement.initialised = true;
+}
+
+function rootOfFlip(flipID, startElement) {
+
+ function containsFlip(startElement, flipID) {
+ var flipFound = false;
+ var i = 0;
+ while (i < startElement.childNodes.length && !flipFound) {
+ var curNode = startElement.childNodes[i];
+ flipFound = (curNode.flipID == flipID) ? true : containsFlip(curNode, flipID);
+ i++;
+ }
+ return flipFound;
+ }
+
+ var rootFlip = null;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ var i = 0;
+ while (rootFlip == null && i < aUL.length) {
+ var curUL = aUL[i];
+ if (curUL.nodeName == "UL" && curUL.className == "flipMenu") rootFlip = rootOfFlip(flipID, curUL);
+ i++;
+ }
+ return rootFlip;
+ }
+
+ if (startElement.childNodes) for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.flipID == flipID || containsFlip(curNode, flipID)) rootFlip = curNode;
+ }
+
+ return rootFlip;
+}
+
+function getCookie(cookieName) {
+ var allCookies = document.cookie;
+ var indexStr = allCookies.indexOf(cookieName + "=");
+ if (indexStr == -1) return "";
+ indexStr = allCookies.indexOf("=", indexStr) + 1;
+ var endStr = allCookies.indexOf(";", indexStr);
+ if (endStr == -1) endStr = allCookies.length;
+ return unescape(allCookies.substring(indexStr, endStr));
+}
+
+function inArray(someID, someArray) {
+ for (var i = 0; i < someArray.length; i++) if (someArray[i] == someID) return true;
+ return false;
+}
+
+function getMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return "";
+
+ var openItems = "";
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (curNode.style.display == "" && parentFlip.flipID) openItems += " " + parentFlip.flipID;
+ }
+ return openItems;
+}
+
+function putMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (inArray(parentFlip.flipID, aOpenItems)) {
+ openFlip(parentFlip);
+ if (typeof prevFlipRoot == "undefined") {
+ var testRoot = rootOfFlip(parentFlip.flipID);
+ if (testRoot.flipID == parentFlip.flipID) prevFlipRoot = testRoot;
+ }
+ }
+ }
+}
+
+function saveMenuState() {
+ if (flipSaveMenuState) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=" + getMenuState(curUL) + ";";
+ }
+ }
+}
+
+function loadMenuState() {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") {
+ var savedState = String(getCookie(cookiePrefix + curID));
+ if (savedState != "") {
+ aOpenItems = savedState.split(" ");
+ putMenuState(curUL);
+ }
+ }
+ }
+
+ addEvent(window, "unload", saveMenuState);
+}
+
+function clearMenuState(flipMenuID) {
+ if (typeof flipMenuID == "undefined") {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=;";
+ }
+ } else document.cookie = cookiePrefix + flipMenuID + "=;";
+}
+
+cookiePrefix = document.location.pathname + "_";
+
+addEvent(document, "click", toggleFlip);
+if (flipInitOnLoad) addEvent(window, "load", initFlip);
diff --git a/lib/erl_docgen/priv/js/flipmenu/fm.js b/lib/erl_docgen/priv/js/flipmenu/fm.js new file mode 100644 index 0000000000..f07177051b --- /dev/null +++ b/lib/erl_docgen/priv/js/flipmenu/fm.js @@ -0,0 +1,376 @@ +// ######################################################################
+
+// ## flipMenu 5.0.0 (c) J. Reijers
+// ## Last modifications: 23 March 2007
+
+// ######################################################################
+
+// ## Degree of indentation from the left.
+ flipIndentation = "5px";
+
+// ## Padding inbetween menu items.
+ flipVerticalPadding = "4px";
+
+// ## Margin between the left of the browser and the menu.
+ flipLeftMargin = "16px";
+
+// ## Margin between the top of the browser and the menu.
+ flipTopMargin = "10px";
+
+// ## Allow multiple menus to fold out without closing all the other open ones.
+ flipOpenMultipleMenus = false;
+
+// ## Preserve the current state of the menu (requires cookies).
+ flipSaveMenuState = false;
+
+// ## Preserve the current state of the menu (requires cookies).
+ constantState = true;
+
+// ## Use custom images for bullets
+ flipImages = true;
+
+// ## Images to use (specify full path)
+ flipImg_open = "js/flipmenu/flip_open.gif";
+ flipImg_closed = "js/flipmenu/flip_closed.gif";
+ flipImg_static = "js/flipmenu/flip_static.gif";
+
+// ## Initialise all flipMenus onload
+ flipInitOnLoad = true;
+
+// ## Message to display in status bar while loading
+ flipLoadingMessage = "Loading...";
+
+// ######################################################################
+
+function alterSize(someSize, alterAmount) {
+ someSize = String(someSize);
+ var tmpNr = parseFloat(someSize.replace(/\D/g, ""));
+ var tmpChar = someSize.replace(/\d/g, "");
+ return isNaN(tmpNr) ? someSize : ((tmpNr + alterAmount) + tmpChar);
+}
+
+isIE = (String(navigator.appVersion).indexOf("MSIE") > -1);
+if (!isIE) flipIndentation = alterSize(flipIndentation, -16);
+if (!isIE) flipLeftMargin = alterSize(flipLeftMargin, -16);
+
+document.write(
+ "<style type=\"text/css\">" +
+
+ "ul.flipMenu { margin-top: " + flipTopMargin + "; margin-left: " + flipLeftMargin + "; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+ "ul.flipMenu ul, ul.flipMenu li { padding-top: " + flipVerticalPadding + "; margin-left: " + flipIndentation + "; margin-right: 0px; " + (flipImages ? "" : "list-style-type: none;") + " }" +
+
+ "li.flipFolderOpen { cursor: pointer; " + (flipImages ? "list-style-image: url(" + flipImg_open + ");" : "") + " }" +
+ "li.flipFolderClosed { cursor: pointer; " + (flipImages ? "list-style-image: url(" + flipImg_closed + ");" : "") + " }" +
+
+ "</style>"
+);
+
+if (flipImages) {
+ aFlipPreloads = [];
+ aFlipPreloads[0] = new Image;
+ aFlipPreloads[0].src = flipImg_open;
+ aFlipPreloads[1] = new Image;
+ aFlipPreloads[1].src = flipImg_closed;
+ aFlipPreloads[2] = new Image;
+ aFlipPreloads[2].src = flipImg_static;
+}
+
+function addEvent(someObj, someEvent, someFunction) {
+ if (someObj.addEventListener) { someObj.addEventListener(someEvent, someFunction, true); return true; } else if (someObj.attachEvent) return someObj.attachEvent("on" + someEvent, someFunction); else return false;
+}
+
+function openCloseFlip(theItem, newSetting, openParents) {
+ if (theItem.flipID) {
+ if (openParents) {
+ var tmpItem = theItem;
+ while (tmpItem.parentElement || tmpItem.parentNode) {
+ tmpItem = (tmpItem.parentElement) ? tmpItem.parentElement : tmpItem.parentNode;
+ openCloseFlip(tmpItem, newSetting);
+ }
+ }
+ if ((theItem.className == "flipFolderOpen" && newSetting == "closed") || (theItem.className == "flipFolderClosed" && newSetting == "open")) {
+ if (!theItem.childrenInitialised) {
+ for (var j = 0; j < theItem.childNodes.length; j++) if (theItem.childNodes[j].nodeName == "UL" && !theItem.childNodes[j].initialised) initFlip(theItem.childNodes[j]);
+ theItem.childrenInitialised = true;
+ }
+ theItem.getElementsByTagName("UL")[0].style.display = (newSetting == "open") ? "" : "none";
+ theItem.className = newSetting == "open" ? "flipFolderOpen" : "flipFolderClosed";
+ }
+ }
+}
+
+function openFlip(theItem, openParents) {
+ openCloseFlip(theItem, "open", openParents);
+}
+
+function closeFlip(theItem, closeParents) {
+
+ openCloseFlip(theItem, "closed", closeParents);
+}
+
+function toggleFlip(theElement) {
+ if (theElement.flipID) {
+ var theItem = theElement;
+ var isContained = true;
+ } else {
+ if (theElement && theElement.button > 0) return false;
+ var theItem = (isIE) ? event.srcElement : theElement.target;
+
+ var isContained = false;
+ if (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") isContained = true; else while (theItem.parentElement || theItem.parentNode) {
+ if (theItem.className == "flipStatic" || theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed") {
+ isContained = (theItem.className == "flipFolderOpen" || theItem.className == "flipFolderClosed");
+ break;
+ }
+ theItem = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ }
+ }
+
+ var toOpenFlip = (isContained && theItem.className == "flipFolderClosed");
+
+ if (!flipOpenMultipleMenus && (toOpenFlip || theItem.className == "flipStatic")) {
+ if (theItem.parentElement || theItem.parentNode) {
+ var parentUL = (theItem.parentElement) ? theItem.parentElement : theItem.parentNode;
+ for (var i = 0; i < parentUL.childNodes.length; i++) closeFlip(parentUL.childNodes[i]);
+ }
+ }
+
+ if (isContained) {
+ if (toOpenFlip) openFlip(theItem); else closeFlip(theItem);
+ }
+}
+
+function setAllFlips(startElement, newSetting) {
+ if (typeof startElement == "undefined") var startElement = document;
+ if (typeof newSetting == "undefined") var newSetting = "closed";
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var parentFlip = aUL[i].parentElement ? aUL[i].parentElement : aUL[i].parentNode;
+ openCloseFlip(parentFlip, newSetting);
+ }
+}
+
+function openAllFlips(startElement) {
+ setAllFlips(startElement, "open");
+}
+
+function closeAllFlips(startElement) {
+ setAllFlips(startElement, "closed");
+}
+
+function initFlip(startElement) {
+ if (!document.createElement) return false;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ if (flipLoadingMessage != "") window.status = flipLoadingMessage + " " + parseInt((i / (aUL.length - 1)) * 100, 10) + "%";
+ var curUL = aUL[i];
+ if (curUL.className == "flipMenu") {
+ initFlip(curUL);
+
+ // ## Fix text selecting problem in Mozilla
+ curUL.onselectstart = new Function("return false");
+ curUL.onmousedown = new Function("return false");
+ curUL.onclick = new Function("return true");
+ }
+ }
+
+ if (flipSaveMenuState) loadMenuState();
+
+ if (flipLoadingMessage != "") window.status = "";
+ return true;
+ }
+
+ if (startElement.className == "flipMenu") startElement.style.display = "";
+
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ if (typeof flipIDCur == "undefined") flipIDCur = 0;
+ if (!startElement.initialised) {
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) aUL[i].style.display = "none";
+ }
+
+ for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.nodeName == "LI") {
+ flipIDCur++;
+ curNode.flipID = flipIDCur;
+
+ var nodeHasChildren = curNode.getElementsByTagName("UL").length > 0;
+ if (nodeHasChildren) {
+ if (flipImages && curNode.flipClosed) curNode.style.listStyleImage = "url(" + curNode.flipClosed + ")";
+
+ if (curNode.className == null || curNode.className == "") curNode.className = "flipFolderClosed";
+ } else {
+ curNode.className = "flipStatic";
+ if (flipImages && !curNode.style.listStyleImage) {
+ if (!curNode.flipStatic) curNode.flipStatic = flipImg_static;
+ curNode.style.listStyleImage = "url(" + curNode.flipStatic + ")";
+ }
+ }
+
+ if (!curNode.flipOpen) curNode.flipOpen = flipImg_open;
+ if (!curNode.flipClosed) curNode.flipClosed = flipImg_closed;
+
+ if (curNode.flipIsOpen) openFlip(curNode);
+ }
+ }
+
+ startElement.initialised = true;
+}
+
+function rootOfFlip(flipID, startElement) {
+
+ function containsFlip(startElement, flipID) {
+ var flipFound = false;
+ var i = 0;
+ while (i < startElement.childNodes.length && !flipFound) {
+ var curNode = startElement.childNodes[i];
+ flipFound = (curNode.flipID == flipID) ? true : containsFlip(curNode, flipID);
+ i++;
+ }
+ return flipFound;
+ }
+
+ var rootFlip = null;
+
+ if (!startElement || !startElement.nodeName) {
+ var aUL = document.getElementsByTagName("UL");
+ var i = 0;
+ while (rootFlip == null && i < aUL.length) {
+ var curUL = aUL[i];
+ if (curUL.nodeName == "UL" && curUL.className == "flipMenu") rootFlip = rootOfFlip(flipID, curUL);
+ i++;
+ }
+ return rootFlip;
+ }
+
+ if (startElement.childNodes) for (var i = 0; i < startElement.childNodes.length; i++) {
+ var curNode = startElement.childNodes[i];
+ if (curNode.flipID == flipID || containsFlip(curNode, flipID)) rootFlip = curNode;
+ }
+
+ return rootFlip;
+}
+
+function getCookie(cookieName) {
+ var allCookies = document.cookie;
+ var indexStr = allCookies.indexOf(cookieName + "=");
+ if (indexStr == -1) return "";
+ indexStr = allCookies.indexOf("=", indexStr) + 1;
+ var endStr = allCookies.indexOf(";", indexStr);
+ if (endStr == -1) endStr = allCookies.length;
+ return unescape(allCookies.substring(indexStr, endStr));
+}
+
+function inArray(someID, someArray) {
+ for (var i = 0; i < someArray.length; i++) if (someArray[i] == someID) return true;
+ return false;
+}
+
+function getMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return "";
+
+ var openItems = "";
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (curNode.style.display == "" && parentFlip.flipID) openItems += " " + parentFlip.flipID;
+ }
+ return openItems;
+}
+
+function putMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (inArray(parentFlip.flipID, aOpenItems)) {
+ openFlip(parentFlip);
+ if (typeof prevFlipRoot == "undefined") {
+ var testRoot = rootOfFlip(parentFlip.flipID);
+ if (testRoot.flipID == parentFlip.flipID) prevFlipRoot = testRoot;
+ }
+ }
+ }
+}
+function setMenuState(startElement) {
+ if (!startElement.childNodes || startElement.childNodes.length == 0) return false;
+
+ var aTitle = document.title;
+ aTitleParts = aTitle.split(" ");
+
+ var aUL = startElement.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curNode = aUL[i];
+ var parentFlip = (curNode.parentElement) ? curNode.parentElement : curNode.parentNode;
+ if (aTitleParts[3] == curNode.content) {
+ openFlip(parentFlip);
+ if (typeof prevFlipRoot == "undefined") {
+ var testRoot = rootOfFlip(parentFlip.flipID);
+ if (testRoot.flipID == parentFlip.flipID) prevFlipRoot = testRoot;
+ }
+ }
+ }
+}
+function saveMenuState() {
+ if (flipSaveMenuState) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=" + getMenuState(curUL) + ";";
+ }
+ }
+}
+
+function loadMenuState() {
+ if(constantState) {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") {
+ setMenuState(curUL);
+ }
+ }
+ } else {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") {
+ var savedState = String(getCookie(cookiePrefix + curID));
+ if (savedState != "") {
+ aOpenItems = savedState.split(" ");
+ putMenuState(curUL);
+ }
+ }
+ }
+
+ addEvent(window, "unload", saveMenuState);
+ }
+}
+
+
+function clearMenuState(flipMenuID) {
+ if (typeof flipMenuID == "undefined") {
+ var aUL = document.getElementsByTagName("UL");
+ for (var i = 0; i < aUL.length; i++) {
+ var curUL = aUL[i];
+ var curID = curUL.id ? curUL.id : i;
+ if (curUL.className == "flipMenu") document.cookie = cookiePrefix + curID + "=;";
+ }
+ } else document.cookie = cookiePrefix + flipMenuID + "=;";
+}
+
+cookiePrefix = document.location.pathname + "_";
+
+addEvent(document, "click", toggleFlip);
+if (flipInitOnLoad) addEvent(window, "load", initFlip);
diff --git a/lib/erl_docgen/priv/nyi.html b/lib/erl_docgen/priv/nyi.html new file mode 100644 index 0000000000..b948034174 --- /dev/null +++ b/lib/erl_docgen/priv/nyi.html @@ -0,0 +1,16 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> + <head> + <title>Not Yet Implemented</title> + </head> + + <body> + <h1>Not Yet Implemented</h1> + + <p>This page is not yet generated.</p> + + + <hr> + + </body> +</html> diff --git a/lib/erl_docgen/priv/xsl/Makefile b/lib/erl_docgen/priv/xsl/Makefile new file mode 100644 index 0000000000..92a53b8c0b --- /dev/null +++ b/lib/erl_docgen/priv/xsl/Makefile @@ -0,0 +1,80 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../../vsn.mk +VSN=$(ERL_DOCGEN_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/erl_docgen-$(VSN) + + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + + +XSL_FILES = \ + db_pdf.xsl \ + db_pdf_params.xsl \ + db_html.xsl \ + db_html_params.xsl \ + db_man.xsl + + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- + + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- +debug opt: + +docs: + +clean: + $(RM) $(TARGET_FILES) + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/priv/xsl + $(INSTALL_DATA) $(XSL_FILES) $(RELSYSDIR)/priv/xsl + + +release_docs_spec: + + +release_tests_spec: + + diff --git a/lib/erl_docgen/priv/xsl/db_html.xsl b/lib/erl_docgen/priv/xsl/db_html.xsl new file mode 100644 index 0000000000..3e6f762870 --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_html.xsl @@ -0,0 +1,1486 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009. All Rights Reserved. + # + # The contents of this file are subject to the Erlang Public License, + # Version 1.1, (the "License"); you may not use this file except in + # compliance with the License. You should have received a copy of the + # Erlang Public License along with this software. If not, it can be + # retrieved online at http://www.erlang.org/. + # + # Software distributed under the License is distributed on an "AS IS" + # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + # the License for the specific language governing rights and limitations + # under the License. + # + # %CopyrightEnd% + + --> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> + + <xsl:include href="db_html_params.xsl"/> + + <!-- Page layout --> + <xsl:template name="pagelayout"> + <xsl:param name="chapnum"/> + <xsl:param name="curModule"/> + <html> + <head> + <link rel="stylesheet" href="{$topdocdir}/otp_doc.css" type="text/css"/> + <title>Erlang -- <xsl:value-of select="header/title"/></title> + </head> + <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"> + + <div id="container"> + <script id="js" type="text/javascript" language="JavaScript" src="{$topdocdir}/js/flipmenu/flipmenu.js"/> + <script id="js2" type="text/javascript" src="{$topdocdir}/js/erlresolvelinks.js"></script> + <!-- Generate menu --> + <xsl:call-template name="menu"> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="curModule" select="$curModule"/> + </xsl:call-template> + + <div id="content"> + <div class="innertube"> + + <!-- Insert the node-specific content --> + <xsl:call-template name="content"> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </div> + + <div class="footer"> + <hr/> + <p> + <xsl:value-of select="$copyright"/> + <xsl:value-of select="/book/header/copyright/year[1]"/> + <xsl:text>-</xsl:text> + <xsl:value-of select="substring-after(substring-after($gendate, ' '), ' ')"/> + <xsl:text> </xsl:text> + <xsl:value-of select="/book/header/copyright/holder"/> + </p> + </div> + + </div> + </div> + + </body> + </html> + </xsl:template> + + + <!-- Content --> + <xsl:template name="content"> + <xsl:param name="chapnum"/> + + <xsl:variable name="lname"><xsl:value-of select="local-name()"/></xsl:variable> + + <xsl:if test="$lname = 'releasenotes'"> + <!-- .../part --> + <xsl:call-template name="releasenotes.content" /> + </xsl:if> + <xsl:if test="$lname = 'part'"> + <!-- .../part --> + <xsl:call-template name="part.content" /> + </xsl:if> + <xsl:if test="$lname = 'chapter'"> + <!-- .../part/chapter --> + <xsl:call-template name="chapter.content"> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </xsl:if> + <xsl:if test="$lname = 'application'"> + <!-- .../application --> + <xsl:call-template name="app.content" /> + </xsl:if> + <xsl:if test="$lname = 'erlref' or $lname = 'cref' or $lname= 'comref' or $lname= 'fileref' or $lname= 'appref'"> + <!-- .../application/*ref --> + <xsl:comment> refpage </xsl:comment> + <xsl:call-template name="ref.content" /> + </xsl:if> + </xsl:template> + + + <!-- Menu --> + <xsl:template name="menu"> + <xsl:param name="chapnum"/> + <xsl:param name="curModule"/> + <xsl:if test="(local-name() = 'part') or ((local-name() = 'chapter') and ancestor::part)"> + <!-- .../part or.../part/chapter --> + <xsl:call-template name="menu.ug"> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </xsl:if> + <xsl:if test="(local-name() = 'application') or (local-name() = 'erlref')or (local-name() = 'comref')or (local-name() = 'cref')or (local-name() = 'fileref')or (local-name() = 'appref')"> + <!-- .../application,.../application/erlref, .../application/comref or .../application/cref or .../application/fileref or .../application/appref --> + <xsl:call-template name="menu.ref"> + <xsl:with-param name="curModule" select="$curModule"/> + </xsl:call-template> + </xsl:if> + <xsl:if test="(local-name() = 'releasenotes') or ((local-name() = 'chapter') and ancestor::releasenotes)"> + <!-- releasenotes --> + <xsl:call-template name="menu.rn"> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </xsl:if> + </xsl:template> + + + <xsl:template name="menu_top"> + <img alt="Erlang logo" src="{$topdocdir}/erlang-logo.png"/> + <br/> + <small> + <xsl:if test="boolean(/book/parts/part)"> + <a href="users_guide.html">User's Guide</a><br/> + </xsl:if> + <xsl:if test="boolean(/book/applications)"> + <a href="index.html">Reference Manual</a><br/> + </xsl:if> + <xsl:if test="boolean(/book/releasenotes)"> + <a href="release_notes.html">Release Notes</a><br/> + </xsl:if> + <a href="{$pdfdir}/{$appname}-{$appver}.pdf">PDF</a><br/> + <a href="{$topdocdir}/index.html">Top</a> + </small> + </xsl:template> + + <xsl:template name="menu_middle"> + <!-- small> + <xsl:choose> + <xsl:when test="ancestor::parts"> + <a href="users_guide_bibliography.html">Bibliography</a><br/> + <a href="users_guide_glossary.html">Glossary</a><br/> + </xsl:when> + <xsl:when test="ancestor::applications"> + <a href="ref_man_bibliography.html">Bibliography</a><br/> + <a href="ref_man_glossary.html">Glossary</a><br/> + </xsl:when> + </xsl:choose> + </small --> + <br/> + + <a href="javascript:openAllFlips()">Expand All</a><br/> + <a href="javascript:closeAllFlips()">Contract All</a> + </xsl:template> + + + <!-- Book --> + <xsl:template match="/book"> + + <xsl:apply-templates name="parts"/> + <xsl:apply-templates name="applications"/> + + </xsl:template> + + <!-- Parts --> + <xsl:template match="parts"> + <xsl:apply-templates name="part"/> + </xsl:template> + + <!-- Applications --> + <xsl:template match="applications"> + <xsl:apply-templates name="application"/> + </xsl:template> + + + <!-- Header --> + <xsl:template match="header"> + </xsl:template> + + <!-- Section/Title --> + <xsl:template match="section/title"> + </xsl:template> + + <xsl:template match="pagetext"> + </xsl:template> + + + <!-- Chapter/Section --> + <xsl:template match="chapter/section"> + <xsl:param name="chapnum"/> + <h3> + <a name="{generate-id(title)}"> + <xsl:value-of select="$chapnum"/>.<xsl:number/>  + <xsl:value-of select="title"/> + </a> + </h3> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="sectnum"><xsl:number/></xsl:with-param> + </xsl:apply-templates> + </xsl:template> + + <!-- Chapter/Subsection --> + <xsl:template match="chapter/section/section"> + <xsl:param name="chapnum"/> + <xsl:param name="sectnum"/> + <h4> + <!-- xsl:value-of select="$partnum"/>.<xsl:value-of select="$chapnum"/>.<xsl:value-of select="$sectnum"/>.<xsl:number/ --> + <xsl:value-of select="title"/> + </h4> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </xsl:template> + + + + <!-- *ref/Section --> + <xsl:template match="erlref/section|cref/section|comref/section|fileref/section|appref/section"> + <xsl:param name="chapnum"/> + <h3> + <a name="{generate-id(title)}"> + <xsl:value-of select="title"/> + </a> + </h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- *ref/Subsection --> + <xsl:template match="erlref/section/section|cref/section/section|comref/section/section|fileref/section/section|appref/section/section"> + <xsl:param name="chapnum"/> + <xsl:param name="sectnum"/> + <h4> + <xsl:value-of select="title"/> + </h4> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Lists --> + + <xsl:template match="list"> + <xsl:param name="chapnum"/> + <ul> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </ul> + </xsl:template> + + <xsl:template match="list/item"> + <xsl:param name="chapnum"/> + <li> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </li> + </xsl:template> + + + <xsl:template match="taglist"> + <xsl:param name="chapnum"/> + <dl> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </dl> + </xsl:template> + + <xsl:template match="taglist/tag"> + <xsl:param name="chapnum"/> + <dt> + <strong> + <xsl:apply-templates/> + </strong> + </dt> + </xsl:template> + + + <xsl:template match="taglist/item"> + <xsl:param name="chapnum"/> + <dd> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </dd> + </xsl:template> + + <!-- Note --> + <xsl:template match="note"> + <xsl:param name="chapnum"/> + <div class="note"> + <div class="label">Note</div> + <div class="content"> + <p> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </p> + </div> + </div> + </xsl:template> + + <!-- Warning --> + <xsl:template match="warning"> + <xsl:param name="chapnum"/> + <div class="warning"> + <div class="label">Warning</div> + <div class="content"> + <p> + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + </p> + </div> + </div> + </xsl:template> + + <!-- Paragraph --> + <xsl:template match="p"> + <p> + <xsl:apply-templates/> + </p> + </xsl:template> + + + <!-- Inline elements --> + <xsl:template match="b"> + <strong><xsl:apply-templates/></strong> + </xsl:template> + + <xsl:template match="br"> + <br/> + </xsl:template> + + <xsl:template match="c"> + <span class="code"><xsl:apply-templates/></span> + </xsl:template> + + <xsl:template match="em"> + <strong><xsl:apply-templates/></strong> + </xsl:template> + + <!-- Code --> + <xsl:template match="code"> + <xsl:param name="chapnum"/> + <xsl:variable name="codenum"> + <xsl:number level="any" from="chapter" count="code"/> + </xsl:variable> + <div class="example"><pre><xsl:apply-templates/></pre></div> + </xsl:template> + + <!-- Pre --> + <xsl:template match="pre"> + <xsl:param name="chapnum"/> + <xsl:variable name="codenum"> + <xsl:number level="any" from="chapter" count="code"/> + </xsl:variable> + <div class="example"><pre><xsl:apply-templates/></pre></div> + </xsl:template> + + + <!-- Table --> + <xsl:template match="table"> + <xsl:param name="chapnum"/> + <xsl:variable name="tabnum"> + <xsl:number level="any" from="chapter" count="table"/> + </xsl:variable> + <table border="1" cellpadding="2" cellspacing="0"> + <!-- tbody--> + <xsl:apply-templates select="row"> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="tabnum" select="$tabnum"/> + </xsl:apply-templates> + <!-- /tbody--> + </table> + <xsl:apply-templates select="tcaption"> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="tabnum" select="$tabnum"/> + </xsl:apply-templates> + </xsl:template> + + <xsl:template match="row"> + <tr> + <xsl:apply-templates/> + </tr> + </xsl:template> + + <xsl:template match="cell"> + <td align="left" valign="middle"> + <xsl:apply-templates/> + </td> + </xsl:template> + + + <xsl:template match="tcaption"> + <xsl:param name="chapnum"/> + <xsl:param name="tabnum"/> + + <em>Table + <xsl:value-of select="$chapnum"/>.<xsl:value-of select="$tabnum"/>: +   + <xsl:apply-templates/> + </em> + + </xsl:template> + + <!-- Image --> + <xsl:template match="image"> + <xsl:param name="chapnum"/> + <xsl:variable name="fignum"> + <xsl:number level="any" from="chapter" count="image"/> + </xsl:variable> + + <img alt="IMAGE MISSING" src="{@file}"/><br/> + + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="fignum" select="$fignum"/> + </xsl:apply-templates> + + + </xsl:template> + + + <xsl:template match="icaption"> + <xsl:param name="chapnum"/> + <xsl:param name="fignum"/> + + <em>Figure + <xsl:value-of select="$chapnum"/>.<xsl:value-of select="$fignum"/>: +   + <xsl:apply-templates/> + </em> + + </xsl:template> + + + + + <!--Users Guide --> + + <!-- Part --> + <xsl:template match="part"> + <!-- Generate Glossary for Users Guide --> + <!--xsl:call-template name="glossary"> + <xsl:with-param name="type">users_guide</xsl:with-param> + </xsl:call-template--> + + <!-- Generate Bibliography for Users Guide --> + <!--xsl:call-template name="bibliography"> + <xsl:with-param name="type">users_guide</xsl:with-param> + </xsl:call-template--> + + <xsl:document href="{$outdir}/users_guide.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + <xsl:call-template name="pagelayout"/> + </xsl:document> + </xsl:template> + + + <!-- Part content--> + <xsl:template name="part.content"> + <div class="frontpage"/> + + <center><h1><xsl:value-of select="/book/header/title"/> User's Guide</h1></center> + + <center><h4>Version <xsl:value-of select="$appver"/></h4></center> + <center><h4><xsl:value-of select="$gendate"/></h4></center> + + <xsl:apply-templates select="chapter"/> + + </xsl:template> + + <!-- Menu.ug --> + <xsl:template name="menu.ug"> + <xsl:param name="chapnum"/> + + <div id="leftnav"> + <div class="innertube"> + + <xsl:call-template name="menu_top"/> + + <p> + <strong><xsl:value-of select="/book/header/title"/></strong><br/> + <strong>User's Guide</strong><br/> + <small>Version <xsl:value-of select="$appver"/></small> + </p> + + <xsl:call-template name="menu_middle"/> + + <p> + <small> + <strong>Chapters</strong> + </small> + </p> + + <ul class="flipMenu" imagepath="{$topdocdir}/js/flipmenu"> + <xsl:call-template name="menu.chapter"> + <xsl:with-param name="entries" select="/book/parts/part/chapter[header/title]"/> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </ul> + </div> + </div> + </xsl:template> + + + <xsl:template name="menu.chapter"> + <xsl:param name="entries"/> + <xsl:param name="chapnum"/> + <xsl:for-each select="$entries"> + <xsl:variable name="chapter_file"> + <xsl:value-of select='substring-before(header/file, ".xml")'/> + </xsl:variable> + <xsl:variable name="curchapnum"><xsl:number/></xsl:variable> + <xsl:variable name="expanded"> + <xsl:choose> + <xsl:when test="$chapnum = $curchapnum">true</xsl:when> + <xsl:otherwise>false</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <li title="{header/title}" expanded="{$expanded}"> + <xsl:value-of select="header/title"/> + <ul> + <li> + <a href="{$chapter_file}.html"> + Top of chapter + </a> + </li> + <xsl:call-template name="menu.section"> + <xsl:with-param name="entries" + select="section[title]"/> + <xsl:with-param name="chapter_file"><xsl:value-of select="$chapter_file"/></xsl:with-param> + </xsl:call-template> + </ul> + </li> + </xsl:for-each> + </xsl:template> + + + <xsl:template name="menu.section"> + <xsl:param name="entries"/> + <xsl:param name="chapter_file"/> + <xsl:for-each select="$entries"> + <li title="{title}"> + <a href="{$chapter_file}.html#{generate-id(title)}"> + <xsl:value-of select="title"/> + </a> + </li> + </xsl:for-each> + </xsl:template> + + <!-- Chapter (if top tag)--> + <xsl:template match="/chapter"> + + <xsl:document href="{substring-before(header/file, '.xml')}.html" method="html" encoding="UTF-8" indent="yes" + doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="chapnum"><xsl:number/></xsl:with-param> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- Chapter --> + <xsl:template match="chapter"> + + <xsl:document href="{substring-before(header/file, '.xml')}.html" method="html" encoding="UTF-8" indent="yes" + doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="chapnum"><xsl:number/></xsl:with-param> + </xsl:call-template> + </xsl:document> + </xsl:template> + + + <!-- Chapter content--> + <xsl:template name="chapter.content"> + <xsl:param name="chapnum"/> + + <!-- center--> + <h1> + <xsl:value-of select="$chapnum"/> <xsl:value-of select="header/title"/> + </h1> + <!-- /center--> + + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + + </xsl:template> + + + + + <!-- Reference Manual --> + + <!-- Application --> + <xsl:template match="application"> + + <!-- Generate Glossary for Ref. Manual --> + <!--xsl:call-template name="glossary"> + <xsl:with-param name="type">ref_man</xsl:with-param> + </xsl:call-template--> + + <!-- Generate Bibliography for Ref. Manual --> + <!--xsl:call-template name="bibliography"> + <xsl:with-param name="type">ref_man</xsl:with-param> + </xsl:call-template--> + + + <xsl:document href="{$outdir}/index.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"/> + </xsl:document> + </xsl:template> + + + <!-- Application content--> + <xsl:template name="app.content"> + <div class="frontpage"/> + + <center><h1><xsl:value-of select="/book/header/title"/> Reference Manual</h1></center> + + <center><h4>Version <xsl:value-of select="$appver"/></h4></center> + <center><h4><xsl:value-of select="$gendate"/></h4></center> + + <xsl:apply-templates select="erlref|cref|comref|fileref|appref"/> + + </xsl:template> + + <!-- Menu.ref --> + <xsl:template name="menu.ref"> + <xsl:param name="$curModule"/> + <div id="leftnav"> + <div class="innertube"> + + <xsl:call-template name="menu_top"/> + + <p> + <strong><xsl:value-of select="/book/header/title"/></strong><br/> + <strong>Reference Manual</strong><br/> + <small>Version <xsl:value-of select="$appver"/></small> + </p> + + <xsl:call-template name="menu_middle"/> + + <p> + <small> + <strong>Table of Contents</strong> + </small> + </p> + + <ul class="flipMenu"> + <xsl:call-template name="menu.ref2"> + <xsl:with-param name="entries" select="/book/applications/application/erlref[module]|/book/applications/application/cref[lib]|/book/applications/application/comref[com]|/book/applications/application/fileref[file]|/book/applications/application/appref[app]"/> + <!--xsl:with-param name="genFuncMenu" select="true"/--> + <xsl:with-param name="curModule" select="$curModule"/> + </xsl:call-template> + </ul> + </div> + </div> + </xsl:template> + + + <xsl:template name="menu.ref2"> + <xsl:param name="entries"/> + <!--xsl:param name="genFuncMenu"/--> + <xsl:param name="curModule"/> + <xsl:for-each select="$entries"> + + <xsl:variable name="cval"> + <xsl:choose> + <xsl:when test="local-name() = 'erlref'"> + <xsl:value-of select="module"/> + </xsl:when> + <xsl:when test="local-name() = 'cref'"> + <xsl:value-of select="lib"/> + </xsl:when> + <xsl:when test="local-name() = 'comref'"> + <xsl:value-of select="com"/> + </xsl:when> + <xsl:when test="local-name() = 'fileref'"> + <xsl:value-of select="file"/> + </xsl:when> + <xsl:when test="local-name() = 'appref'"> + <xsl:value-of select="app"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="genFuncMenu"> + <xsl:choose> + <xsl:when test="local-name() = 'comref'">false</xsl:when> + <xsl:when test="local-name() = 'appref'">false</xsl:when> + <xsl:when test="local-name() = 'fileref'">false</xsl:when> + <xsl:when test="descendant::funcs">true</xsl:when> + <xsl:otherwise>false</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="expanded"> + <xsl:choose> + <xsl:when test="$curModule = $cval">true</xsl:when> + <xsl:otherwise>false</xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="link_cval"><xsl:value-of select="translate($cval, '­', '')"/></xsl:variable> + + <xsl:choose> + <xsl:when test="$genFuncMenu = 'true'"> + + <li title="{$cval} " expanded="{$expanded}"> + <xsl:value-of select="$cval"/> + <ul> + <li> + <a href="{$link_cval}.html"> + Top of manual page + </a> + </li> + <xsl:call-template name="menu.funcs"> + <xsl:with-param name="entries" + select="funcs/func/name"/> + <xsl:with-param name="basename"><xsl:value-of select="$link_cval"/></xsl:with-param> + </xsl:call-template> + </ul> + </li> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="local-name() = 'appref'"> + <li title="{$cval} (App)"> + <a href="{$link_cval}_app.html"> + <xsl:value-of select="$cval"/> (App) + </a> + </li> + </xsl:when> + <xsl:otherwise> + <li title="{$cval}"> + <a href="{$link_cval}.html"> + <xsl:value-of select="$cval"/> + </a> + </li> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:template> + + + <xsl:template name="menu.funcs"> + <xsl:param name="entries"/> + <xsl:param name="basename"/> + + <xsl:for-each select="$entries"> + + <xsl:choose> + <xsl:when test="ancestor::cref"> + <xsl:variable name="fname"><xsl:value-of select="substring-before(nametext, '(')"/></xsl:variable> + <xsl:choose> + <xsl:when test="string-length($fname) > 0"> + <li title="{$fname}"> + <a href="{$basename}.html#{$fname}"> + <xsl:value-of select="$fname"/>() + </a> + </li> + </xsl:when> + <xsl:otherwise> + <li title="{name/nametext}"> + <a href="{$basename}.html#{name/nametext}"> + <xsl:value-of select="nametext"/>() + </a> + </li> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + + <xsl:when test="ancestor::erlref"> + + <xsl:variable name="tmpstring"> + <xsl:value-of select="substring-before(substring-after(., '('), '->')"/> + </xsl:variable> + + <xsl:variable name="ustring"> + <xsl:choose> + <xsl:when test="string-length($tmpstring) > 0"> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="$tmpstring"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="substring-after(., '(')"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="arity"> + <xsl:call-template name="calc-arity"> + <xsl:with-param name="string" select="substring-before($ustring, ')')"/> + <xsl:with-param name="no-of-pars" select="0"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="fname"> + <xsl:value-of select="substring-before(., '(')"/> + </xsl:variable> + <li title="{$fname}-{$arity}"> + <a href="{$basename}.html#{$fname}-{$arity}"> + <xsl:value-of select="$fname"/>/<xsl:value-of select="$arity"/> + </a> + </li> + </xsl:when> + </xsl:choose> + + </xsl:for-each> + </xsl:template> + + + <!-- Erlref --> + <xsl:template match="erlref"> + + <xsl:variable name="filename"><xsl:value-of select="translate(module, '­', '')"/></xsl:variable> + + <xsl:document href="{$filename}.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="curModule" select="module"/> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- Cref --> + <xsl:template match="cref"> + + <xsl:document href="{lib}.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="curModule" select="lib"/> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- Comref --> + <xsl:template match="comref"> + + <xsl:document href="{com}.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="curModule" select="com"/> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- Fileref --> + <xsl:template match="fileref"> + + <xsl:document href="{file}.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="curModule" select="file"/> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- Appref --> + <xsl:template match="appref"> + + <xsl:document href="{app}_app.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + + <xsl:call-template name="pagelayout"> + <xsl:with-param name="curModule" select="app"/> + </xsl:call-template> + </xsl:document> + </xsl:template> + + <!-- *ref content--> + <xsl:template name="ref.content"> + <xsl:param name="partnum"/> + + <center> + <h1> + <xsl:choose> + <xsl:when test="local-name() = 'erlref'"> + <xsl:value-of select="module"/> + </xsl:when> + <xsl:when test="local-name() = 'cref'"> + <xsl:value-of select="lib"/> + </xsl:when> + <xsl:when test="local-name() = 'comref'"> + <xsl:value-of select="com"/> + </xsl:when> + <xsl:when test="local-name() = 'fileref'"> + <xsl:value-of select="file"/> + </xsl:when> + <xsl:when test="local-name() = 'appref'"> + <xsl:value-of select="app"/> + </xsl:when> + </xsl:choose> + </h1> + </center> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + + <!-- Module --> + <xsl:template match="module"> + <xsl:param name="partnum"/> + <h3>MODULE</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Modulesummary --> + <xsl:template match="modulesummary"> + <xsl:param name="partnum"/> + <h3>MODULE SUMMARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- Lib --> + <xsl:template match="lib"> + <xsl:param name="partnum"/> + <h3>C LIBRARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Libsummary --> + <xsl:template match="libsummary"> + <xsl:param name="partnum"/> + <h3>LIBRARY SUMMARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- Com --> + <xsl:template match="com"> + <xsl:param name="partnum"/> + <h3>COMMAND</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Comsummary --> + <xsl:template match="comsummary"> + <xsl:param name="partnum"/> + <h3>COMMAND SUMMARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- File --> + <xsl:template match="file"> + <xsl:param name="partnum"/> + <h3>FILE</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Filesummary --> + <xsl:template match="filesummary"> + <xsl:param name="partnum"/> + <h3>FILE SUMMARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- App --> + <xsl:template match="app"> + <xsl:param name="partnum"/> + <h3>APPLICATION</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + + <!-- Appsummary --> + <xsl:template match="appsummary"> + <xsl:param name="partnum"/> + <h3>APPLICATION SUMMARY</h3> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- Description --> + <xsl:template match="description"> + <xsl:param name="partnum"/> + <h3>DESCRIPTION</h3> + <div class="REFBODY"> + <p> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </p> + </div> + </xsl:template> + + <!-- Funcs --> + <xsl:template match="funcs"> + + <h3> + <xsl:text>EXPORTS</xsl:text> + </h3> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Func --> + <xsl:template match="func"> + <xsl:param name="partnum"/> + + <p><xsl:apply-templates select="name"/></p> + + <xsl:apply-templates select="fsummary|type|desc"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <xsl:template match="name"> + + <xsl:variable name="tmpstring"> + <xsl:value-of select="substring-before(substring-after(., '('), '->')"/> + </xsl:variable> + + <xsl:variable name="ustring"> + <xsl:choose> + <xsl:when test="string-length($tmpstring) > 0"> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="$tmpstring"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="substring-after(., '(')"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="arity"> + <xsl:call-template name="calc-arity"> + <xsl:with-param name="string" select="substring-before($ustring, ')')"/> + <xsl:with-param name="no-of-pars" select="0"/> + </xsl:call-template> + </xsl:variable> + + <xsl:choose> + <xsl:when test="ancestor::cref"> + <a name="{substring-before(nametext, '(')}"><span class="bold_code"><xsl:value-of select="ret"/><xsl:text> </xsl:text><xsl:value-of select="nametext"/></span></a><br/> + </xsl:when> + <xsl:when test="ancestor::erlref"> + <a name="{substring-before(., '(')}-{$arity}"><span class="bold_code"><xsl:value-of select="."/></span></a><br/> + </xsl:when> + </xsl:choose> + + + </xsl:template> + + + <!-- Type --> + <xsl:template match="type"> + <xsl:param name="partnum"/> + + <div class="REFBODY"><p>Types:</p> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + + </xsl:template> + + + <!-- V --> + <xsl:template match="v"> + <xsl:param name="partnum"/> + <div class="REFTYPES"> + <span class="bold_code"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </span><br/> + </div> + </xsl:template> + + <!-- D --> + <xsl:template match="d"> + <xsl:param name="partnum"/> + <div class="REFBODY"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </div> + </xsl:template> + + <!-- Desc --> + <xsl:template match="desc"> + <div class="REFBODY"> + <p> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </p> + </div> + </xsl:template> + + + <!-- Fsummary --> + <xsl:template match="fsummary"> + <!-- This tag is skipped for now. --> + </xsl:template> + + + <xsl:template match="input"> + <span class="bold_code"><xsl:apply-templates/></span> + </xsl:template> + + <xsl:template match="seealso"> + + <xsl:variable name="filepart"><xsl:value-of select="substring-before(@marker, '#')"/></xsl:variable> + <xsl:variable name="linkpart"><xsl:value-of select="translate(substring-after(@marker, '#'), '/', '-')"/></xsl:variable> + + <xsl:choose> + <xsl:when test="string-length($filepart) > 0"> + <xsl:variable name="modulepart"><xsl:value-of select="substring-before($filepart, ':')"/></xsl:variable> + <xsl:choose> + <xsl:when test="string-length($modulepart) > 0"> + <xsl:variable name="filepart1"><xsl:value-of select="substring-after($filepart, ':')"/></xsl:variable> + <span class="bold_code"><a href="javascript:erlhref('{$topdocdir}/../','{$modulepart}','{$filepart1}.html#{$linkpart}');"><xsl:apply-templates/></a></span> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="string-length($linkpart) > 0"> + <span class="bold_code"><a href="{$filepart}.html#{$linkpart}"><xsl:apply-templates/></a></span> + </xsl:when> + <xsl:otherwise> + <span class="bold_code"><a href="{$filepart}.html"><xsl:apply-templates/></a></span> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="string-length($linkpart) > 0"> + <span class="bold_code"><a href="#{$linkpart}"><xsl:apply-templates/></a></span> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="modulepart"><xsl:value-of select="substring-before(@marker, ':')"/></xsl:variable> + + <xsl:choose> + <xsl:when test="string-length($modulepart) > 0"> + <xsl:variable name="filepart1"><xsl:value-of select="substring-after(@marker, ':')"/></xsl:variable> + <span class="bold_code"><a href="javascript:erlhref('{$topdocdir}/../','{$modulepart}','{$filepart1}.html');"><xsl:apply-templates/></a></span> + </xsl:when> + <xsl:otherwise> + <span class="bold_code"><a href="{@marker}.html"><xsl:apply-templates/></a></span> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + + </xsl:template> + + + <xsl:template match="url"> + <span class="bold_code"><a href="{@href}"><xsl:apply-templates/></a></span> + </xsl:template> + + + <xsl:template match="marker"> + <a name="{@id}"><xsl:apply-templates/></a> + </xsl:template> + + <xsl:template match="term"> + <xsl:value-of select="@id"/> + <!-- xsl:choose> + <xsl:when test="boolean(termdef)"> + <xsl:choose> + <xsl:when test="ancestor::parts"> + <a href="users_guide_glossary.html#{@id}"><xsl:value-of select="@id"/></a> + </xsl:when> + <xsl:when test="ancestor::applications"> + <a href="ref_man_glossary.html#{@id}"><xsl:value-of select="@id"/></a> + </xsl:when> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <a href="{$topdocdir}/glossary.html#{@id}"><xsl:value-of select="@id"/></a> + </xsl:otherwise> + </xsl:choose --> + </xsl:template> + + <xsl:template match="cite"> + <xsl:value-of select="@id"/> + </xsl:template> + + + <!-- Release Notes --> + <xsl:template match="releasenotes"> + + <xsl:document href="{$outdir}/release_notes.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + <xsl:call-template name="pagelayout"/> + </xsl:document> + </xsl:template> + + <!-- Rel notes content--> + <xsl:template name="releasenotes.content"> + <div class="frontpage"/> + + <center><h1><xsl:value-of select="/book/header/title"/> Release Notes</h1></center> + + <center><h4>Version <xsl:value-of select="$appver"/></h4></center> + <center><h4><xsl:value-of select="$gendate"/></h4></center> + + <xsl:apply-templates select="chapter"/> + + </xsl:template> + + <!-- Menu.rn --> + <xsl:template name="menu.rn"> + <xsl:param name="chapnum"/> + + <div id="leftnav"> + <div class="innertube"> + + <xsl:call-template name="menu_top"/> + + <p> + <strong><xsl:value-of select="/book/header/title"/></strong><br/> + <strong>Release Notes</strong><br/> + <small>Version <xsl:value-of select="$appver"/></small> + </p> + + <xsl:call-template name="menu_middle"/> + + <p> + <small> + <strong>Chapters</strong> + </small> + </p> + + <ul class="flipMenu" imagepath="{$topdocdir}/js/flipmenu"> + <xsl:call-template name="menu.chapter"> + <xsl:with-param name="entries" select="/book/releasenotes/chapter[header/title]"/> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:call-template> + </ul> + </div> + </div> + </xsl:template> + + <!-- Glossary --> + <xsl:template name="glossary"> + <xsl:param name="type"/> + <xsl:document href="{$outdir}/{$type}_glossary.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + <html> + <head> + <link rel="stylesheet" href="{$topdocdir}/otp_doc.css" type="text/css"/> + <title>Erlang Documentation -- <xsl:value-of select="header/title"/></title> + </head> + <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"> + + <div id="container"> + <script id="js" type="text/javascript" language="JavaScript" src="{$topdocdir}/js/flipmenu/flipmenu.js"/> + <script id="js2" type="text/javascript" src="{$topdocdir}/js/erlresolvelinks.js"></script> + + <!-- Generate menu --> + <xsl:call-template name="menu"/> + + <div id="content"> + <div class="innertube"> + <h1>Glossary</h1> + </div> + + <dl> + <xsl:for-each select="descendant::term"> + <xsl:sort select="@id"/> + <xsl:if test="boolean(termdef)"> + <dt><a name="{@id}"><strong><xsl:value-of select="@id"/></strong></a></dt> + <dd><xsl:value-of select="termdef"/></dd> + </xsl:if> + </xsl:for-each> + </dl> + + <div class="footer"> + <hr/> + <p> + <xsl:value-of select="$copyright"/> + <xsl:value-of select="header/copyright/year[1]"/> + <xsl:text>-</xsl:text> + <xsl:value-of select="header/copyright/year[2]"/> + <xsl:text> </xsl:text> + <xsl:value-of select="header/copyright/holder"/> + </p> + </div> + + </div> + </div> + + </body> + </html> + + </xsl:document> + </xsl:template> + + <!-- Bibliography --> + <xsl:template name="bibliography"> + + <xsl:param name="type"/> + <xsl:document href="{$outdir}/{$type}_bibliography.html" method="html" encoding="UTF-8" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"> + <html> + <head> + <link rel="stylesheet" href="{$topdocdir}/otp_doc.css" type="text/css"/> + <title>Erlang Documentation -- <xsl:value-of select="header/title"/></title> + </head> + <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"> + + <div id="container"> + <script id="js" type="text/javascript" language="JavaScript" src="{$topdocdir}/js/flipmenu/flipmenu.js"/> + <script id="js2" type="text/javascript" src="{$topdocdir}/js/erlresolvelinks.js"></script> + + <!-- Generate menu --> + <xsl:call-template name="menu"/> + + <div id="content"> + <div class="innertube"> + <h1>Bibliography</h1> + </div> + + <table> + <xsl:for-each select="descendant::cite"> + <xsl:sort select="@id"/> + <xsl:if test="boolean(citedef)"> + <tr> + <td><xsl:value-of select="@id"/></td> + <td><xsl:value-of select="citedef"/></td> + </tr> + </xsl:if> + </xsl:for-each> + </table> + + <div class="footer"> + <hr/> + <p> + <xsl:value-of select="$copyright"/> + <xsl:value-of select="header/copyright/year[1]"/> + <xsl:text>-</xsl:text> + <xsl:value-of select="header/copyright/year[2]"/> + <xsl:text> </xsl:text> + <xsl:value-of select="header/copyright/holder"/> + </p> + </div> + + </div> + </div> + + </body> + </html> + + </xsl:document> + </xsl:template> + + + <!-- Special templates to calculate the arity of functions --> + <xsl:template name="calc-arity"> + <xsl:param name="string"/> + <xsl:param name="no-of-pars"/> + + <xsl:variable name="length"> + <xsl:value-of select="string-length($string)"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$length > 0"> + <xsl:call-template name="calc-arity"> + <xsl:with-param name="string" select="substring-after($string, ',')"/> + <xsl:with-param name="no-of-pars" select="$no-of-pars+1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$no-of-pars"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="remove-paren"> + <xsl:param name="string"/> + + <xsl:variable name="bstring"> + <xsl:value-of select="substring-before($string, '(')"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="string-length($bstring) > 0"> + <xsl:variable name="astring"> + <xsl:value-of select="substring-after($string, ')')"/> + </xsl:variable> + <xsl:variable name="retstring"> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="$astring"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="concat($bstring, $retstring)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$string"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> diff --git a/lib/erl_docgen/priv/xsl/db_html_params.xsl b/lib/erl_docgen/priv/xsl/db_html_params.xsl new file mode 100644 index 0000000000..2373200702 --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_html_params.xsl @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009. All Rights Reserved. + # + # The contents of this file are subject to the Erlang Public License, + # Version 1.1, (the "License"); you may not use this file except in + # compliance with the License. You should have received a copy of the + # Erlang Public License along with this software. If not, it can be + # retrieved online at http://www.erlang.org/. + # + # Software distributed under the License is distributed on an "AS IS" + # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + # the License for the specific language governing rights and limitations + # under the License. + # + # %CopyrightEnd% + + --> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <!-- When using <code>, whitespaces should be preserved --> + <xsl:preserve-space elements="code"/> + + + <!-- Fixed strings --> + <xsl:variable name="companyname"><xsl:value-of select="header/copyright/holder"/></xsl:variable> + <xsl:variable name="copyright">Copyright © </xsl:variable> + + + +</xsl:stylesheet> diff --git a/lib/erl_docgen/priv/xsl/db_man.xsl b/lib/erl_docgen/priv/xsl/db_man.xsl new file mode 100644 index 0000000000..c759a77496 --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_man.xsl @@ -0,0 +1,308 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009. All Rights Reserved. + # + # The contents of this file are subject to the Erlang Public License, + # Version 1.1, (the "License"); you may not use this file except in + # compliance with the License. You should have received a copy of the + # Erlang Public License along with this software. If not, it can be + # retrieved online at http://www.erlang.org/. + # + # Software distributed under the License is distributed on an "AS IS" + # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + # the License for the specific language governing rights and limitations + # under the License. + # + # %CopyrightEnd% + + --> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <xsl:preserve-space elements="code pre"/> + <xsl:strip-space elements="*"/> + <xsl:output method="text" encoding="UTF-8" indent="no"/> + + <!-- Header --> + <xsl:template match="header"> + </xsl:template> + + <!-- Section/Title --> + <xsl:template match="section/title"> + </xsl:template> + + <!-- *ref/Section --> + <xsl:template match="erlref/section|comref/section|cref/section|fileref/section|appref/section"> + <xsl:text> .RE </xsl:text> + <xsl:text> .SH "</xsl:text><xsl:value-of select="translate(title, 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><xsl:text>" </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- *ref/Subsection --> + <xsl:template match="erlref/section/section|comref/section/section|cref/section/section|fileref/section/section|appref/section/section"> + <xsl:text> .RE </xsl:text> + <xsl:text> .SS "</xsl:text><xsl:value-of select="title"/><xsl:text>" </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + + <!-- Lists --> + + <xsl:template match="list"> + <xsl:text> .RS 2 </xsl:text> + <xsl:apply-templates/> + <xsl:text> .RE </xsl:text> + </xsl:template> + + <xsl:template match="list/item"> + <xsl:text> .TP 2 </xsl:text> + <xsl:text>* </xsl:text> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:text> .br </xsl:text> + <xsl:text> .br </xsl:text> + </xsl:template> + + <xsl:template match="taglist"> + <xsl:text> .RS 2 </xsl:text> + <xsl:apply-templates/> + <xsl:text> .RE </xsl:text> + </xsl:template> + + <xsl:template match="taglist/tag"> + <xsl:text> .TP 4 </xsl:text> + <xsl:text>.B </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="item/p"> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:text> .br </xsl:text> + <xsl:text> .br </xsl:text> + </xsl:template> + + + <xsl:template match="taglist/item"> + <xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Note --> + <xsl:template match="note"> + <xsl:text> .TP 4 .B Note: </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Warning --> + <xsl:template match="warning"> + <xsl:text> .TP 4 .B Warning: </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="warning/p|note/p"> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:text> .LP </xsl:text> + </xsl:template> + + + <!-- Paragraph --> + <xsl:template match="p"> + <xsl:text> .LP </xsl:text> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + </xsl:template> + + <!-- Inline elements --> + <xsl:template match="b"> + <xsl:text> \fB</xsl:text> + <xsl:apply-templates/> + <xsl:text>\fR\&</xsl:text> + </xsl:template> + + <xsl:template match="br"> + <xsl:text> .br </xsl:text> + </xsl:template> + + <xsl:template match="c"> + <xsl:text> \fI</xsl:text><xsl:value-of select="text()"/><xsl:text>\fR\&</xsl:text> + </xsl:template> + + <xsl:template match="em"> + <xsl:text> \fI</xsl:text><xsl:value-of select="text()"/><xsl:text>\fR\&</xsl:text> + </xsl:template> + + <xsl:template match="seealso"> + <xsl:text> \fB</xsl:text><xsl:apply-templates/><xsl:text>\fR\&</xsl:text> + </xsl:template> + + <!-- Code --> + <xsl:template match="code"> + <xsl:text> .nf </xsl:text> + <xsl:apply-templates/> + <xsl:text> .fi </xsl:text> + </xsl:template> + + <!-- Pre --> + <xsl:template match="pre"> + <xsl:text> .nf </xsl:text> + <xsl:apply-templates/> + <xsl:text> .fi </xsl:text> + </xsl:template> + + + <!-- Table --> + <xsl:template match="table"> + </xsl:template> + + <!--xsl:template match="row"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="cell"> + <xsl:apply-templates/> + </xsl:template --> + + + <!-- Image --> + <xsl:template match="image"> + </xsl:template> + + + <!-- Reference Manual --> + + <!-- Application --> + <xsl:template match="application"> + <xsl:apply-templates/> + </xsl:template> + + <!-- Erlref --> + <xsl:template match="/erlref"> + <xsl:text>.TH </xsl:text><xsl:value-of select="module"/><xsl:text> 3 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "Ericsson AB" "Erlang Module Definition" </xsl:text> + <xsl:text>.SH MODULE </xsl:text> + <xsl:value-of select="module"/><xsl:text> \- </xsl:text><xsl:value-of select="modulesummary"/><xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Comref --> + <xsl:template match="/comref"> + <xsl:text>.TH </xsl:text><xsl:value-of select="com"/><xsl:text> 1 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "Ericsson AB" "User Commands" </xsl:text> + <xsl:text>.SH NAME </xsl:text> + <xsl:value-of select="com"/><xsl:text> \- </xsl:text><xsl:value-of select="comsummary"/><xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Cref --> + <xsl:template match="/cref"> + <xsl:text>.TH </xsl:text><xsl:value-of select="lib"/><xsl:text> 3 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "Ericsson AB" "C Library Functions" </xsl:text> + <xsl:text>.SH NAME </xsl:text> + <xsl:value-of select="lib"/><xsl:text> \- </xsl:text><xsl:value-of select="libsummary"/><xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Fileref --> + <xsl:template match="/fileref"> + <xsl:text>.TH </xsl:text><xsl:value-of select="file"/><xsl:text> 4 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "Ericsson AB" "Files" </xsl:text> + <xsl:text>.SH NAME </xsl:text> + <xsl:value-of select="file"/><xsl:text> \- </xsl:text><xsl:value-of select="filesummary"/><xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Appref --> + <xsl:template match="/appref"> + <xsl:text>.TH </xsl:text><xsl:value-of select="app"/><xsl:text> 6 "</xsl:text><xsl:value-of select="$appname"/><xsl:text> </xsl:text><xsl:value-of select="$appver"/><xsl:text>" "Ericsson AB" "Erlang Application Definition" </xsl:text> + <xsl:text>.SH NAME </xsl:text> + <xsl:value-of select="file"/><xsl:text> \- </xsl:text><xsl:value-of select="filesummary"/><xsl:text> </xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Module|Com|Lib|File|App--> + <xsl:template match="module|com|lib|file|app"> + </xsl:template> + + <!-- Modulesummary|Comsummary|Libsummary|Filesummary|Appsummary --> + <xsl:template match="modulesummary|comsummary|libsummary|filesummary|appsummary"> + </xsl:template> + + <!-- Description --> + <xsl:template match="description"> + <xsl:text>.SH DESCRIPTION</xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Funcs --> + <xsl:template match="funcs"> + <xsl:text> .SH EXPORTS</xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <!-- Func --> + <xsl:template match="func"> + <xsl:text> .LP</xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="name"> + <xsl:text> .B </xsl:text> + <xsl:apply-templates/> + <xsl:text> .br</xsl:text> + </xsl:template> + + + <!-- Type --> + <xsl:template match="type"> + <xsl:text> .RS</xsl:text> + <xsl:text> .TP</xsl:text> + <xsl:text> Types</xsl:text> + <xsl:apply-templates/> + <xsl:text> .RE</xsl:text> + </xsl:template> + + + <!-- V --> + <xsl:template match="v"> + <xsl:text> </xsl:text><xsl:value-of select="normalize-space(text())"/> + <xsl:text> .br</xsl:text> + </xsl:template> + + <!-- D --> + <xsl:template match="d"> + <xsl:text> </xsl:text><xsl:apply-templates/> + <xsl:text> .br</xsl:text> + </xsl:template> + + <!-- Desc --> + <xsl:template match="desc"> + <xsl:text> .RS</xsl:text> + <xsl:apply-templates/> + <xsl:text> .RE</xsl:text> + </xsl:template> + + + <!-- Fsummary --> + <xsl:template match="fsummary"> + <!-- This tag is skipped for now. --> + </xsl:template> + + <!-- xsl:template match="p/text()"> + <xsl:value-of select="normalize-space()"/> + </xsl:template--> + + <xsl:template match="d/text()"> + <xsl:value-of select="normalize-space()"/> + </xsl:template> + +</xsl:stylesheet> diff --git a/lib/erl_docgen/priv/xsl/db_pdf.xsl b/lib/erl_docgen/priv/xsl/db_pdf.xsl new file mode 100644 index 0000000000..bef86277ea --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_pdf.xsl @@ -0,0 +1,1129 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009. All Rights Reserved. + # + # The contents of this file are subject to the Erlang Public License, + # Version 1.1, (the "License"); you may not use this file except in + # compliance with the License. You should have received a copy of the + # Erlang Public License along with this software. If not, it can be + # retrieved online at http://www.erlang.org/. + # + # Software distributed under the License is distributed on an "AS IS" + # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + # the License for the specific language governing rights and limitations + # under the License. + # + # %CopyrightEnd% + + --> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <xsl:output method="xml" indent="yes"/> + + <xsl:include href="db_pdf_params.xsl"/> + + + <xsl:template match="/"> + <xsl:apply-templates select="book"/> + </xsl:template> + + + <xsl:template match="book"> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <!-- Master pages --> + <fo:layout-master-set> + <fo:simple-page-master + master-name="cover" + margin="25mm"> + <xsl:attribute name="page-height"> + <xsl:value-of select="$page-height"/> + </xsl:attribute> + <xsl:attribute name="page-width"> + <xsl:value-of select="$page-width"/> + </xsl:attribute> + <fo:region-body + margin="0mm"/> + </fo:simple-page-master> + + <fo:simple-page-master + master-name="left-page" + margin-top="25mm" + margin-bottom="15mm" + margin-left="20mm" + margin-right="25mm"> + <xsl:attribute name="page-height"> + <xsl:value-of select="$page-height"/> + </xsl:attribute> + <xsl:attribute name="page-width"> + <xsl:value-of select="$page-width"/> + </xsl:attribute> + <fo:region-body + margin-top="15mm" + margin-bottom="20mm"/> + <fo:region-before + region-name="left-header" + extent="10mm"/> + <fo:region-after + region-name="left-footer" + extent="10mm"/> + </fo:simple-page-master> + + <fo:simple-page-master + master-name="right-page" + margin-top="25mm" + margin-bottom="15mm" + margin-left="25mm" + margin-right="20mm"> + <xsl:attribute name="page-height"> + <xsl:value-of select="$page-height"/> + </xsl:attribute> + <xsl:attribute name="page-width"> + <xsl:value-of select="$page-width"/> + </xsl:attribute> + <fo:region-body + margin-top="15mm" + margin-bottom="20mm"/> + <fo:region-before + region-name="right-header" + extent="10mm"/> + <fo:region-after + region-name="right-footer" + extent="10mm"/> + </fo:simple-page-master> + + + <fo:page-sequence-master master-name="document"> + <fo:repeatable-page-master-alternatives> + <fo:conditional-page-master-reference + master-reference="left-page" + odd-or-even="even"/> + <fo:conditional-page-master-reference + master-reference="right-page" + odd-or-even="odd"/> + </fo:repeatable-page-master-alternatives> + </fo:page-sequence-master> + </fo:layout-master-set> + + + <!-- Process bookmarks --> + <xsl:call-template name="bookmarks.tree"/> + + <!-- Process cover page --> + <xsl:apply-templates select="header"/> + + <!-- Process toc --> + <!-- xsl:call-template name="toc"/ --> + + <fo:page-sequence + font-family="serif" + master-reference="document" + initial-page-number="1"> + <xsl:attribute name="font-size"> + <xsl:value-of select="$base-font-size"/> + </xsl:attribute> + + <fo:static-content flow-name="left-header"> + <fo:block xsl:use-attribute-sets="page-header" text-align="start"> + <fo:retrieve-marker + retrieve-boundary="page-sequence" + retrieve-class-name="chapter-title" + retrieve-position="first-including-carryover"/> + </fo:block> + </fo:static-content> + + <fo:static-content flow-name="right-header"> + <fo:block xsl:use-attribute-sets="page-header" text-align="end"> + <fo:retrieve-marker + retrieve-boundary="page-sequence" + retrieve-class-name="chapter-title" + retrieve-position="first-including-carryover"/> + </fo:block> + </fo:static-content> + + <fo:static-content flow-name="left-footer"> + <fo:block xsl:use-attribute-sets="page-footer" text-align="start"> + <fo:page-number/> + <xsl:text> | </xsl:text> + <xsl:value-of select="$companyname"/>: + <xsl:value-of select="/book/header/title"/> + </fo:block> + </fo:static-content> + + <fo:static-content flow-name="right-footer"> + <fo:block xsl:use-attribute-sets="page-footer" text-align="end"> + <xsl:value-of select="$companyname"/>: + <xsl:value-of select="/book/header/title"/> + <xsl:text> | </xsl:text> + <fo:page-number/> + </fo:block> + </fo:static-content> + + <fo:flow flow-name="xsl-region-body"> + <fo:block> + + </fo:block> + <xsl:apply-templates select="parts"/> + + <xsl:apply-templates select="applications"/> + + </fo:flow> + + </fo:page-sequence> + + </fo:root> + + </xsl:template> + + + <!-- Header --> + <xsl:template match="book/header"> + <xsl:apply-templates select="title"/> + </xsl:template> + + + <!-- Cover page --> + <xsl:template match="header/title"> + <fo:page-sequence + font-family="sans-serif" + force-page-count="even" + master-reference="cover"> + <xsl:attribute name="font-size"> + <xsl:value-of select="$base-font-size"/> + </xsl:attribute> + + <fo:flow flow-name="xsl-region-body"> + <fo:block xsl:use-attribute-sets="cover.logo"> + <fo:external-graphic src="{$docgen}/priv/images/erlang-logo.gif"/> + </fo:block> + <fo:block xsl:use-attribute-sets="cover.title" id="cover-page"> + <xsl:apply-templates/> + </fo:block> + <fo:block xsl:use-attribute-sets="cover.copyright"> + <xsl:value-of select="$copyright"/> + <xsl:text> </xsl:text> + <xsl:value-of select="$companyname"/> + </fo:block> + <xsl:if test="/book/header/title"> + <fo:block xsl:use-attribute-sets="cover.version"> + <xsl:value-of select="/book/header/title"/> + <xsl:text> </xsl:text> + <!-- xsl:value-of select="/book/header/rev"/ --> + <xsl:value-of select="$appver"/> + </fo:block> + </xsl:if> + <fo:block xsl:use-attribute-sets="cover.version"> + <xsl:value-of select="$gendate"/> + </fo:block> + + <!-- Inner cover (copyright notice) --> + <fo:block break-before="page" + xsl:use-attribute-sets="cover.inner.copyright"> + <xsl:value-of select="$copyright"/> + <xsl:text> </xsl:text> + <xsl:value-of select="$companyname"/> + </fo:block> + <fo:block xsl:use-attribute-sets="cover.inner.copyrightnotice"> + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + The Initial Developer of the Original Code is + <xsl:value-of select="$companyname"/>. + </fo:block> + <fo:block xsl:use-attribute-sets="cover.inner.date"> + <xsl:value-of select="$gendate"/> + </fo:block> + </fo:flow> + </fo:page-sequence> + + </xsl:template> + + + <!-- Bookmarks --> + <xsl:template name="bookmarks.tree"> + <fo:bookmark-tree> + <fo:bookmark internal-destination="cover-page" + starting-state="show"> + <fo:bookmark-title> + <xsl:value-of select="/book/header/title"/> + </fo:bookmark-title> + + <xsl:call-template name="bookmarks1"> + <xsl:with-param name="entries" select="parts/part[header/title]"/> + </xsl:call-template> + <xsl:call-template name="bookmarks4"> + <xsl:with-param name="entries" select="applications/application[header/title]"/> + </xsl:call-template> + + </fo:bookmark> + </fo:bookmark-tree> + </xsl:template> + + + <!-- Users Guide Bookmarks --> + + <xsl:template name="bookmarks1"> + <xsl:param name="entries"/> + <xsl:if test="$entries != ''"> + + <fo:bookmark internal-destination="{generate-id(/book/parts/part)}" + starting-state="hide"> + <fo:bookmark-title>User's Guide</fo:bookmark-title> + + <xsl:for-each select="$entries"> + <xsl:call-template name="bookmarks2"> + <xsl:with-param name="entries" + select="chapter[header/title]"/> + </xsl:call-template> + </xsl:for-each> + + </fo:bookmark> + </xsl:if> + </xsl:template> + + <xsl:template name="bookmarks2"> + <xsl:param name="entries"/> + <xsl:for-each select="$entries"> + <fo:bookmark internal-destination="{generate-id(header/title)}" + starting-state="hide"> + <fo:bookmark-title> + <xsl:value-of select="header/title"/> + </fo:bookmark-title> + + <xsl:call-template name="bookmarks3"> + <xsl:with-param name="entries" + select="section[title]"/> + </xsl:call-template> + + </fo:bookmark> + </xsl:for-each> + </xsl:template> + + <xsl:template name="bookmarks3"> + <xsl:param name="entries"/> + <xsl:for-each select="$entries"> + <fo:bookmark internal-destination="{generate-id(title)}" + starting-state="hide"> + <fo:bookmark-title> + <xsl:value-of select="title"/> + </fo:bookmark-title> + <xsl:call-template name="bookmarks3"> + <xsl:with-param name="entries" + select="section[title]"/> + </xsl:call-template> + </fo:bookmark> + </xsl:for-each> + </xsl:template> + + <!-- Ref. Manual Bookmarks --> + + <xsl:template name="bookmarks4"> + <xsl:param name="entries"/> + + <xsl:if test="$entries != ''"> + <fo:bookmark internal-destination="{generate-id(/book/applications/application)}" + starting-state="hide"> + <fo:bookmark-title>Reference Manual</fo:bookmark-title> + <xsl:for-each select="$entries"> + + <xsl:call-template name="bookmarks5"> + <xsl:with-param name="entries" + select="erlref[module]|comref[com]|cref[lib]|fileref[file]|appref[app]"/> + </xsl:call-template> + </xsl:for-each> + </fo:bookmark> + </xsl:if> + </xsl:template> + + + <xsl:template name="bookmarks5"> + <xsl:param name="entries"/> + <xsl:for-each select="$entries"> + <fo:bookmark internal-destination="{generate-id(module)}{generate-id(lib)}{generate-id(com)}{generate-id(file)}{generate-id(app)}" + starting-state="hide"> + <fo:bookmark-title><xsl:value-of select="module"/><xsl:value-of select="lib"/><xsl:value-of select="com"/><xsl:value-of select="file"/><xsl:value-of select="app"/></fo:bookmark-title> + <!-- xsl:choose> + <xsl:when test="ancestor::erlref"> + <xsl:value-of select="module"/> + </xsl:when> + <xsl:when test="ancestor::cref"> + <xsl:value-of select="lib"/> + </xsl:when> + <xsl:when test="ancestor::comref"> + <xsl:value-of select="com"/> + </xsl:when> + </xsl:choose> + </fo:bookmark-title --> + <xsl:call-template name="bookmarks6"> + <xsl:with-param name="entries" + select="funcs/func/name"/> + </xsl:call-template> + </fo:bookmark> + </xsl:for-each> + </xsl:template> + + <xsl:template name="bookmarks6"> + <xsl:param name="entries"/> + <xsl:for-each select="$entries"> + + <xsl:choose> + <xsl:when test="ancestor::cref"> + <fo:bookmark internal-destination="{generate-id(nametext)}" starting-state="hide"> + <xsl:variable name="fname"><xsl:value-of select="substring-before(nametext, '(')"/></xsl:variable> + <fo:bookmark-title> + <xsl:choose> + <xsl:when test="string-length($fname) > 0"> + <xsl:value-of select="$fname"/>() + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="nametext"/>() + </xsl:otherwise> + </xsl:choose> + </fo:bookmark-title> + </fo:bookmark> + </xsl:when> + <xsl:when test="ancestor::erlref"> + <fo:bookmark internal-destination="{generate-id(.)}" starting-state="hide"> + <xsl:variable name="tmpstring"> + <xsl:value-of select="substring-before(substring-after(., '('), '->')"/> + </xsl:variable> + + <xsl:variable name="ustring"> + <xsl:choose> + <xsl:when test="string-length($tmpstring) > 0"> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="$tmpstring"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="substring-after(., '(')"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="arity"> + <xsl:call-template name="calc-arity"> + <xsl:with-param name="string" select="substring-before($ustring, ')')"/> + <xsl:with-param name="no-of-pars" select="0"/> + </xsl:call-template> + </xsl:variable> + <fo:bookmark-title> + <xsl:value-of select="substring-before(., '(')"/>/<xsl:value-of select="$arity"/> + </fo:bookmark-title> + </fo:bookmark> + </xsl:when> + </xsl:choose> + + </xsl:for-each> + </xsl:template> + + + <!-- UG part --> + + <!-- Parts --> + <xsl:template match="parts"> + <xsl:apply-templates select="part"/> + </xsl:template> + + <!-- Part --> + <xsl:template match="part"> + <xsl:variable name="partnum"><xsl:number level="any" from="book" count="part|application"/></xsl:variable> + + <fo:block xsl:use-attribute-sets="h1" id="{generate-id()}"> + <xsl:value-of select="$partnum"/>    + <xsl:text>User's Guide</xsl:text> + </fo:block> + + <xsl:apply-templates select="description"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + <xsl:apply-templates select="chapter"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </xsl:template> + + + <!-- Chapter --> + <xsl:template match="chapter"> + <xsl:param name="partnum"/> + + <fo:block xsl:use-attribute-sets="h2" id="{generate-id(header/title)}"> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="$partnum"/>.<xsl:number/>  <xsl:value-of select="header/title"/> + </fo:marker> + <xsl:value-of select="$partnum"/>.<xsl:number/>  <xsl:value-of select="header/title"/> + + </fo:block> + + <xsl:apply-templates select="section|quote|warning|note|br|image|marker|table|p|pre|code|list|taglist|codeinclude|erleval"> + <xsl:with-param name="partnum" select="$partnum"/> + <xsl:with-param name="chapnum"><xsl:number/></xsl:with-param> + </xsl:apply-templates> + + </xsl:template> + + <!-- Chapter/Section --> + <xsl:template match="chapter/section"> + <xsl:param name="partnum"/> + <xsl:param name="chapnum"/> + <fo:block xsl:use-attribute-sets="h3" id="{generate-id(title)}"> + <xsl:value-of select="$partnum"/>.<xsl:value-of select="$chapnum"/>.<xsl:number/>  + <xsl:value-of select="title"/> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="sectnum"><xsl:number/></xsl:with-param> + </xsl:apply-templates> + + </xsl:template> + + <!-- Chapter/Subsection --> + <xsl:template match="chapter/section/section"> + <xsl:param name="partnum"/> + <xsl:param name="chapnum"/> + <xsl:param name="sectnum"/> + <fo:block xsl:use-attribute-sets="h4" id="{generate-id(title)}"> + <!-- xsl:value-of select="$partnum"/>.<xsl:value-of select="$chapnum"/>.<xsl:value-of select="$sectnum"/>.<xsl:number/ --> + <xsl:value-of select="title"/> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="sectnum" select="$sectnum"/> + </xsl:apply-templates> + </xsl:template> + + + + <!-- *ref/Section --> + <xsl:template match="erlref/section|comref/section|cref/section|fileref/section|appref/section"> + <xsl:param name="partnum"/> + <xsl:param name="chapnum"/> + <fo:block xsl:use-attribute-sets="h3" id="{generate-id(title)}"> + <xsl:value-of select="title"/> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + <xsl:with-param name="chapnum" select="$chapnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- *ref/Subsection --> + <xsl:template match="erlref/section/section|comref/section/section|cref/section/section|fileref/section/section|appref/section/section"> + <xsl:param name="partnum"/> + <xsl:param name="chapnum"/> + <xsl:param name="sectnum"/> + <fo:block xsl:use-attribute-sets="h4" id="{generate-id(title)}"> + <xsl:value-of select="title"/> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </xsl:template> + + <!-- Section/title --> + <xsl:template match="section/title"> + </xsl:template> + + <!-- Lists --> + + <xsl:template match="list"> + <xsl:param name="partnum"/> + <fo:list-block xsl:use-attribute-sets="listblock"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + <!-- xsl:apply-templates --> + <!-- xsl:with-param name="chapnum" select="$chapnum"/ --> + <!-- /xsl:apply-templates --> + </fo:list-block> + </xsl:template> + + <xsl:template match="list/item"> + <xsl:param name="partnum"/> + <fo:list-item xsl:use-attribute-sets="listitem"> + <fo:list-item-label end-indent="label-end()"> + <fo:block> + • + </fo:block> + </fo:list-item-label> + <fo:list-item-body start-indent="body-start()" format="justify"> + <fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </fo:list-item-body> + </fo:list-item> + </xsl:template> + + + <xsl:template match="taglist"> + <xsl:param name="partnum"/> + <fo:block xsl:use-attribute-sets="taglistblock"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </xsl:template> + + <xsl:template match="taglist/tag"> + <xsl:param name="partnum"/> + <fo:block xsl:use-attribute-sets="tag"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + + <xsl:template match="taglist/item"> + <xsl:param name="partnum"/> + <fo:block xsl:use-attribute-sets="tagitem"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </xsl:template> + + + <!-- Note --> + <xsl:template match="note"> + <xsl:param name="partnum"/> + <fo:block xsl:use-attribute-sets="note"> + <fo:block xsl:use-attribute-sets="note-warning-title"> + <xsl:text>Note:</xsl:text> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </xsl:template> + + <!-- Warning --> + <xsl:template match="warning"> + <xsl:param name="partnum"/> + <fo:block xsl:use-attribute-sets="warning"> + <fo:block xsl:use-attribute-sets="note-warning-title"> + <xsl:text>Warning:</xsl:text> + </fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </xsl:template> + + + <!-- Paragraph --> + <xsl:template match="p"> + <fo:block xsl:use-attribute-sets="p"> + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + + <!-- Inline elements --> + <xsl:template match="b"> + <fo:inline font-weight="bold"> + <xsl:apply-templates/> + </fo:inline> + </xsl:template> + + <xsl:template match="br"> + <fo:block/> + </xsl:template> + + <xsl:template match="c"> + <fo:inline font-family="monospace"> + <xsl:apply-templates/> + </fo:inline> + </xsl:template> + + <xsl:template match="em"> + <fo:inline font-style="italic"> + <xsl:apply-templates/> + </fo:inline> + </xsl:template> + + <!-- Code --> + <xsl:template match="code"> + <xsl:param name="partnum"/> + <xsl:variable name="codenum"> + <xsl:number level="any" from="part" count="code"/> + </xsl:variable> + + <fo:block xsl:use-attribute-sets="code" margin-left="1.5em"> + <xsl:apply-templates select="text()"/> + </fo:block> + + <xsl:if test="@caption"> + <fo:block xsl:use-attribute-sets="caption" margin-left="1.5em"> + Code listing <xsl:value-of select="$partnum"/>.<xsl:value-of select="$codenum"/>:  + <xsl:value-of select="@caption"/> + </fo:block> + </xsl:if> + </xsl:template> + + <!-- Pre --> + <xsl:template match="pre"> + <xsl:param name="partnum"/> + <xsl:variable name="codenum"> + <xsl:number level="any" from="part" count="code"/> + </xsl:variable> + + <fo:block xsl:use-attribute-sets="code" margin-left="1.5em"> + <xsl:apply-templates/> + </fo:block> + + <xsl:if test="@caption"> + <fo:block xsl:use-attribute-sets="caption" margin-left="1.5em"> + Code listing <xsl:value-of select="$partnum"/>.<xsl:value-of select="$codenum"/>:  + <xsl:value-of select="@caption"/> + </fo:block> + </xsl:if> + </xsl:template> + + <!-- Ref. manual part --> + + <!-- Applications --> + <xsl:template match="applications"> + <xsl:apply-templates select="application"/> + </xsl:template> + + <!-- Application --> + <xsl:template match="application"> + <xsl:variable name="partnum"> + <xsl:number level="any" from="book" count="part|application"/> + </xsl:variable> + + <fo:block xsl:use-attribute-sets="h1" id="{generate-id()}"> + <xsl:if test="/book/header/title"> + <xsl:value-of select="$partnum"/>    + <xsl:text>Reference Manual</xsl:text> + </xsl:if> + </fo:block> + + + <xsl:apply-templates select="description"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + <xsl:apply-templates select="erlref|comref|cref|fileref|appref"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Erlref --> + <xsl:template match="erlref"> + <xsl:param name="partnum"/> + + <fo:block page-break-before="always" xsl:use-attribute-sets="module-header" id="{generate-id(module)}"> + <fo:block xsl:use-attribute-sets="module-name"> + <!-- Mark title for header printout --> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="module"/> + </fo:marker> + <xsl:value-of select="module"/> + </fo:block> + <xsl:text>Erlang module</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Comref --> + <xsl:template match="comref"> + <xsl:param name="partnum"/> + + <fo:block page-break-before="always" xsl:use-attribute-sets="module-header" id="{generate-id(com)}"> + <fo:block xsl:use-attribute-sets="module-name"> + <!-- Mark title for header printout --> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="com"/> + </fo:marker> + <xsl:value-of select="com"/> + </fo:block> + <xsl:text>Command</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Cref --> + <xsl:template match="cref"> + <xsl:param name="partnum"/> + + <fo:block page-break-before="always" xsl:use-attribute-sets="module-header" id="{generate-id(lib)}"> + <fo:block xsl:use-attribute-sets="module-name"> + <!-- Mark title for header printout --> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="lib"/> + </fo:marker> + <xsl:value-of select="lib"/> + </fo:block> + <xsl:text>C Library</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Fileref --> + <xsl:template match="fileref"> + <xsl:param name="partnum"/> + + <fo:block page-break-before="always" xsl:use-attribute-sets="module-header" id="{generate-id(file)}"> + <fo:block xsl:use-attribute-sets="module-name"> + <!-- Mark title for header printout --> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="file"/> + </fo:marker> + <xsl:value-of select="file"/> + </fo:block> + <xsl:text>Name</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Appref --> + <xsl:template match="appref"> + <xsl:param name="partnum"/> + + <fo:block page-break-before="always" xsl:use-attribute-sets="module-header" id="{generate-id(app)}"> + <fo:block xsl:use-attribute-sets="module-name"> + <!-- Mark title for header printout --> + <fo:marker marker-class-name="chapter-title"> + <xsl:value-of select="app"/> + </fo:marker> + <xsl:value-of select="app"/> + </fo:block> + <xsl:text>Application</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- *ref Header --> + <xsl:template match="erlref/header|comref/header|cref/header|fileref/header|appref/header"> + <fo:block> + <xsl:text></xsl:text> + </fo:block> + </xsl:template> + + <!-- Modulesummary --> + <xsl:template match="modulesummary"> + <xsl:param name="partnum"/> + <fo:block> + <xsl:text></xsl:text> + </fo:block> + </xsl:template> + + <!-- Description --> + <xsl:template match="description"> + <xsl:param name="partnum"/> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Funcs --> + <xsl:template match="funcs"> + + <fo:block xsl:use-attribute-sets="h3"> + <xsl:text>Exports</xsl:text> + </fo:block> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + <!-- Func --> + <xsl:template match="func"> + <xsl:param name="partnum"/> + + <fo:block xsl:use-attribute-sets="function-name"> + <xsl:apply-templates select="name"/> + </fo:block> + + <xsl:apply-templates select="fsummary|type|desc"> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + + <xsl:template match="name"> + <xsl:param name="partnum"/> + <xsl:choose> + <xsl:when test="ancestor::cref"> + <fo:block id="{generate-id(nametext)}"> + <xsl:value-of select="ret"/><xsl:text> </xsl:text><xsl:value-of select="nametext"/> + </fo:block> + </xsl:when> + <xsl:otherwise> + <fo:block id="{generate-id(.)}"> + <xsl:value-of select="."/> + </fo:block> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + + <!-- Type --> + <xsl:template match="type"> + <xsl:param name="partnum"/> + + <fo:block> + <xsl:text>Types:</xsl:text> + </fo:block> + + <fo:list-block xsl:use-attribute-sets="type-listblock"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:list-block> + + </xsl:template> + + + <!-- V --> + <xsl:template match="v"> + <xsl:param name="partnum"/> + <fo:list-item xsl:use-attribute-sets="type-listitem"> + <fo:list-item-label end-indent="label-end()"> + <fo:block> + </fo:block> + </fo:list-item-label> + <fo:list-item-body start-indent="body-start()" format="justify"> + <fo:block font-weight="bold"> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </fo:list-item-body> + </fo:list-item> + </xsl:template> + + <!-- D --> + <xsl:template match="d"> + <xsl:param name="partnum"/> + <fo:list-item xsl:use-attribute-sets="type-listitem"> + <fo:list-item-label end-indent="label-end()"><fo:block></fo:block> + </fo:list-item-label> + <fo:list-item-body start-indent="body-start()" format="justify"> + <fo:block> + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + </fo:block> + </fo:list-item-body> + </fo:list-item> + </xsl:template> + + <!-- Desc --> + <xsl:template match="desc"> + + <xsl:apply-templates> + <xsl:with-param name="partnum" select="$partnum"/> + </xsl:apply-templates> + + </xsl:template> + + + <!-- Fsummary --> + <xsl:template match="fsummary"> + <!-- This tag is skipped for now. --> + </xsl:template> + + + <!-- Table --> + <xsl:template match="table"> + <xsl:param name="chapnum"/> + <xsl:variable name="tabnum"> + <xsl:number level="any" from="chapter" count="table"/> + </xsl:variable> + <fo:table xsl:use-attribute-sets="table"> + <fo:table-body> + <xsl:apply-templates select="row"> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="tabnum" select="$tabnum"/> + </xsl:apply-templates> + </fo:table-body> + </fo:table> + <xsl:apply-templates select="tcaption"> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="tabnum" select="$tabnum"/> + </xsl:apply-templates> + </xsl:template> + + + <xsl:template match="row"> + <fo:table-row> + <xsl:apply-templates/> + </fo:table-row> + </xsl:template> + + <xsl:template match="cell"> + <fo:table-cell xsl:use-attribute-sets="table-cell"> + <xsl:call-template name="cell-valign"/> + <fo:block> + <xsl:call-template name="cell-align"/> + <xsl:apply-templates/> + </fo:block> + </fo:table-cell> + </xsl:template> + + <xsl:template match="tcaption"> + <xsl:param name="chapnum"/> + <xsl:param name="tabnum"/> + + <fo:block xsl:use-attribute-sets="caption"> + Table + <xsl:value-of select="$chapnum"/>.<xsl:value-of select="$tabnum"/>: +   + <xsl:apply-templates/> + </fo:block> + </xsl:template> + + + <!-- Image --> + <xsl:template match="image"> + <xsl:param name="chapnum"/> + <xsl:variable name="fignum"> + <xsl:number level="any" from="chapter" count="image"/> + </xsl:variable> + + <fo:block xsl:use-attribute-sets="image"> + <fo:external-graphic content-width="60%" src="{@file}"/> + + <xsl:apply-templates> + <xsl:with-param name="chapnum" select="$chapnum"/> + <xsl:with-param name="fignum" select="$fignum"/> + </xsl:apply-templates> + + </fo:block> + + </xsl:template> + + + <xsl:template match="icaption"> + <xsl:param name="chapnum"/> + <xsl:param name="fignum"/> + + <fo:block xsl:use-attribute-sets="caption"> + Figure + <xsl:value-of select="$chapnum"/>.<xsl:value-of select="$fignum"/>: +   + <xsl:apply-templates/> + </fo:block> + + </xsl:template> + + + <xsl:template match="input"> + <fo:inline font-weight="bold"> + <xsl:apply-templates select="text()"/> + </fo:inline> + </xsl:template> + + + <xsl:template match="seealso"> + <fo:inline font-style="italic"> + <xsl:apply-templates/> + </fo:inline> + </xsl:template> + + <xsl:template match="url"> + <fo:inline font-weight="bold"> + <fo:basic-link external-destination="href"> + <xsl:apply-templates/> + </fo:basic-link> + </fo:inline> + </xsl:template> + + + + <!-- Special templates to calculate the arity of functions --> + <xsl:template name="calc-arity"> + <xsl:param name="string"/> + <xsl:param name="no-of-pars"/> + + <xsl:variable name="length"> + <xsl:value-of select="string-length($string)"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$length > 0"> + <xsl:call-template name="calc-arity"> + <xsl:with-param name="string" select="substring-after($string, ',')"/> + <xsl:with-param name="no-of-pars" select="$no-of-pars+1"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$no-of-pars"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="remove-paren"> + <xsl:param name="string"/> + + <xsl:variable name="bstring"> + <xsl:value-of select="substring-before($string, '(')"/> + </xsl:variable> + + <xsl:choose> + <xsl:when test="string-length($bstring) > 0"> + <xsl:variable name="astring"> + <xsl:value-of select="substring-after($string, ')')"/> + </xsl:variable> + <xsl:variable name="retstring"> + <xsl:call-template name="remove-paren"> + <xsl:with-param name="string" select="$astring"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="concat($bstring, $retstring)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$string"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> diff --git a/lib/erl_docgen/priv/xsl/db_pdf_params.xsl b/lib/erl_docgen/priv/xsl/db_pdf_params.xsl new file mode 100644 index 0000000000..e2e264b90a --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_pdf_params.xsl @@ -0,0 +1,406 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009. All Rights Reserved. + # + # The contents of this file are subject to the Erlang Public License, + # Version 1.1, (the "License"); you may not use this file except in + # compliance with the License. You should have received a copy of the + # Erlang Public License along with this software. If not, it can be + # retrieved online at http://www.erlang.org/. + # + # Software distributed under the License is distributed on an "AS IS" + # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + # the License for the specific language governing rights and limitations + # under the License. + # + # %CopyrightEnd% + + --> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <!-- When using <code>, whitespaces should be preserved --> + <xsl:preserve-space elements="code"/> + + + <!-- Fixed strings --> + <xsl:variable name="companyname"><xsl:value-of select="/book/header/copyright/holder"/></xsl:variable> + <xsl:variable name="copyright">Copyright © <xsl:value-of select="/book/header/copyright/year[1]"/><xsl:text>-</xsl:text><xsl:value-of select="substring-after(substring-after($gendate, ' '), ' ')"/></xsl:variable> + + <!-- FIXME: remove when appendix creation has been fixed --> + <!-- xsl:variable name="appendix_title"--> + <!-- xsl:text>Appendix: Unix man pages for ConfD</xsl:text--> + <!-- /xsl:variable--> + + <!-- Font size (all other font sizes should be proportional to this --> + <xsl:param name="base-font-size">10pt</xsl:param> + + <!-- Paper size: A4 (297x210 mm) --> + <xsl:param name="page-height">297mm</xsl:param> + <xsl:param name="page-width">210mm</xsl:param> + + <!-- Paper size: US Letter (279x216 mm) --> + <!-- + <xsl:param name="page-height">11in</xsl:param> + <xsl:param name="page-width">8.5in</xsl:param> + --> + + + <!-- XSL-FO properties --> + <xsl:attribute-set name="caption"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">0.8em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="keep-with-previous.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">2.5em</xsl:attribute> + <xsl:attribute name="space-before">0em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="pre"> + <xsl:attribute name="font-family">monospace</xsl:attribute> + <xsl:attribute name="font-size">0.8em</xsl:attribute> + <xsl:attribute name="keep-together.within-page">auto</xsl:attribute> + <xsl:attribute name="linefeed-treatment">preserve</xsl:attribute> + <xsl:attribute name="padding-after">0em</xsl:attribute> + <!-- Compensate for empty line that always seems to appear here now... --> + <xsl:attribute name="padding-before">-1em</xsl:attribute> + <xsl:attribute name="white-space-collapse">false</xsl:attribute> + <xsl:attribute name="white-space-treatment">preserve</xsl:attribute> + <xsl:attribute name="wrap-option">no-wrap</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.copyright"> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="text-align">end</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.logo"> + <xsl:attribute name="space-before">130mm</xsl:attribute> + <xsl:attribute name="space-before.conditionality">retain</xsl:attribute> + <xsl:attribute name="text-align">end</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.title"> + <xsl:attribute name="border-before-style">solid</xsl:attribute> + <xsl:attribute name="border-before-width">10pt</xsl:attribute> + <xsl:attribute name="border-color">#960003</xsl:attribute> + <xsl:attribute name="font-size">2.3em</xsl:attribute> + <xsl:attribute name="padding-before">0.5em</xsl:attribute> + <xsl:attribute name="text-align">end</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.version"> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="text-align">end</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.inner.copyright"> + <xsl:attribute name="border-before-style">solid</xsl:attribute> + <xsl:attribute name="border-before-width">1pt</xsl:attribute> + <xsl:attribute name="border-color">#960003</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="padding-before">0.5em</xsl:attribute> + <xsl:attribute name="space-before">200mm</xsl:attribute> + <xsl:attribute name="space-before.conditionality">retain</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.inner.copyrightnotice"> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="cover.inner.date"> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="space-before">2em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="dd"> + <xsl:attribute name="start-indent">2em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="dt"> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="image"> + <xsl:attribute name="space-after">0.5em</xsl:attribute> + <xsl:attribute name="space-before">0.5em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="listblock"> + <xsl:attribute name="provisional-distance-between-starts">1.8em</xsl:attribute> + <xsl:attribute name="provisional-label-separation">1em</xsl:attribute> + <xsl:attribute name="space-after">0.25em</xsl:attribute> + <xsl:attribute name="space-before">0.25em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="listitem"> + <xsl:attribute name="space-after">0.25em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="taglistblock"> + <xsl:attribute name="space-after">0.25em</xsl:attribute> + <xsl:attribute name="space-before">0.25em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="tag"> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="tagitem"> + <xsl:attribute name="start-indent">2em</xsl:attribute> + </xsl:attribute-set> + + + <xsl:attribute-set name="h1"> + <xsl:attribute name="border-after-style">solid</xsl:attribute> + <xsl:attribute name="border-after-width">1pt</xsl:attribute> + <xsl:attribute name="border-color">#960003</xsl:attribute> + <xsl:attribute name="break-before">page</xsl:attribute> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1.83em</xsl:attribute> + <xsl:attribute name="font-weight">normal</xsl:attribute> + <xsl:attribute name="space-after">1em</xsl:attribute> + <xsl:attribute name="space-before">2em</xsl:attribute> + <xsl:attribute name="space-before.conditionality">retain</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="h2"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1.5em</xsl:attribute> + <xsl:attribute name="font-weight">normal</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.3em</xsl:attribute> + <xsl:attribute name="space-before">1em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="h3"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1.33em</xsl:attribute> + <xsl:attribute name="font-weight">normal</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.3em</xsl:attribute> + <xsl:attribute name="space-before">0.8em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="h4"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1.17em</xsl:attribute> + <xsl:attribute name="font-weight">normal</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.3em</xsl:attribute> + <xsl:attribute name="space-before">0.6em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="h5"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.2em</xsl:attribute> + <xsl:attribute name="space-before">0.4em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="h6"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">0.83em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0em</xsl:attribute> + <xsl:attribute name="space-before">0.4em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="p"> + <xsl:attribute name="font-size">1em</xsl:attribute> + <!-- <xsl:attribute name="keep-together.within-page">always</xsl:attribute>--> + <xsl:attribute name="space-after">0.5em</xsl:attribute> + <xsl:attribute name="space-before">0.5em</xsl:attribute> + <xsl:attribute name="text-align">justify</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="page-header"> + <xsl:attribute name="border-after-style">solid</xsl:attribute> + <xsl:attribute name="border-after-width">2pt</xsl:attribute> + <xsl:attribute name="border-color">#960003</xsl:attribute> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="page-footer"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">0.9em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="code"> + <xsl:attribute name="background-color">#e0e0ff</xsl:attribute> + <xsl:attribute name="font-family">monospace</xsl:attribute> + <xsl:attribute name="font-size">0.8em</xsl:attribute> + <xsl:attribute name="keep-together.within-page">auto</xsl:attribute> + <xsl:attribute name="linefeed-treatment">preserve</xsl:attribute> + <xsl:attribute name="padding-before">0em</xsl:attribute> + <xsl:attribute name="padding-after">1em</xsl:attribute> + <xsl:attribute name="space-after">1em</xsl:attribute> + <xsl:attribute name="space-before">2em</xsl:attribute> + <xsl:attribute name="white-space-collapse">false</xsl:attribute> + <xsl:attribute name="white-space-treatment">preserve</xsl:attribute> + <xsl:attribute name="wrap-option">no-wrap</xsl:attribute> + </xsl:attribute-set> + + + + <xsl:attribute-set name="toc.level1"> + <xsl:attribute name="space-before">1em</xsl:attribute> + </xsl:attribute-set> + +<xsl:attribute-set name="note"> + <xsl:attribute name="background-color">#d0fed0</xsl:attribute> + <xsl:attribute name="space-after">1em</xsl:attribute> + <xsl:attribute name="space-before">2em</xsl:attribute> + <xsl:attribute name="text-align">justify</xsl:attribute> + <xsl:attribute name="padding-before">1em</xsl:attribute> + <xsl:attribute name="padding-after">0.3em</xsl:attribute> + <xsl:attribute name="padding-left">1em</xsl:attribute> + <xsl:attribute name="padding-right">1em</xsl:attribute> + <xsl:attribute name="keep-together.within-page">always</xsl:attribute> + </xsl:attribute-set> + +<xsl:attribute-set name="warning"> + <xsl:attribute name="background-color">#ffd6d6</xsl:attribute> + <xsl:attribute name="space-after">1em</xsl:attribute> + <xsl:attribute name="space-before">2em</xsl:attribute> + <xsl:attribute name="text-align">justify</xsl:attribute> + <xsl:attribute name="padding-before">1em</xsl:attribute> + <xsl:attribute name="padding-after">0.3em</xsl:attribute> + <xsl:attribute name="padding-left">1em</xsl:attribute> + <xsl:attribute name="padding-right">1em</xsl:attribute> + <xsl:attribute name="keep-together.within-page">always</xsl:attribute> + </xsl:attribute-set> + + + <xsl:attribute-set name="note-warning-title"> + <xsl:attribute name="font-size">1.33em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="module-header"> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">2em</xsl:attribute> + <xsl:attribute name="space-before">1em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="module-name"> + <xsl:attribute name="border-after-style">solid</xsl:attribute> + <xsl:attribute name="border-after-width">1pt</xsl:attribute> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">1.5em</xsl:attribute> + <xsl:attribute name="font-weight">normal</xsl:attribute> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.3em</xsl:attribute> + <xsl:attribute name="space-before">1em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="function-name"> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="font-family">monospace</xsl:attribute> + <!-- xsl:attribute name="font-size">0.8em</xsl:attribute --> + <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">0.3em</xsl:attribute> + <xsl:attribute name="space-before">1.5em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="type-listblock"> + <xsl:attribute name="provisional-distance-between-starts">1.8em</xsl:attribute> + <xsl:attribute name="provisional-label-separation">1em</xsl:attribute> + <xsl:attribute name="space-after">0.25em</xsl:attribute> + <xsl:attribute name="space-before">0.25em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="type-listitem"> + <xsl:attribute name="space-after">0.25em</xsl:attribute> + </xsl:attribute-set> + + + <xsl:attribute-set name="table"> + <!-- Only border-collapse="separate" is supported in current FOP + (if this is not set, border on spanned cells will not work) --> + <xsl:attribute name="border-collapse">separate</xsl:attribute> + <xsl:attribute name="space-after">1em</xsl:attribute> + <xsl:attribute name="space-before">1em</xsl:attribute> + <xsl:attribute name="table-layout">fixed</xsl:attribute> + <!-- Just to get rid of some info reports, should be removed when fop supports table-layout auto --> + <xsl:attribute name="inline-progression-dimension">100%</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-cell"> + <xsl:attribute name="border-style">solid</xsl:attribute> + <xsl:attribute name="border-width">0.5pt</xsl:attribute> + <xsl:attribute name="display-align">before</xsl:attribute> + <xsl:attribute name="padding-after">0.5em</xsl:attribute> + <xsl:attribute name="padding-before">0.5em</xsl:attribute> + <xsl:attribute name="padding-end">0.3em</xsl:attribute> + <xsl:attribute name="padding-start">0.3em</xsl:attribute> + <xsl:attribute name="text-align">start</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="table-header"> + <xsl:attribute name="border-style">solid</xsl:attribute> + <xsl:attribute name="border-width">1pt</xsl:attribute> + <xsl:attribute name="display-align">before</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="padding-after">0.5em</xsl:attribute> + <xsl:attribute name="padding-before">0.5em</xsl:attribute> + <xsl:attribute name="padding-end">0.3em</xsl:attribute> + <xsl:attribute name="padding-start">0.3em</xsl:attribute> + <xsl:attribute name="text-align">center</xsl:attribute> + </xsl:attribute-set> + + + <xsl:template name="cell-valign"> + <xsl:choose> + <xsl:when test="@valign='top'"> + <xsl:attribute name="display-align">before</xsl:attribute> + </xsl:when> + <xsl:when test="@valign='middle'"> + <xsl:attribute name="display-align">center</xsl:attribute> + </xsl:when> + <xsl:when test="@valign='bottom'"> + <xsl:attribute name="display-align">after</xsl:attribute> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:template name="cell-align"> + <xsl:choose> + <xsl:when test="@align='left'"> + <xsl:attribute name="text-align">start</xsl:attribute> + </xsl:when> + <xsl:when test="@align='center'"> + <xsl:attribute name="text-align">center</xsl:attribute> + </xsl:when> + <xsl:when test="@align='right'"> + <xsl:attribute name="text-align">end</xsl:attribute> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:attribute-set name="image"> + <xsl:attribute name="space-after">0.5em</xsl:attribute> + <xsl:attribute name="space-before">0.5em</xsl:attribute> + </xsl:attribute-set> + + <xsl:attribute-set name="caption"> + <xsl:attribute name="font-family">sans-serif</xsl:attribute> + <xsl:attribute name="font-size">0.8em</xsl:attribute> + <xsl:attribute name="font-weight">bold</xsl:attribute> + <xsl:attribute name="keep-with-previous.within-page">always</xsl:attribute> + <xsl:attribute name="space-after">2.5em</xsl:attribute> + <xsl:attribute name="space-before">0em</xsl:attribute> + </xsl:attribute-set> + +</xsl:stylesheet> |